,,
(大连海事大学 航海动态仿真和控制交通行业重点实验室,辽宁 大连 116026)
船舶操纵模拟器的人机交互方式在不断地改变,朝着更接近航海实践的方向发展,用户体验将会不断被提升。现如今语音交互被认为是人机交互最自然的方式,已经在多领域得到广泛应用[1-3],但在航海仿真领域的应用还较为基础。三维虚拟船舶仿真平台现有的人机交互依赖于键盘和鼠标实现,与操作简单的二维航海仿真设备不同,三维虚拟船舶仿真平台场景复杂,在虚拟培训中通过鼠标和键盘实现交互显得较为繁琐,影响用户的便捷使用。考虑将语音交互技术应用于该平台,力争在较大程度上降低人机交互的复杂度并减小培训时的人力消耗。
按照国际惯例,船舶操纵命令多以英文的形式表达,因此在设计虚拟船舶仿真平台的语音识别系统时识别内容为英文。由于在培训中受训人员需要和外界进行语音交流,为了使语音交互不受与漫游和操纵无关的外界语音干扰发生误操作,在设计语音交互的时候对语音识别系统做筛选操作。
为了使语音交互系统能准确识别并执行操作者的意图,除了对语音识别系统的识别内容做筛选,还加入语音唤醒功能。通过监听特定的语音内容,语音交互系统智能开启,从而消除与交互无关的干扰。当用户需要启动语音系统进行漫游或操纵时,使用特定的唤醒词,语音交互系统激活语音识别模块,进而做出相应的反应。考虑到在实际驾驶台的操纵中操作者需要复述操纵命令,并且当命令执行完成时需向命令发出者报告操纵情况,加入语音合成模块,进而完成该项功能。语音交互系统的组成见图1。
语音交互的实现依赖于语音识别模块和语音合成模块,下面主要从语音识别和语音合成的实现以及模块间的整合来阐述系统实现过程。
2.1.1 声学模型训练
声学模型训练具体步骤如下。
1)语音信号获取。采集不同地域人的航海领域相关的音频语料,对语音信号进行预处理(主要包括信号预加重和加窗分帧操作),得到短时平稳的语音信号。
2)计算梅尔倒谱系数(MFCC)。在频域上选取将语音产生机制和人耳听觉感知相结合的MFCC作为语音信号特征提取参数[4],通过式(1)实现梅尔频率和线性频率的转换。采用Mel滤波器组滤波得到梅尔频率,对滤波器的输出做离散余弦变换得到MFCC(见式(2))。
Mel(f)=2 595log(1+f/700)
(1)
式中:Mel(f) 为梅尔频率;f为线性频率。
i=1,2,…,L
(2)
式中:s(m)为第m个滤波器的输出;L为MFCC的阶数。
3)提取语音信号特征。使用Kaldi语音识别工具对训练音频数据进行特征提取,得到MFCC为13维的特征矩阵。
4)声学模型建模。以音素为声学单元使用GMM-HMM进行声学模型建模。采用EM算法训练得到GMM中的模型参数(包括高斯密度混合数、状态对应观察向量的均值和方差矩阵);通过Baum-Welch算法根据特征数据训练得到HMM模型参数[5](包括状态数、状态的转移矩阵),建立GMM-HMM声学模型文件,见图2。
2.1.2 语言模型的训练
语言模型在语音识别系统中负责将声学模型解码输出的无规则词序依据语言规律转化成可读的文字序列[6]。通过制作航海专业领域内的语料库,采用基于统计规则的3-gram语言模型进行建模。使用语言模型训练工具Srilm训练语言模型的流程大致为:首先对文本语料库断句分词,通过去重和排序处理得到词表;然后根据词表统计词频得到初始的3-gram模型,结合语料库进行模型的参数估计;最后为了解决模型训练时出现的数据稀疏问题,采用改进的平滑算法(Good-Turing折扣平滑[7]与Katz平滑[8]相结合)进行平滑处理,最终实现3-gram语言模型的建立。
采用基于Vertibi算法的解码器结合GMM-HMM声学模型和3-gram语言模型构成解码网络,得到识别范围为航海领域的语音识别系统。
Microsoft Speech SDK5.1中的语音合成模块包含丰富的以基本单元语音波形储存的语音库,语音合成的自然度较好,可应用的范围较广。本着快速实现语音交互功能的目的,采用Speech SDK5.1进行语音交互系统中语音合成模块进行二次开发。该SDK的应用层包含语音识别和语音合成程序,语音合成(TTS)由语音合成引擎控制,提供语音应用程序接口(SAPI)和设备驱动接口(DDI)支持语音技术的开发,Speech SDK5.1中的语音合成模块结构见图3。
在语音交互程序中接入语音合成模块,为语音合成函数SpeakAsync( )提供待合成文本。文本包含两个部分:当语音交互被唤醒但相应的交互操作还未完成时,该文本为语音识别系统识别的操纵命令;当语音命令被船舶仿真平台接收实现相关操作并反馈交互结果的时候,该文本为船舶仿真平台反馈的信息。
语音识别系统的识别范围针对航海领域,将语音识别系统模块和语音合成模块封装为一个语音交互程序,通过外部添加交互指令库和唤醒词库(主要用于场景漫游中),语音交互程序实时读取两个词库,同时考虑到用户的使用习惯,用户可以对唤醒词库进行修改。在语音交互程序和虚拟仿真船舶平台之间建立通信文件,用来储存语音交互指令和仿真平台的反馈信息。语音交互启动时虚拟仿真平台读取通信文件的交互指令进行相应的交互;操作完成时,传入反馈信息到通信文件中并覆盖原有信息,语音交互中的语音合成模块通过读取反馈信息并合成语音告知用户交互结果。
语音交互系统流程见图4。
1)语音识别模块处于监听状态。将监听到的词条存储于识别结果变量_SResult中。
2)_SResult与语音交互指令库及唤醒词库中的内容进行匹配。当与唤醒词库中的内容匹配,则进入步骤(3);由于航海实践操作的特殊性,在进行主机和舵机操作时,船长或者引航员会直接下达车钟令或者舵令而没有叫操作人员的名字(唤醒词),因此,当_SResult与语音交互指令库中这些指令匹配时,直接进入步骤(4);若未匹配成功,则返回步骤(1)继续监听。
3)操作指令识别。
4)根据识别的结果,调用语音合成系统,将操作指令以语音的形式反馈给用户。
5)接收用户同意的指令,执行操作指令。
6)操作指令执行结束后,调用语音合成系统,将操作结果以语音的形式反馈给用户。
7)一次语音交互过程结束。
以使用虚拟船舶仿真平台进行船舶靠泊操作为例,操作前提为:引航员独自使用该平台,操纵虚拟船舶,靠泊大连港,主机、舵机等操作由机器完成。航行过程中,引航员在瞭望,观察水域周围船舶动态,驾驶船舶正常航行,与语音交互系统相关操作如下:
1)在进入转向点时,下达舵令“port ten”;根据语音交互系统工作流程,语音识别模型识别出该舵令,计算机回复“port ten”;引航员听到计算机回复内容后,回复“OK”;语音交互系统在识别引航员这句指令后,操作舵轮,当转到“port ten”时,计算机恢复“the wheels is port ten”。至此,一条语音交互操作完成,与实际船舶操纵一致。
2)当船舶逐渐接近泊位时,引航员需要操作主机,使船舶降速,这时按照1)中的步骤,与语音交互系统进行人机对话,其不同点在于:将舵令改为车钟令,例如:half ahead、stop engine等。
3)在接近泊位边缘时,引航员需要走到驾驶台左右舷,去观察船舶与码头的间距,以及周围是否有碍航物等。这时,引航员与语音交互系统的对话是这样的:“speech interaction system: move to the port side of bridge”;语音交互系统在识别唤醒词“speech interaction system”后,启动漫游功能,根据后一句“move to the port side of bridge”(移动至驾驶台左舷)的识别情况,自动跳转到驾驶台左舷,完成快速导航的漫游功能。
由实例可以看出,语音交互系统承担了船舶实际操作中舵工操作舵轮、驾驶员操作车钟的工作,使得船长或者引航员在自己操纵船舶时,可以像实际操纵船舶时一样,关注船舶操纵本身。另外,从漫游的角度出发,实现了快速导航的功能。
整个虚拟船舶仿真平台在windows10操作系统Edifier-K815头戴式麦克风的实验室环境中进行。以“move to the port side of bridge”、“go to the bow”、“port ten”、“stand by engine”、“half ahead”等漫游指令和常用的船舶操纵指令作为语音命令,分别让10个测试者各进行120次语音交互测试实验,记录实验结果并计算,相应的测试果如表1所示。
测试表明,大部分测试者的语音交互准确率都在90%以上,只有少数几个测试者的交互准确率较低;但整体上语音交互的平均准确率为91%,语音交互的准确率在可接受的范围内,可以初步满足三维虚拟船舶仿真平台的语音交互要求。
表1 语音交互测试结果
与简单的二维航海仿真设备语音控制相比,该仿真平台的语音交互系统具有智能唤醒功能,可以使仿真平台的语音交互不受漫游和与操纵无关的外界语音干扰。与此同时,对于在单人进行进出港操作的虚拟培训时,用户通过语音交互实现简单的协同配合操作,可以解决一人身兼数职的问题。将语音交互技术应用于三维虚拟船舶仿真平台,不仅能为航海相关培训带来便利,而且能在一定程度上促进航海仿真系统智能化的发展。在语音交互实例测试中,由于测试者佩戴头戴式麦克风且在实验室环境下进行实验,保证了语音交互具有较高的准确率。而在实际中,航海仿真训练系统需要模拟实船噪声环境进行相关的操作培训,因此在今后需要研究麦克风阵列技术,使得语音交互系统在模拟实船的噪声环境中,能保证具有较高的准确率,从而提升仿真培训的效果。
[1] RAO P V L N, ABHILASH P S. Application of mobile robots by using speech recognition in engineering[J]. interna-tional[J]. Journal of u- and e- service, science and technology, 2015,8(6):229-234.
[2] STEDMON A W, RICHARDSON J, BAYER S H, et al. Speech input applications for driving: Using different levels of fidelity in simulator research[J]. Advances in Transportation Studies, 2012,A-28:17-34.
[3] PAI N, CHEN S, CHEN P, et al. Application of HMM-based chinese speech recognition on internet of things for smart home systems[J]. ICIC express letters, part b: applica-tions, 2016,7(9):1901-1909.
[4] GULZAR T, SINGH A, SHARMA S. Comparative analysis of LPCC, MFCC and BFCC for the recognition of Hindi words using artificial neural networks[J]. Acta materialia, 2014,56(13):3132-3145.
[5] OUDELHA M, AINON R N. HMM parameters estimation using hybrid Baum-Welch genetic algorithm[C]. Information Technology. IEEE, 2010:542-545.
[6] 邢永康,马少平.统计语言模型综述[J].计算机科学,2003,30(9):22-26.
[7] CHEN S F, GOODMAN J T. An empirical study of good-Turing smoothing for language models on different size corpora of Chinese[J]. Journal of computer & communications, 2013,1(5):14-19.
[8] WU J, ZHENG F. On enhancing katz-smoothing based back-off language model[C] International Conference on Spoken Language Processing, Icslp 2000 Interspeech 2000, Beijing, China, October. DBLP, 2000:198-201.