Whisper.cpp指定中文语音转写

保存时间:2026/4/2 11:34:56


Whisper.cpp指定中文语音转写
内容由豆包 AI 生成
之前那个 Whisper 点 cpp,它编译之后,我要去把一个 MP3 的文件里面,就是语音转成中文。那个它的命令行,它原生编译的这个却显示都是在说外语,我要怎么去指定它的内容是什么语言呢?我是要给它提示还是怎么样?那它有这种功能吗?还是说模型本身的参数?

一、核心解决:指定中文

命令行参数:-l zh--language zh(ISO 639-1 代码,必须小写)

二、完整命令(MP3 转中文)

1. 先转音频(whisper.cpp 原生支持 MP3 需编译时开 FFmpeg)

bash
运行
# 用 ffmpeg 转成 16kHz 单声道 WAV(最稳)
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le input.wav

2. 运行 whisper.cpp(指定中文)

bash
运行
# 编译后的可执行文件一般在 ./build/bin/main 或 ./main
./build/bin/main \
  -m models/ggml-large.bin \  # 必须用多语言模型(不带.en后缀)
  -l zh \                     # 关键:指定中文
  -otxt \                     # 输出txt
  -f input.wav                # 你的音频

三、关键前提(必看)

  • 模型必须是多语言版:用 base/small/medium/large不带 .en 后缀);.en 模型只支持英文
  • 默认行为:不指定 -l 时,默认 en,非英语会被翻译成英文,不是转写
  • 语言代码:中文用 zh;自动检测用 -l auto(但中文建议强制 zh 更准)

四、常见错误排查

  • 输出还是英文:大概率用了 .en 模型 → 换 ggml-large.bin 等多语言模型
  • 报错不支持 MP3:编译时加 -DWHISPER_FFMPEG=ON,或先转 WAV
  • 识别不准:换更大模型(large > medium > small > base

五、最简可用命令(直接复制)

bash
运行
# 下载多语言模型(以large为例)
bash ./models/download-ggml-model.sh large

# 转音频+转写(一步)
ffmpeg -i your.mp3 -ar 16000 -ac 1 -f wav - | ./build/bin/main -m models/ggml-large.bin -l zh -otxt -f -
要不要我给你一个可直接运行的完整脚本(自动下载模型、转码、转写中文),你只需替换音频文件名即可?
参考 18 篇资料
好的,帮我生成一个可直接运行的完整脚本吧
whisper.cpp的安装教程