视频字幕生成器
多语言视频字幕生成和翻译工具包,基于WhisperX。
功能
语音转录:从视频中提取音频并将其转录为字幕,具有自动源语言检测
多语言翻译:将字幕从任何源语言翻译成可配置的目标语言
双语字幕:生成源语言 + 目标语言双语字幕
前提条件
Python 3.9+
ffmpeg(WhisperX需要用于音频提取)
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows(Chocolatey)
choco install ffmpeg
# Windows(Scoop)
scoop install ffmpeg
资源要求
在运行之前,请确认用户了解以下成本:
资源 详细信息
磁盘 ffmpeg ~80 MB;Python包(torch、whisperx等)2-5 GB;Whisper模型权重39 MB - 1.5 GB(取决于模型大小)
CPU / GPU WhisperX在本地运行模型推理。强烈推荐使用CUDA GPU进行中等和大型模型的推理。CPU和Apple MPS也可以使用,但速度明显较慢
网络 / API 翻译步骤调用远程LLM API并产生基于令牌的费用。无需网络连接即可进行转录步骤(模型下载后)
在安装包或下载模型之前,请始终与用户确认,因为这些操作会消耗存储空间和带宽。翻译需要LLM API并会产生费用。
在执行翻译步骤之前:
询问用户的API提供商、密钥和基本URL - 或者为审查呈现任何自动发现的配置
告知用户翻译会调用远程LLM并会消耗令牌(即真钱)
在用户明确确认提供商并承认成本之前,请勿继续翻译
使用方法
# 安装依赖项(需要~2-5 GB的磁盘空间用于PyTorch和WhisperX)
pip install -r requirements.txt
# 设置API密钥(用于翻译)
# macOS / Linux
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
# 可选,默认为OpenRouter
# Windows(PowerShell)
$env:OPENAI_API_KEY="your-api-key"
$env:OPENAI_BASE_URL="https://openrouter.ai/api/v1"
在Windows上,请在下面的所有命令中使用python代替python3。
python3 scripts/transcribe.py "/path/to/video.mp4" -o ./output -m small
输出:video.{检测语言}.srt(例如video.en.srt,video.ja.srt)
参数:
-o:输出目录
-m:模型大小(tiny、base、small、medium、large)
-d:设备(cuda、cpu、mps),默认自动检测
-l:强制源语言代码(例如en、ja、zh)。如果省略,则自动检测
python3 scripts/transcribe.py "/path/to/video/folder" -o ./output -m small
费用警告:此步骤调用远程LLM API。请确保用户已确认API提供商、密钥和计费意识,然后再运行。
# 翻译为中文(默认)
python3 scripts/translate.py ./output -o ./translated
# 翻译为日语
python3 scripts/translate.py ./output -o ./translated -t ja
# 仅生成双语字幕
python3 scripts/translate.py ./output -o ./translated --bilingual
参数:
-t、--target-lang:目标语言代码(默认:zh)
--bilingual:生成双语(源语言 + 目标语言)字幕
--target-only:生成目标语言字幕
--model:翻译模型(默认:google/gemini-3-flash-preview)
--batch-size:批大小(默认:10)
如果未指定--bilingual或--target-only,则同时生成两者。
python3 scripts/run.py
# 通过环境变量自定义
VIDEO_DIR="/path/to/videos"
TARGET_LANG=en
python3 scripts/run.py
run.py的环境变量:
VIDEO_DIR:视频源目录(默认:./videos)
OUTPUT_DIR:转录输出目录(默认:./output)
TRANSLATED_DIR:翻译输出目录(默认:./translated)
TARGET_LANG:目标语言代码(默认:zh)
WHISPER_MODEL:Whisper模型大小(默认:medium)
模型选择
模型大小 速度 准确度 最适合
tiny 39 MB 最快 一般 快速测试
base 74 MB 快 好 实时使用
small 244 MB 中等 好 推荐
medium 769 MB 较慢 很好 更高质量
large 1550 MB 慢 最好 专业使用
输出文件
对于每个视频,工具生成:
.{lang}.srt - 源语言字幕(语言自动检测,例如video.en.srt)
.json - 带有时间戳的完整转录数据
.bilingual.srt - 翻译后的双语字幕(源语言 + 目标语言)
.{target}.srt - 翻译后的目标语言字幕(例如video.zh.srt)
脚本概述
scripts/transcribe.py 使用WhisperX进行转录,并支持:
自动源语言检测(或通过-l手动覆盖)
时间戳对齐
批处理,跨文件重用模型
scripts/translate.py 使用LLM API翻译字幕,并支持:
可配置的目标语言(-t)
批量翻译以提高效率
双语字幕生成
支持多种翻译模型和批大小