
transcribe-anything
一条命令把本地或在线音视频转成文字和字幕
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-23 · 当前星标 ★ 1483
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- 已安装 Python 且 pip 可用
- 联网(下载输入音视频与后端依赖,--device insane 约 10 GB)
- macOS 建议 Apple Silicon 以使用 mlx 后端加速
- 使用 Docker 需已安装 Docker(GPU 加速需支持 CUDA 的镜像环境)
安装与启动步骤
-
1安装主程序
用 pip 把 transcribe-anything 装到当前 Python 环境,装完会自动获得 transcribe_anything 命令。
pip install transcribe-anything -
2转写在线视频
最基础用法,直接传 YouTube 或任意 URL,工具会自动下载并转码后识别,CPU 模式到处都能跑但较慢。
transcribe-anything "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -
3Mac 用 MLX 加速
Apple Silicon 上指定 mlx 后端走 Metal GPU,速度更快;--device 省略时会自动检测后端。
transcribe-anything video.mp4 --device mlx -
4高速高精度组合
insane-flash 后端配批量大小与词级时间戳,适合追求速度与精度;首次运行会构建独立环境并下载依赖。
transcribe-anything video.mp4 --device insane-flash --batch-size 12 --timestamp word -
5说话人分离
whisperx 后端带 VAD 与 wav2vec2 对齐,可输出按说话人分区的 speaker.json,适合会议记录。
transcribe-anything video.mp4 --device whisperx -
6构建 Docker 镜像
仓库自带 GPU 加速 Dockerfile,默认预构建 insane 与 insane-flash 共用的后端环境。
docker build -t transcribe-anything . -
7自托管带 TLS 服务
用 examples 里的 compose 起守护进程,Caddy 反代自动申请 Let's Encrypt 证书,先设置令牌与公网域名。
export TRANSCRIBE_ANYTHING_TOKEN=$(openssl rand -hex 32) export TRANSCRIBE_PUBLIC_HOST=transcribe.example.com docker compose -f examples/serve-compose.yml up -d
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
--device | 否 | 选择后端:cpu/cuda/insane/insane-flash/xpu/whisperx/sensevoice/mlx,省略则自动检测 | mlx |
--batch-size | 否 | 批量推理大小,配合 insane-flash 提升吞吐 | 12 |
--timestamp | 否 | 时间戳粒度,如 word 生成词级时间戳 | word |
TRANSCRIBE_ANYTHING_CACHE_DIR | 否 | 覆盖后端虚拟环境与 ffmpeg 的缓存目录,只读安装时指向可写路径 | /somewhere/writable |
PREBUILD_BACKENDS | 否 | Docker 构建时预构建的后端,设为 none 可得到最小镜像但首次运行才装依赖 | none |
TRANSCRIBE_ANYTHING_TOKEN | 否 | 自托管守护进程的访问令牌,用随机值生成 | $(openssl rand -hex 32) |
如何确认成功
命令正常结束并在输出目录生成文字稿/字幕文件;whisperx 后端还会生成 speaker.json。
常见问题
Q:首次运行为什么很慢、很占磁盘?
A:每个后端首次使用时会现场构建独立的 uv 虚拟环境并下载依赖,--device insane 约 10 GB,之后复用缓存不再重复下载。
Q:需要自己装 CUDA 或 torch 吗?
A:不需要。各后端运行在各自隔离的环境里,避免污染你的 Python,也不会有 CUDA/torch 依赖冲突。
Q:升级后为什么又要重新下载?
A:从 3.2 起缓存从包目录迁到用户缓存目录,旧路径的 venv 成为孤儿,每个后端首次运行会重新拉取一次依赖,没有数据丢失。
Q:怎么得到说话人分离结果?
A:使用 --device whisperx,它带 VAD 与 wav2vec2 对齐,并生成按说话人分区的 speaker.json。
Q:只读安装(如 Nix、--target 挂载)怎么用?
A:把缓存目录指到可写位置即可,例如设置环境变量 TRANSCRIBE_ANYTHING_CACHE_DIR=/somewhere/writable。
注意事项
- 命令中的 video.mp4 需替换为你自己的本地音视频文件路径。
- Docker 想最小化镜像可设 PREBUILD_BACKENDS=none,代价是首次运行才初始化后端。
- 各后端互不影响,但逐个使用会分别占用一份缓存空间,注意磁盘余量。
核心亮点
- 对 Mac ARM 做了专门优化,Apple Silicon 上转写速度快
- 支持本地文件和 URL 直接输入,自动处理下载与转码
- 完全本地运行,音频不外传,隐私性好且免费
不足之处
- 命令行交互为主,普通用户上手有一定门槛
- 依赖 Whisper 模型与后端环境,首次安装配置可能较繁琐
适用场景
- 整理播客或访谈录音,自动生成文字稿
- 为视频批量生成 SRT 字幕文件
- 会议录音转写并按说话人区分内容
替代项目
whisper.cpp、faster-whisper、whisperX
同类项目推荐
WhisperJAV
开源
给JAV视频一键生成高准确率字幕,嘈杂环境也能听清
ASR/STT subtitle generator. Uses Qwen3-ASR, local LLM, Whisper, TEN-VAD. Noise-robus···
Audio8-ASR-Infinite
开源
几小时录音丢进去,一口气转成文字
CrisperWhisper
开源
让 Whisper 转写更精确,词级时间戳和语气词全搞定
Controllable Transcription. Verbatim ( every, filler, pause, stutter, vocal sound) ,···
Easy-Voice-Toolkit
开源
一句话搞定语音识别、转写和去噪,小白也能上手
A user-friendly toolkit for voice recgonition/transcription/conversion etc. | 简单易···
Talkify
开源
按住说话,Mac 上离线秒变文字,免费又保隐私
Lightning-fast, free, local first voice dictation for macOS with on-device transcrip···
esp-skainet
开源
在 ESP32 上跑离线唤醒词和命令词识别
Espressif intelligent voice assistant
WhisperHallu
开源
预处理音频,让 Whisper 转录不再胡说八道
Experimental code: sound file preprocessing to optimize Whisper transcriptions witho···
typewhisper-mac
开源
在 Mac 上离线语音秒变文字,隐私无忧
Local speech-to-text for macOS on-device AI, fully private, optional cloud
whisper.rn
开源
手机端离线跑 Whisper,语音转文字不联网
React Native binding of whisper.cpp.