? 准备工作:环境搭建与工具安装
Whisper 是 OpenAI 开源的语音识别模型,你可以通过 Python 的包管理工具 pip 来安装。在命令行中输入
pip install openai-whisper
就能完成安装。安装好之后,还需要下载模型。Whisper 有多种模型可供选择,比如 tiny
、base
、small
、medium
和 large
等。模型越大,识别的准确率越高,但所需的计算资源也越多。如果你的电脑配置一般,base
或 small
模型就比较合适;要是追求高精度,那就选 large
模型。下载模型的命令是 whisper download-model [模型名称]
,比如 whisper download-model base
。FFmpeg 是一个强大的多媒体处理工具,在处理视频和音频时经常会用到。你可以从 FFmpeg 的官方网站下载适合你操作系统的版本,然后将其添加到系统的环境变量中,这样在命令行中就能直接使用 FFmpeg 了。安装好 FFmpeg 后,你可以在命令行中输入
ffmpeg -version
来验证是否安装成功。? 第一步:提取视频中的音频
video.mp4
的视频文件,你可以在命令行中输入以下命令来提取音频:ffmpeg -i video.mp4 -vn -acodec copy audio.aac
-i
后面跟着的是输入视频文件的路径,-vn
表示只提取音频,忽略视频流,-acodec copy
表示直接复制音频流,不重新编码,这样可以保持音频的原始质量。输出的音频文件名为 audio.aac
。? 第二步:使用 Whisper 生成英语字幕
你可以在命令行中输入以下命令来生成英语字幕:
whisper audio.aac --language [原语言] --task translate --output_format srt --output_dir ./subtitles
--language
后面跟着的是视频中原始语音的语言,比如 zh
表示中文,es
表示西班牙语等。--task translate
表示将语音翻译成英语,--output_format srt
表示输出 SRT 格式的字幕文件,--output_dir
后面跟着的是输出目录的路径,这里设置为当前目录下的 subtitles
文件夹。如果你更喜欢使用 Python 代码来处理,也可以通过编写 Python 脚本来实现。首先,你需要导入 Whisper 库:
import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.aac", language="zh", task="translate")
with open("subtitles.srt", "w", encoding="utf-8") as f:
for segment in result["segments"]:
start = segment["start"]
end = segment["end"]
text = segment["text"]
f.write(f"{start:.3f} --> {end:.3f}\n{text}\n\n")
⏱️ 第三步:调整时间码
如果你对时间码的要求不是特别高,可以手动打开 SRT 文件,逐行修改时间码。SRT 文件的格式是每行包含一个时间码范围和对应的字幕内容,例如:
00:00:00,000 --> 00:00:05,000
这是第一句字幕。
如果你觉得手动调整太麻烦,也可以使用一些专门的字幕编辑工具来调整时间码。比如 Subtitle Edit,这是一款免费的字幕编辑软件,支持多种字幕格式,并且提供了直观的时间轴界面,方便你对字幕进行精确调整。你可以从 Subtitle Edit 的官方网站下载并安装该软件,然后打开生成的 SRT 文件,通过拖动时间轴上的滑块来调整时间码。
? 第四步:导出为 SRT/VTT 格式
如果你在使用 Whisper 生成字幕时已经指定了输出格式为 SRT,那么生成的字幕文件就是 SRT 格式的,不需要额外的操作。如果需要将其他格式的字幕文件转换为 SRT 格式,可以使用字幕编辑工具来实现。
VTT 格式是一种基于 Web 的字幕格式,常用于网页视频。你可以使用字幕编辑工具将 SRT 格式的字幕文件转换为 VTT 格式。在 Subtitle Edit 中,你可以通过以下步骤进行转换:
- 打开 SRT 文件。
- 选择 “文件” 菜单中的 “另存为” 选项。
- 在弹出的保存对话框中,选择 “VTT” 格式作为保存类型。
- 输入文件名,点击 “保存” 按钮。
? 提高识别准确率的技巧
不同的 Whisper 模型在识别准确率和计算资源消耗上有所不同。如果你的电脑配置较高,建议选择较大的模型,如
medium
或 large
,以获得更高的识别准确率。在使用 Whisper 处理音频之前,可以对音频进行预处理,如降噪、标准化等。你可以使用 Audacity 等音频编辑工具来进行预处理。
在调用 Whisper 的
transcribe
方法时,可以提供一些上下文信息,比如音频的主题、说话者的身份等,这有助于 Whisper 更好地理解语音内容,提高识别准确率。