小车的语音助手与图灵机器人

本周主要对上周的基础功能进行优化与其他节点的对接。 在过程中,出现了一些其他想法:


预期

  1. 实现基础功能的语音识别与命令执行

过程

在使用Python的Speech_Recognition库进行语音识别时,发现目前开源预设中文模型的识别率较低。延伸出两种解决方法:

下面将简述两种解决方案的优劣。

对于第一种方式,即自行训练语音模型,该方式消耗的时间与人力成本较高。**对于是否能提高目前的普通话语音模型精确度不能保证。**即使可以提高目前的语音模型,也需要一定的数据集以及一定时间的模型训练,故在短期内没有考虑该解决方案; 对于第二种方式,对于部分指令进行训练优化,目前可以使用的解决方案是将模糊发音全部指向一个指令,例如:

导航模式 [dao hang mo shi]

左侧为识别后的信息,右侧为发音。在进行识别时,发音识别可能不够准确,例如若用户说出"导航模式[dao hang mo shi]",但机器却识别为"dao ang mu si",那么只需要将该模糊发音也指向导航模式的指令即可,即:

导航模式 [dao hang mo shi] 导航模式 [dao ang mu si]

同样地,可以对于单词进行拆分,例如"导航模式"可以简单地读作"导航",等等。 在长句子中读取指令,这里使用了Python的Jieba库进行句子的单词切片。 这样可以短时间内有效地提高指令的识别率。但问题在于无法真正精确地识别用户的每一个字。即只能针对特定的部分指令进行精确度的提升。因此,这里选择了第三种折中的方案:在小车离线的状态下,使用离线语音,识别特定指令;在联网状态下,使用在线的识别API进行语音的识别。

使用第三种方案可以在离线的状态下保障盲人对于基础功能的使用,避免离线后小车就无法使用的问题;在联网后,小车可以精确识别语音,并且可以调用地图API规划导航线路(未联网的状态下,小车也无法进行远距离导航,因此不需要复杂的指令识别)。 由于目前导盲机器人的语音指令还不够丰富,因此在其他对话中,为了体现语音助手的功能,在此可以接入图灵机器人,对于用户日常的对话可以有即时的、智能的反馈


已达到的内容