车载移动场景下语音识别系统设计

2019-10-21 11:17路远争张凯亮曹兴旗许武
科学与财富 2019年31期
关键词:语音识别

路远争 张凯亮 曹兴旗 许武

摘 要:在汽车驾驶中,由于各种意外情况,驾驶者经常需要去控制手机或者车内的其它设备,这时手就会离开方向盘,这显然给汽车安全驾驶埋下安全隐患。因此,利用智能语音识别技术来改变驾驶环境下现有的人机交互方式,从而解放驾驶者的双手,有效的提高驾车安全性。本设计以Android开发平台为基础,为车载环境下的用户提供一个可以直接识别语音指令的系统。该系统主要实现语音识别、语音合成、查看当前位置、导航、控制车辆天窗等功能。结果表明,该系统具有较好的识别效果,界面友好操作简便,能够消除一定的驾驶环境下的安全隐患。该平台也可以作为语音云体验质量测试的基础平台。

关键词:Android Studio;百度语音SDK;语音识别;语音合成

1设计背景与意义

服务机器人以服务为目的,但是在处理一些特定场景下的人机交互的时候,比如驾车时,这时候交互就会比较困难,因为没法空出双手没法去操控机器。因此人们需要一种更方便、更自然、更加人性化的方式與机器交互,而不仅仅是复杂的键盘和按钮操作。基于听觉的人机交互是该领域的一个重要发展方向。语音识别技术,也被称为自动语音识别,即让机器通过识别把人类的语音信号转变为相应的文本或命令的技术,能让计算机理解和运用人类的自然语言,实现人机之间的自然语音通信。自动语音识别技术所要解决的问题是就是让计算机能够“听懂”人类的语言,将语言中包含的文字信息“提取”出来。

语音识别技术是一门交叉学科 ,语音识别正逐步成为信息技术中人机交互的关键技术,语音识别技术与语音合成技术的结合,开启了人机交互方式的新时代,它将彻底解放用户的双手与眼睛,使人们能够甩掉键盘,通过语音命令进行操作。语音技术的应用已经成为一个具有竞争性的新兴高技术产业。当今,语音识别产品在人机交互应用中占到越来越大的比例。不难想象,语音命令操作一定会完美替代现如今智能设备上最为流行的按键以及触摸操作。

如今汽车工业在不断发展,人们的生活品质随着可以驾车出行有着巨大的提升,同样的,智能车载系统也是人们最为看重的。随着车载语音系统及各类语音识别软件的开发,语音识别开始走入人们的生活,凭借其实用性和准确性得到了用户的认可。互联网和移动通讯技术的不断发展加快了移动APP的广泛应用,这意味着语音识别技术逐渐走进了移动APP中。本系统摒弃了传统的、繁杂的手动操作的累赘。系统旨在改变传统的人机交互方式,使人们能够在生活环境中采用更为直接便利的方式与手机对话,获取更为便捷有效的人机交互。

2系统的总体设计

系统的总体功能模块结构如图1所示,其中,语音识别模块和语音合成模块的实现利用的是百度语音技术服务提供的软件开发工具包。GPS定位模块和APP拉起模块利用的是安卓自带的软件开发工具包来实现的。

本次设计所采用的百度语音识别技术是通过百度语音开放平台为广大开发者提供精准、免费、安全、稳定的服务。不同于以往的识别模块,百度的语音识别技术采用的是类似神经网络的深度学习算法,这个算法是比目前主流语音识别系统更为简单更为有效的方法,所以也大幅度的提升了识别效率。

上传整个录音文件。百度语音识别要求安静的环境,真人的正常语速的日常用语,并且不能多个人同时发音。

以下场景讲会导致识别效果变差:

1)吵杂的环境;

2)有背景音乐,包括扬声器在播放百度合成的语音;

3)使用非远场语音时,离麦克风较远。

语音识别SDK的主要输入事件如表1所示

其中,主要利用ASR_START 事件常用的输入事件参数如表2所示。

3 系统的功能设计与实现

3.1软件的总体设计

软件主要包括五个功能,分别为语音识别功能、语音合成功能、位置获取功能、音乐播放功能以及交互功能。语音识别功能实现将外界的语音信息识别转换为机器可以理解的字符序列。语音合成功能实现的是将语音识别的字符序列合成为语音并播放。位置获取功能是通过手机GPS获取当前的位置信息并保存。音乐播放功能是启动新界面并自动开始播放音乐。交互功能通过语音识别的结果,判断外界语音的目的。例如外界语音内容为“打开虾米音乐”,语音识别模块将进行识别,并显示识别结果“打开虾米音乐”,语音合成模块将会合成内容“正在打开虾米音乐”并且播放,同时交互模块会启动手机里面的虾米音乐APP,系统的总体流程图如图1所示。

3.2 语音识别功能实现

语音识别的实现首先新建事件监听类对象EventListener yls,并实现回调接口OnEvent(String name, String params, byte[] data, int offset, int length),OnEvent方法会处理识别过程中的回调事件。OnEvent方法中,name是输出事件名,params是事件返回的JSON格式数据,(data,offset, length)三者一起组成额外数据。如回调的音频数据,从data[offset]开始至data[offset + length] 结束,长度为length。

然后需要新建一个EventManager类对象asr,并初始化EventManager对象asr,即EventManager asr =EventManagerFactory.create(this, "asr");同时为asr设置语音识别监听器asr.registerListener(yls)。

事件管理器以及事件监听器设置完之后,开始识别只需要利用EventManager类中的send 方法发送asr_star参数,即asr.send(SpeechConstant.ASR_START, json, null, 0, 0),其中json参数用来存放需要发送的识别参数。

同样的,停止识别与取消识别也是通过该方法实现,代码如下:

asr.send(SpeechConstant.ASR_STOP,null,null,0,0);  asr.send(SpeechConstant.ASR_CANCE, null, null, 0, 0);

开始事件发送之后,程序开始进行语音识别,然后需要观察回调事件中的输出事件名,当输出事件名为final_result时,代表着识别结束。这时,识别结果就是params中的best_result数据。程序的语音识别流程图如图2所示。

3.3语音合成功能实现

首先新建一个SpeechSynthesizer对象mSpeechSynthesizer并设置当前的Context。同时为mSpeechSynthesizer设置监听器,即     mSpeechSynthesizer.setSpeechSynthesizerListener(listener);

回调成功后,SDK会调设置的SpeechSynthesizerListener 里的回调方法。在语音合成前,还需要进行合成参数的设置以及合成引擎的初始化。

百度语音合成SDK提供了两个合成播放接口即synthesize方法和speak方法,synthesize方法只有合成功能,speak方法是在合成后立即播放,此设计选用的是speak方法。

需要注意的是,合成的每个文本text不能超过1024的GBK字节,即512个汉字或英文字母数字。超过需要按照句号问号等标点切分,调用多次合成接口。在合成播放完成之后,需要释放资源,即将mSpeechSynthesizer设为null。

语音合成模块的流程图如图3所示。

3.4定位功能实现

如果只需要一个简单定位,Android已经提供了两个获取经纬度的方式。GPS获取当前位置和网络定位获取当前位置。相对来说,GPS准确度高但耗电多,网络定位耗电少但准确度低。通过GPS芯片接收卫星的定位信息,定位精度达10米以内,因此本次开发选择的是GPS获取当前位置。

要利用GPS获取位置信息首先需要在AndroidMainfest.xml中添加一个权限,即

该权限是允许程序访问精良位置(如GPS)。然后编写beginLocatioon()方法用来获取位置信息。具体实现流程如图4所示。

3.5交互功能实现

交互功能实现的是判断语音识别内容,然后执行语音命令,比如打开高德地图,本软件就会自动拉起高德地图APP。此次是利用包名,特定Activity名拉起方式。具体代码如下:

Intent it=new Intent();//交互功能的实现

ComponentName cn = new ComponentName("com.autonavi.minimap",

"com.autonavi.map.activity.SplashActivity");

it.setComponent(cn);

startActivity(it);

4总结

本设计使用Android Studio开发环境,利用百度提供的语音识别技术服务员开发一款可以识别语音指令的系统。用户只要通过语音指令就可以控制手机导航、播放音乐、获取当前位置、拉起APP以及控制车辆天窗等。此外,该系统还会根据语音识别的反馈结果合成播放特定语音。在该系统的开发以及调试的过程中,也遇到一些很难解决的问题,如回调数据的解析,百度语音识别SDK的回调函数中的回调数据是JSON格式的,应该怎样去解析然后获取识别结果。在通过资料的查找之后,发现只需要先将数据转换成字符串,然后再通过getString方法就可以获取到识别结果。

参考文献:

[1] 马颜军.科技与企业.基于Android系统的APP开发[J]. 2015(22)

[2] 高辉.浙江大学.智能车载信息系统共享平台及安全机制的研究与实现[D]. 2015

[3] 何明均,刘成,黄上. GPS技术在地质测量中的应用与分析[J]. 科技信息. 2014(01):70.

[4] 張頔.吉林大学.基于Android的车载多媒体信息交互终端的研发[D]. 2015

[5] 新技术新工艺.基于语音控制的人机交互智能系统研究[J].梁汉泉,陈锦彪. 2015(09)

[6] 中国工程机械学报.基于HMM的非特定人汉语语音识别系统[J].闻静. 2014(05)

[7] 李彦奇.吉林大学.基于语音控制的车载娱乐系统的研究[D]. 2015

[8] 欧阳丹.湖北大学.基于ARM的车载语音识别系统的设计[D]. 2014

[9] 丁亦喆,廖楠楠,田津浩.基于Android系统的智能交互APP设计思路研究[J]. 信息记录材料. 2018(05)

[10]肖方. 车载多媒体语音指令控制系统的开发[D].南京航空航天大学,2010.

基金项目:徐州工程学院大学生创新创业训练计划项目(xcx2019254)

猜你喜欢
语音识别
通话中的语音识别技术
面向移动终端的语音签到系统
农业物联网平台手机秘书功能分析与实现
基于Android手机语音和Arduino控制板的机器人控制系统