该方案将候选POI集合划分为n个子集,并生成各子集的词表,然后以各词表为当前词表进行离线识别,并将这些局部的识别结果汇总形成一个临时词表,最后在这个临时词表中进行识别,得出全局的最优识别结果。该过程遍历了各个子集,相当于在整个候选集合中匹配出最优识别结果,所以识别正确率得到了保证。同时由于识别次数的增加,导致识别时间相应地变长。
导航系统语音提示的实现方案
导航系统的语音提示由专门的语音合成子系统完成。将语音提示的实现过程分为提出请求和执行请求两步。请求的提出方和执行方构成客户/服务器(C/S)模型,其中,语音合成子系统充当服务器。由于语音合成引擎通常不能同时输出多线合成的语音,所以会遇到请求冲突的情况。发生请求冲突时,最直接的处理策略是:中止正在进行的合成转而进行下一个合成,或者维持正在进行的合成而忽略新的合成请求。为此在语音合成子系统中设计了管理模块用于决定发生合成冲突时的处理方式。
对于语音合成子系统,合成请求的提出是一个随机事件,将这类随机事件记为Qi。每个合成请求Qi都具有优先级的属性,其优先级的高低取决于请求的提示信息的重要程度,见表1。管理模块的处理流程见图6。如果下一请求Qi+1的优先级高于当前请求Qi,则优先合成Qi+1。
车载语音导航系统的试验验证
图7为本文的车载语音导航系统的实物照片。对本系统进行了语音导航的验证试验,通过语音交互完成了表2中所示的车载导航功能。试验表明,系统的状态能够完全正确地按照设计的对话模式进行转换,并能正确完成各种导航功能的人机对话过程;同时,系统的语音提示也能正确工作。
另外测试了系统正确响应语音控制命令的能力。测试中,用清晰平稳的语音,对地图浏览状态所有语音控制命令的49个识别词进行了测试,共测试49×3=147次,成功132次,失败15次,成功率为89.8%。可见,系统语音控制命令的有效性较好。
在海量POI名称识别的试验中,对字数为2至10的POI名称进行了测试。对于每一长度的POI名称,分别取10个进行测试。其中每个POI名称最多做两次测试,当且仅当第一次测试失败才继续第二次测试。试验结果如表3所示。
可见,离线遍历识别方案的一次识别正确率为86.7%,二次识别正确率为93.3%。其正确识别的平均耗时为6.1s至10.4s之间,按POI名称的字数统计分布计算加权的平均耗时为8.3s。以上数据说明,该方案能够利用小词汇量的关键词识别引擎实现大词汇量POI名称的识别,并且获得了满意的识别正确率,但是耗时较长。
结语
本文主要完成了车载导航人机语音交互系统的设计和实现,并在实验室环境中对系统进行了实验验证。
证明利用合成的语音,可以实现丰富灵活的语音提示,使用户可以在不分散过多精力的前提下使用导航系统。进一步的工作是提高识别正确率和降低正确识别的平均耗时。