字
字节笔记本
2026年2月18日
generate_subtitle:Whisper + M2M100 音频字幕生成服务
API中转
¥120
本文介绍 generate_subtitle,一个使用 OpenAI Whisper 和 M2M100 构建的音频字幕生成服务。它可以自动将音频/视频转换为字幕,并支持多语言翻译。
项目简介
generate_subtitle 是一个开源的音频字幕生成工具,由 zeke-chin 开发。它结合了 OpenAI 的 Whisper 模型(语音识别)和 Meta 的 M2M100 模型(机器翻译),实现了从音频到多语言字幕的完整流程。
该项目适合需要为视频生成字幕、进行字幕翻译的内容创作者和开发者使用。
核心特性
- 语音识别: 使用 OpenAI Whisper 模型进行高质量的语音识别
- 多语言翻译: 基于 M2M100 支持 100 种语言之间的互译
- 批量处理: 支持批量处理多个音频/视频文件
- 多种输出格式: 支持 SRT、VTT、TXT 等字幕格式
- GPU 加速: 支持 CUDA 加速,提升处理速度
- 本地部署: 完全本地运行,保护数据隐私
技术栈
- 语音识别: OpenAI Whisper
- 机器翻译: Meta M2M100
- 编程语言: Python
- 深度学习框架: PyTorch
- 依赖管理: pip
安装指南
前置要求
- Python 3.8+
- CUDA 支持(可选,用于 GPU 加速)
- 足够的磁盘空间(模型文件约 3-5GB)
安装步骤
bash
# 克隆仓库
git clone https://github.com/zeke-chin/generate_subtitle.git
cd generate_subtitle
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt模型下载
首次运行时需要下载模型文件:
bash
# 下载 Whisper 模型
# 会自动下载到 ~/.cache/whisper/
# 下载 M2M100 模型
# 会自动下载到 ~/.cache/huggingface/国内用户可以通过镜像加速下载,详见项目文档。
快速开始
基本用法
bash
# 生成中文字幕
python generate_subtitle.py --input video.mp4 --language zh
# 生成英文字幕并翻译为中文
python generate_subtitle.py --input video.mp4 --language en --translate zh
# 批量处理
python generate_subtitle.py --input_dir ./videos/ --output_dir ./subtitles/Python API 使用
python
from generate_subtitle import SubtitleGenerator
# 初始化生成器
generator = SubtitleGenerator(
whisper_model="base",
translation_model="facebook/m2m100_418M"
)
# 生成字幕
subtitles = generator.generate(
audio_path="video.mp4",
source_lang="en",
target_lang="zh"
)
# 保存为 SRT
generator.save_srt(subtitles, "output.srt")支持的模型
Whisper 模型
| 模型 | 大小 | 速度 | 准确率 | 适用场景 |
|---|---|---|---|---|
| tiny | 39 MB | 最快 | 一般 | 快速测试 |
| base | 74 MB | 快 | 良好 | 日常使用 |
| small | 244 MB | 中等 | 较好 | 推荐 |
| medium | 769 MB | 较慢 | 好 | 高质量需求 |
| large | 1550 MB | 最慢 | 最好 | 专业场景 |
M2M100 模型
- m2m100_418M: 4.18亿参数,平衡速度和效果
- m2m100_1.2B: 12亿参数,更高翻译质量
使用场景
场景 1:为英文视频生成中文字幕
bash
python generate_subtitle.py \
--input english_video.mp4 \
--source-lang en \
--target-lang zh \
--output subtitle.srt场景 2:批量处理视频文件
bash
python batch_process.py \
--input-dir ./videos/ \
--output-dir ./subtitles/ \
--source-lang auto \
--target-lang zh场景 3:仅生成字幕不翻译
bash
python generate_subtitle.py \
--input video.mp4 \
--language zh \
--no-translate注意事项
- 硬件要求: 使用 GPU 可大幅提升处理速度,CPU 也可以运行但较慢
- 内存占用: large 模型需要较多内存,建议使用 medium 或 small
- 翻译质量: 机器翻译可能存在误差,建议人工校对重要内容
- 音频质量: 清晰的音频可获得更好的识别效果
相关资源
- GitHub 仓库: https://github.com/zeke-chin/generate_subtitle
- OpenAI Whisper: https://github.com/openai/whisper
- Meta M2M100: https://huggingface.co/facebook/m2m100_418M
许可证
本项目采用 MIT 许可证开源。
分享: