本项目是一个自动化视频处理系统,能够实现视频音频提取、语音识别、字幕生成、多语言翻译、语音合成以及音视频合成等功能。系统采用模块化设计,支持单步或多步处理,方便用户根据需求灵活使用。
- 从视频中提取音频
- 支持多种音频格式
- 自动调整采样率和声道
- 音频质量优化
- 使用 Whisper 进行语音识别
- 自动生成带时间戳的字幕
- 支持多种语言识别
- 字幕格式标准化
- 支持多语言翻译
- 使用 Azure Translator API
- 保持字幕时间轴对齐
- 翻译质量优化
- 使用 Edge TTS 进行语音合成
- 智能语速调整
- 多语言语音支持
- 自然的语音效果
- 视频字幕嵌入
- 音视频同步
- 支持多种视频格式
- 视频质量保持
- Python 3.8+
- FFmpeg
- Edge TTS
- Azure Translator API 密钥
# 1. 克隆项目
git clone https://github.com/bushkarl/video-processor.git
cd video-processor
# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 3. 安装依赖
pip3 install -r requirements.txt
# 4. 配置环境变量
brew install ffmpeg # Linux/Mac
choco install ffmpeg # Windows
# 提取音频
./run.sh input.mp4 --steps extract_audio
# 生成字幕
./run.sh input.mp4 --steps generate_srt
# 翻译字幕
./run.sh input.mp4 --steps translate
# 生成配音
./run.sh input.mp4 --steps tts
# 移除原字幕
./run.sh input.mp4 --steps remove_subs
# 合成视频
./run.sh input.mp4 --steps compose
# 提取音频并生成字幕
./run.sh input.mp4 --steps extract_audio generate_srt
# 翻译并生成配音
./run.sh input.mp4 --steps translate tts
# 完整处理流程
./run.sh input.mp4 --steps all
每个步骤会生成对应的输出文件:
*_audio.wav
: 提取的音频文件*_original.srt
: 原始字幕文件*_translated.srt
: 翻译后的字幕文件*_dubbed.wav
: 合成的配音文件*_no_subs.mp4
: 移除字幕后的视频*_final.mp4
: 最终合成的视频
-o, --output
: 指定输出文件路径--remove-subs
: 移除原始字幕--keep-temp
: 保留中间文件--voice
: 指定语音 (例如: xiaoxiao, yunxi, jenny 等)--speed
: 视频速度因子 (0.5-2.0, 默认1.0)--save-srt
: 保存原始和翻译后的字幕文件
- 中文女声:
- xiaoxiao: 晓晓(默认)
- xiaoyi: 晓伊
- xiaoxuan: 晓萱
- xiaozhen: 晓甄
- 中文男声:
- yunxi: 云希
- yunxia: 云夏
- yunyang: 云扬
- 英文语音:
- jenny: Jenny (女声)
- aria: Aria (女声)
- guy: Guy (男声)
- 日语语音:
- nanami: Nanami (女声)
- keita: Keita (男声)
- 韩语语音:
- sunhi: SunHi (女声)
- inpyo: InPyo (男声)
使用示例:
# 使用云希语音
./run.sh input.mp4 --voice yunxi
# 使用晓伊语音
./run.sh input.mp4 --voice xiaoyi
- 确保已正确安装 FFmpeg
- 配置 Azure Translator API 密钥
- 保持网络连接稳定
- 建议使用高质量的输入视频
- 处理大文件时注意磁盘空间
- FFmpeg 相关错误
- 网络连接问题
- 内存使用问题
- 临时文件清理
- 字幕同步问题
- 支持更多视频格式
- 优化语音识别准确度
- 添加批量处理功能
- 改进字幕样式定制
- 提供 Web 界面
欢迎提交 Issue 和 Pull Request
MIT License