如何避免Whisper模型转录音频时自动修正语法?
解决Whisper模型自动修正语法的问题
代码修正
你的代码存在两处错误:导入语句缺失load_model,且调用方法名写错(应为transcribe而非transcript),修正后代码如下:
from whisper import load_model fname = 'audioFile' model = load_model('small') result = model.transcribe(fname) print(result["text"])
语法自动修正的解决方法
Whisper默认会对转录文本做语法规范化,要保留原始音频的口语化/不完整表达,可尝试以下方案:
调整解码参数抑制修正
设置temperature=0.0让模型选择最确定的转录结果,同时搭配beam_size限制解码路径,减少自动修正:result = model.transcribe(fname, temperature=0.0, beam_size=5)用初始提示引导模型
通过initial_prompt明确告知模型保留原始表达,同时指定language="en"提升英语识别精度:prompt = "保留原始口语表达,不要修正语法或调整语序" result = model.transcribe(fname, initial_prompt=prompt, language="en")提取单词级结果拼接
开启word_timestamps=True获取逐词转录数据,直接拼接单词可跳过句子级语法修正:result = model.transcribe(fname, word_timestamps=True) original_text = " ".join([word["word"] for seg in result["segments"] for word in seg["words"]]) print(original_text)尝试更大模型
small模型为了速度做了精度妥协,base/medium等更大模型对口语化内容的识别更准确,过度修正概率更低,可测试对比效果。
内容的提问来源于stack exchange,提问作者mann
相关产品推荐
相关产品推荐

