综合介绍
Simple Subtitling 是一个开源的音频字幕生成工具,专注于为视频或音频文件自动生成字幕并标注说话者身份。项目由 Jaesung Huh 开发,托管在 GitHub 上,旨在提供简单高效的字幕生成解决方案。工具通过音频处理技术,结合机器学习模型,生成带有时间戳和说话者标识的字幕文件,适合需要快速为视频添加字幕的用户。项目采用 Python 开发,支持单声道 16kHz 音频处理,易于安装和使用。Simple Subtitling 是 Jaesung Huh 博士研究期间的开源项目之一,注重实用性和开源社区贡献。
功能列表
- 自动生成字幕:从音频文件中提取文本,生成带时间戳的字幕文件。
- 说话者标识:通过语音分析区分不同说话者,为字幕添加说话者标签。
- 支持 SRT 格式:生成标准 SRT 字幕文件,兼容大多数视频播放器。
- 音频预处理:支持将音频转换为单声道 16kHz 格式,确保处理效果。
- 配置文件自定义:用户可通过配置文件调整字幕生成参数。
- 开源免费:代码公开,允许用户自由修改和扩展功能。
使用帮助
安装流程
Simple Subtitling 需要在支持 Python 的环境中运行,推荐使用 Python 3.9 或以上版本。以下是详细的安装步骤:
- 克隆仓库
打开终端,运行以下命令克隆项目代码:git clone https://github.com/JaesungHuh/simple-subtitling.git --recursive
使用 --recursive
确保克隆所有子模块。
- 创建虚拟环境
为避免依赖冲突,建议创建 Python 虚拟环境:conda create -n simple python=3.9 conda activate simple
如果不使用 Conda,也可以通过
venv
创建虚拟环境:python -m venv simple_env source simple_env/bin/activate # Linux/Mac simple_env\Scripts\activate # Windows
- 安装依赖
进入项目目录,安装所需 Python 包:cd simple-subtitling pip install -r requirements.txt
确保网络连接正常,依赖包会自动下载。
- 安装 FFmpeg
Simple Subtitling 使用 FFmpeg 进行音频预处理。请根据操作系统安装 FFmpeg:- Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
- MacOS(使用 Homebrew):
brew install ffmpeg
- Windows(使用 Chocolatey):
choco install ffmpeg
安装后,运行
ffmpeg -version
确认安装成功。 - Ubuntu/Debian:
- 配置环境
项目包含一个config.yaml
配置文件,用于设置音频处理和字幕生成参数。打开config.yaml
,根据需求修改以下关键字段:audio_path
:输入音频文件路径。output_path
:字幕文件保存路径。sample_rate
:确保设置为16000
(16kHz)。
示例配置:
audio_path: "input_audio.wav" output_path: "output_subtitle.srt" sample_rate: 16000
使用方法
安装完成后,用户可以通过命令行运行 Simple Subtitling。以下是主要操作步骤:
- 准备音频文件
Simple Subtitling 目前仅支持单声道、16kHz、PCM_16 格式的音频。如果音频格式不符合要求,使用 FFmpeg 转换:ffmpeg -i input_audio.mp3 -acodec pcm_s16le -ac 1 -ar 16000 output_audio.wav
替换
input_audio.mp3
为你的音频文件路径,输出为output_audio.wav
。 - 运行字幕生成
在项目目录下,运行主脚本:python main.py
脚本会根据
config.yaml
中的设置,处理音频并生成 SRT 格式的字幕文件。生成的字幕文件包含时间戳、说话者标识和文本内容,保存在output_path
指定的路径。 - 查看字幕文件
生成的 SRT 文件示例:1 00:00:01,000 --> 00:00:03,000 Speaker_1: 你好,欢迎使用 Simple Subtitling。 2 00:00:04,000 --> 00:00:06,000 Speaker_2: 这是一个开源字幕工具。
用户可将 SRT 文件导入视频编辑软件(如 Adobe Premiere、DaVinci Resolve)或播放器(如 VLC)。
特色功能操作
- 说话者标识
Simple Subtitling 使用机器学习模型分析音频,区分不同说话者。模型基于 ECAPA-TDNN 架构,预训练权重由 Jaesung Huh 提供。如果需要更高准确性,可从 Hugging Face 下载预训练模型:model = ECAPA_gender.from_pretrained("JaesungHuh/voice-gender-classifier")
在
config.yaml
中启用speaker_diarization: true
,即可为字幕添加说话者标签。 - 自定义字幕样式
用户可通过修改config.yaml
中的subtitle_style
字段,调整字幕字体、颜色等。当前支持基本 SRT 格式样式,未来可能扩展到 ASS 格式。 - 批量处理
若需处理多个音频文件,可编写简单的脚本循环调用main.py
,或修改config.yaml
支持多文件输入。社区贡献的批量处理脚本可在 GitHub 讨论区找到。
注意事项
- 确保输入音频质量清晰,背景噪音可能影响字幕准确性。
- 模型对英语音频表现最佳,其他语言可能需要额外训练。
- 项目处于开发阶段,建议关注 GitHub 仓库更新,获取最新功能和修复。
应用场景
- 视频内容创作者
YouTuber 或短视频制作者可使用 Simple Subtitling 为视频自动生成字幕,提升观众体验。工具的说话者标识功能适合访谈或多人对话视频,清晰标注每个说话者的内容。 - 教育内容制作
教师或在线课程制作者可为教学视频生成字幕,方便学生阅读。SRT 文件支持多语言播放器,适合国际化课程。 - 播客转录
播客制作者可将音频转为带说话者标识的字幕,用于发布文字版内容或制作视频剪辑。 - 会议记录
企业用户可为会议录音生成字幕,快速整理会议纪要。说话者标识功能帮助区分不同发言人。
QA
- Simple Subtitling 支持哪些音频格式?
目前仅支持单声道、16kHz、PCM_16 格式的 WAV 文件。其他格式需用 FFmpeg 转换。 - 如何提高字幕生成准确性?
确保音频质量清晰,减少背景噪音。在config.yaml
中启用speaker_diarization
并使用预训练模型。 - 可以处理非英语音频吗?
模型对英语音频效果最佳,其他语言可能需要额外训练或模型调整。 - 生成的字幕文件如何编辑?
SRT 文件可用文本编辑器(如 Notepad++)或字幕编辑软件(如 Aegisub)打开并修改。 - 项目是否支持实时字幕生成?
当前版本不支持实时处理,仅支持离线音频文件。实时功能可能在未来更新中加入。