用 Whisper 转写中文录音,输出的文字一长串没有标点,断句也很随意。模型本身能输出标点,但需要一点引导,直接喂音频往往得到的是裸文本。
先确认语言参数
segments, info = model.transcribe(
"audio.mp3", language="zh",
initial_prompt="以下是普通话内容,请使用标准标点。")
language 指定为 zh 能明显减少中英混杂和错字。initial_prompt 给一段带标点的中文范例,模型会模仿这种输出风格,效果比事后处理更自然。
切分方式也会影响标点
长音频被切成很短的片段时,模型看不到上下文,句号容易丢失。适当调大片段长度,或者关闭跨段条件,让每段带上前一段的尾部作为提示。
实在没有标点就后处理
用轻量的标点恢复模型对结果做一次二次处理,输入纯文本输出带标点文本,成本很低。规则补丁只适合处理问号、冒号这类固定场景,整段文本靠正则很难补对。
转写完成后建议人工抽查前几分钟,确认专有名词和数字没有被听错,这类错误标点模型救不回来。