尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Vosk 语音识别准确率优化实战指南:词表约束、语言模型调优与 ITN 归一化三步走

Vosk 语音识别准确率优化实战指南:词表约束、语言模型调优与 ITN 归一化三步走 Vosk 语音识别准确率优化实战指南词表约束、语言模型调优与 ITN 归一化三步走【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api上周五的报修电话上午十点派个师傅被识别成四点钟工单录错了时间。这是用离线语音识别工具包 Vosk 接真实业务时的典型状况也是识别准确率优化路径的起点。这类错误很少是玄学要么输出没约束要么语言模型参数不贴领域要么结果没做规范化。下面三招修复按见效快慢排列。先对号入座识别错误从哪来动手前先给错误分类。不同错误的修法不同搞反了就白干。下表帮你先定位问题错误现象常见原因对应手段命令词被识别成音近词如十变四输出不设限声学模型自由选音近词词表 / 语法约束领域术语、专有名词总错日常对话正常模型没见过该领域词汇语言模型权重不匹配调语言模型参数用领域语料微调文本没错但是口语化如二零二三八点零五输出缺少规范化步骤ITN 文本后处理表格只帮你判断。接下来三节按见效速度展开。最快见效给识别器套上词表约束解决什么问题。音箱、通话控制、工单录入这类命令式场景真实输出空间很小。但默认识别器输出自由词容易挑到音近的词。把候选集锁住误报肉眼可见地减少。怎么做。建识别器时传入一份 JSON 词表结果只能从表里出。官方示例 python/example/test_words.py 就是这个写法from vosk import Model, KaldiRecognizer import wave wf wave.open(command.wav, rb) model Model(langen-us) rec KaldiRecognizer(model, wf.getframerate(), [turn on the light, turn off the light, [unk]])运行中上下文变化时不用重建识别器调一次rec.SetGrammar(新词表)即可热切换底层 FST 识别网络会当场重建实现见 src/recognizer.cc。代价与注意。词表是输出的上限。用户说了表外内容要么落到[unk]要么被硬拽到最近的词上。所以词表要和产品话术一起维护新增一条命令就补一行。词表膨胀到数千条时首句识别会明显变慢此时考虑换用模型级方案。慢工出细活语言模型参数怎么调解决什么问题。语言模型决定哪种词序更可能出现。通用模型看过大量新闻和字幕但可能没见过你行业的黑话。Vosk 的格子打分依赖 src/language_model.h 里定义的 n-gram 参数主要两个参数作用推荐值适用场景ngram_order用几个前词预测下一个词阶数越高上下文越长默认 3 起步大语料再升长对话、上下文依赖强的领域discountn-gram 低频时回退的折扣压低低频组合的权重默认 0.5 起步小步试书面语多的语料取低口语对话取高两个常见误区没语料就升阶数。高阶计数不足概率分布不稳反而更差。指望 discount 救领域错误。它只调回退力度词表里没有的词怎么调都救不回来。真要让模型听懂你的行业正路是用领域语料训练。仓库的 training/ 目录有一套完整 Kaldi 训练流程配好环境、整理好数据后跑一条命令走完全程. ./path.sh bash run.sh代价摆在明面上要备语料和发音词典周期长。把它放在词表和参数都榨干之后。最后一公里把口语结果改成标准文本解决什么问题。识别对了二零二三年八点零五也不适合入库、展示和机器直接用。怎么做。结果输出后加一道逆文本规整ITN。Vosk 内置的Processor基于 FST 文本语法实现见 src/postprocessor.cc传入 tagger 和 verbalizer 两个 FST先标出数字、日期、时间这类实体再转成书面形式。官方示例 python/example/test_itn.py 用的是俄语规则效果如下输入 у нас десять яблок → 输出 у нас 10 яблок输入 мы пришли в восемь часов пять минут → 输出 мы пришли в 08:05输入 десять миллилитров воды точка → 输出 10 миллилитров воды.代价与注意。FST 规则按语言提供没有现成规则的语言要自己按 FST 格式编写有学习成本。另外规整不可逆转完拿不回原形建议保留一份原始结果用于审计。落地前先看这几条❌ 智能音箱场景上来就调参数。 ✅ 先做词表约束。输出空间小词表加固定命令集就够参数保持默认。❌ 会议记录照搬通用默认配置。 ✅ 关掉词表语言模型用默认参数只在后面接数字和时间归一化。❌ 跳过诊断环节三层手段一次性全上。 ✅ 先修词表错误再看参数错误最后处理归一化。每一步用同一批音频集验证效果。顺序就定下来先加词表再调参数最后开 ITN。每做一步跑一遍同一批音频对比改善你才知道力气花在了哪里。【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表