引言
语音作为自然的人机接口,可以使车载导
航系统实现更安全、更人性化的操作。通过国
内外车载导航系统的功能对比可知,支持语音
交互是车载导航系统的一个发展趋势。另外,
市场信息服务公司J.D Power and Associates的
调研数据也表明,56%的消费者更倾向于选择
声控的导航系统。因此,开发车载语音导航系
统是很有意义的。目前,国内已经具备开发车
载语音导航系统的技术基础,特别是文语转换
TTS技术和基于中小词汇量的语音命令识别
术已经达到比较实用的程度。本文在课题组的
车载导航系统和国内两款语音引擎的基础上,开发了一套支持语音交互的车载导航系统。车载语音导航系统
结构
车载语音导航系统
从功能上分为车载导航
和导航语音交互两方面。
其中车载导航功能包括
GPS卫星导航定位、电
子地图浏览查询、智能的路径规划、车辆地理位置和速度等导航信息的实时显示;导航语音交互功能分为语音操作和语音提示两部分。在系统的设计中,根据人机交互的需求,设计语音导航系统的硬件框架如图1所示。语音导航系统和用户之间的人机交互接口由触摸屏、按钮、话筒、显示屏和扩音器等五个交互设备组成。该硬件框架可实现常规的手
动交互方式,也可以实现语音交互方式。整个
系统划分为三个子系统:导航子系统、语音识别子系统和语音合成子系统,各子系统间通过接口进行通信,协调完成语音导航任务。车载导航人机语音交互系统对话模式设计导航系统的状态转换网络整个导航系统是一个复杂的人机交互系
车载导航人机语音交互系统的实现
Design and Implementation of Human-machine Speech Interaction in Vehicle Navigation 清华大学汽车安全与节能国家重点实验室   刘旺  杨殿阁  连小珉
摘要:支持语音交互是车载导航系统的一个发展趋势。本文讨论了
车载导航系统人机语音交互的实现方法,包括对话模式、关
键词识别、语音控制命令、名称识别、语音合成。试验结果
证明,系统能满足车载导航人机语音交互的要求。
关键词:车载语音导航;人机语音交互;语音识别;语音合成
图1 语音导航系统的
硬件框架图2 导航系统的状态转换网络
统,为便于语音交互对话模式的设计,首先对系统作状态划分,然后从人机交互的角度描述整个系统
的状态转换网络。将系统划分为地图浏览、功能选择等六个功能状态和一个退出状态。图2描述了这些状态之间的状态转换网络。图中的节点代表系统的各个状态,带箭头的连线代表从源状态到目标状态的转换。状态转换网络接收用户的操作作为驱动事件,完成从一个状态到另一状态的转换,网络中
的一条路径便代表着特定的交互过程。导航系统各状态节点对话模式设计为便于描述各状态节点内部的对话模式,将状态节点按图2所示编号为S1 ̄S7,用Tmn表示状态节点Sm到状态节点Sn的转换。另外,借鉴状态流stateflow模型的表示方法,提出用于描述车载导航人机语音交互系统中的对话模型。重新定义转换的描述方式,用四个属性来描述状态节点内的一次转换:T={P1,P2,P3,P4}                          (1)其中,t用于表示一个转换,P1 ̄P4为转换的属性:P1为语音事件;P2为语音输出;P3为附加条件;P4为转换动作。这样,一个转换t便描述了一次对话中用户的语音输入、系统的语音输出、对话受到的限制条件以及系统执行的动作。以地图浏览状态为例,说明对话模式设计的过程。地图浏览状态由两个互斥的子状态组成:地图漫游状态和车辆引导状态(参见图2)。这两种子状态的人机交互大部分相同,所以将二者统一划分在地图浏览状态下。对于区分对待这两个子状态的交互过程,可以通过附加条件来判断当前子状态,再作不同的处理。地图浏览状态节点的对话模式设计如图3所示。人机语音交互系统的实现语音控制命令的实现语音控制命令的实现方案如图4所示。图中左边方框代表整个语音导航系统对话模式的状态转换网络STN。根据对话模式的设计,将系统分为地图浏览状态、功能选择状态、路径
规划状态等7个状态节点,每个状态节点内部均
存在各自的语音对话模式,对话模式由若干内部转换组成。因此,整个语音导航系统是一个两层结构的状态转换网络,其内部转换由语音事件驱动。语音事件由导航子系统的接口模块根据语音识别子系
统发送的用户意图而产生。语音控制命令的实现过程分为以下四个步
骤:
语音识别引擎根据当前命令词表识别用户语音,
得到识别结果。 管理窗口获取到识别结果,通过查询“识别词-控制命令”映射,得到识别结果对应的控制命令,并将控制命令作为用户意图发送至导航子系统的接口模块。
接口模块响应用户意图,通过语音事件改变语音导航系统的状态。 接口模块根据语音导航系统的状态判断是否需要更改当前命令词表,若需要则通过管
理窗口更改当前命令词表。
POI名称的识别方法
识别子系统除了要识别控制命令以外,还
需要识别POI(兴趣点、标志点)名称。POI名称
识别与控制命令识别最大的区别在于其候选集合在规模上的差异。在本系统中,进行控制命令识别时
候选集合的规模最大约为30个,但进
行POI名称识别时,以所用的北京电子地图为例,其POI点的个数为20,172个,此时其候选集合的规模比控制命令识别时大几个数量级。利用命令词识别引擎进行识别时,必须为引
图4 语音控制命令的实现设计方案框图图3 地图浏览状态的对话模式.
....
擎提供一个当前词表,需要先将候选集合中的词条转化为词表,才能真正地进行识别。同时,基于中小词表的ASR识别引擎不能生成规模达2万多的词表,所以对于POI名称识别,采取了不同于控制命令识别的方案。在对控制命令进行识别时,因为候选集合可以用一个词表来表示,采取了在线识别的方法。而对POI名称进行识别时,单个词表无法容纳所有的POI名称,由此提出了利用识别引擎离线识别功能的离线遍历识别方案。该方案利用多个词表来描述整个候选集合。实现的具体流程如图5所示。
该方案将候选POI集合划分为n个子集,并生成各子集的词表,然后以各词表为当前词表进行离线识别,并将这些局部的识别结果汇总形成一个临时词表,最后在这个临时词表中进行识别,得出全局的最优识别结果。该过程遍历了各个子集,相当于在整个候选集合中匹配出最优识别结果,所以识别正确率得到了保证。同时由于识别次数的增加,导致识别时间相应地变长。
导航系统语音提示的实现方案
导航系统的语音提示由专门的语音合成子
系统完成。将语音提示的实现过程分为提出请求和执行请求两步。请求的提出方和执行方构成客户/服务器(C/S)模型,其中,语音合成子系统充当服务器。由于语音合成引擎通常不能同时输出多线合成的语音,所以会遇到请求冲突的情况。发生请求冲突时,最直接的处理策略是:中止正在进行的合成转而进行下一个合成,或者维持正在进行的合成而忽略新的合成请求。为此在语音合成子系统中设计了管理模块用于决定发生合成冲突时的处理方式。
对于语音合成子系统,合成请求的提出是一个随机事件,将这类随机事件记为Q
。每个
合成请求Q
都具有优先级的属性,其优先级的高低取决于请求的提示信息的重要程度,见表1。管理模块的处理流程见图6。如果下一请求
i+1
的优先级高于当前请求Q
,则优先合成Q
i+1
。车载语音导航系统的试验验证
图7为本文的车载语音导航系统的实物照片。对本系统进行了语音导航的验证试验,通过语音交互完成了表2中所示的车载导航功能。试验表明,系统的状态能够完全正确地按照设计的对话模式进行转换,并能正确完成各种导航功能的人机对话过程;同时,系统的语音提示也能正确工作。
另外测试了系统正确响应语音控制命令的能力。测试中,用清晰平稳的语音,对地图浏
图5 离线遍历识别PIO名称的流程
图6 合成子系统优先级管理程序流程
汽车gps导航系统
表1  提示信息的优先级设置
表2 语音交互功能的测试项目
图7 车载语音导航系统
览状态所有语音控制命令的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名称的识别,并且获得了满意的识别正确率,但是耗时较长。
表3  离线遍历识别方
案的试验结果
结语
本文主要完成了车载导航人机语音交互系
统的设计和实现,并在实验室环境中对系统进
行了实验验证。
证明利用合成的语音,可以实现丰富灵活
的语音提示,使用户可以在不分散过多精力的
前提下使用导航系统。进一步的工作是提高识
别正确率和降低正确识别的平均耗时。
参考文献:
1. 丁捷. 车载GPS自主导航方法的研究:[硕士学
位论文] . 北京:清华大学汽车工程系,2003
2. 孟祥旭,李学庆. 人机交互技术—原理与应用.
北京:清华大学出版社,2004. 131 ̄136
3. 刘加,刘润生. 语音识别技术. 北京:清华大学
电子工程系,2001
Harting公司全球业务