之前那个 Whisper 点 cpp,它编译之后,我要去把一个 MP3 的文件里面,就是语音转成中文。那个它的命令行,它原生编译的这个却显示都是在说外语,我要怎么去指定它的内容是什么语言呢?我是要给它提示还是怎么样?那它有这种功能吗?还是说模型本身的参数?
Whisper.cpp指定中文语音转写
导出时间:2026/5/19 13:03:36
来源地址:https://www.doubao.com/chat/38417618197239554
消息数量:2
搜索 3 个关键词,参考 18 篇资料
一、核心解决:指定中文
命令行参数:
-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 -
要不要我给你一个可直接运行的完整脚本(自动下载模型、转码、转写中文),你只需替换音频文件名即可?