reference: AI auto-subtitling — /var/ --- AI 自动字幕 — /var/ (spapas.net)
0 环境准备
我们使用 Whisper 库来实现 AI 语音转文本, 它支持生成字幕文件。
先去 github 仓库下载可执行文件:v1.4.0, 完成后再去模型仓库选择一个模型下载, 越大的模型效果更好, 但也会更慢。通常 small 就足以使用。
如果是要转录英文语音文件, 需要用带 en 后缀的模型。中午和其他语言则用不带 en 后缀的。
whisper 需要具有特定特性(采样率为 16khz)的未压缩音频(.wav 文件)才能工作, 因此我们需要把原语音文件通过 ffmpeg 转换为对应格式。
ffmpeg 下载 : Releases · BtbN/FFmpeg-Builds (github.com) 选择 ffmpeg-master-latest-win64-gpl.zip 即可。
1 提取视频音频
用该命令:
ffmpeg.exe -i "movie.mp4" -f wav -vn -acodec pcm_s16le -ar 16000 -ac 1 "movie.wav"
解释一下参数:
-i
指 input, 也就是输入文件路径-f wav
为指定 format, 也就是文件格式为 wav-vn
表示处理时不考虑视频, 只关心音频-acodec pcm_s16le
wav 文件的编解码器-ar 16000
设置采样率为 16khz-ac 1
设置单声道, 2 为立体声
2 传入 Wishper 得到字幕文件
将 cmd 进入 Wishper 目录下:
接着运行这条命令:
main.exe -osrt -m ggml-base.bin -f movie.wav
解释一下参数:
-osrt
生成 srt 字幕文件-m ggml-bash.bin
选中当前目录下的 small 模型-f
原音频文件路径
运行后就会在当前目录下生成字幕文件。