这个坑值得记一笔。用默认参数转写粤语访谈,输出成了一段语义不通的普通话文本,几乎无法使用。

刚开始盯着「音频里夹杂英文,语言检测反复跳变」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。没有指定语言,模型自动检测成普通话;粤语在训练数据中占比低,识别能力有限;模型规格太小,对声调区分不敏感。

显式指定语言避免自动检测

whisper yue.mp3 --model large-v3 --language zh

随后换更大的模型提升区分能力

whisper yue.mp3 --model large-v3 --language zh --task transcribe

接着用提示词给出粤语书面表达引导

whisper yue.mp3 --model large-v3 --language zh --initial_prompt "以下是粤语口语内容"

末了抽样比对输出与原文

python -c "print(cer(ref, hyp))")

别只看报错消失,验证要多做一步。输出内容与粤语原意基本一致,字错率明显下降,夹杂的英文也能正确保留。

语言代码里没有单独的粤语选项,只能指定中文再靠大模型区分,期望值要合理,专业术语仍需人工校对。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189