Skip to content

语音唤醒性能优化

Junjie Wang edited this page Jan 5, 2018 · 2 revisions

01/05/2018


我们不考虑误唤醒的问题,先说说OKEY TOMMY的识别问题。从演示视频里可以看出,v0.2版的OKEY TOMMY的识别是有一些慢的,我说完OKEY TOMMY后,需要等一会系统才会反馈嘀的一声,这时候才能说话。

按照系统设计,灯灭的时候,说话不起作用;白灯等待接收OKEY TOMMY指令,蓝灯等待接收其他任意指令。

那么,为什么会有反馈慢这个问题呢?有两个概念需要解释一下。

  • 第一个是活动语音检测(Voice Activity Detection、VAD)问题。VAD模块主要用于语音起始点、结束点的检测,即检测BOS(Begin Of Speech)和EOS(End Of Speech)、决定何时开始和结束语音识别。从头开始编写一个VAD模块虽然不很复杂,但需要很多的专业知识,同时调校至商业可用、足够鲁棒需要很多的时间精力投入,所以本宝采用现成的开源VAD模块webrtcvad。

  • 第二个就是识别模式,是在线流式识别还是离线识别。本宝v0.2版背后运作的机制实际上是离线识别,即VAD检测到EOS后,将语音打包至识别引擎处理。使用离线识别的好处是简单,缺点也是显而易见的,就是牺牲了录音的处理时间,本来录音的同时是可以做识别、即在线流式识别。在线流式识别可以极大的降低识别结果的延时,改善用户的使用体验。

后续版本会改善v0.2的这个问题。