基于Android的旅行翻译语音情景助手APP设计与实现
2020-05-02
来源:星星旅游
Microcomputer Applications Vo1.32,No.4,2016 文章编号:1007—757X(2016)04—0030—04 基金项目 微型电脑应用2016年第32卷第4期 基于Android的旅行翻译语音情景助手APP设计与实现 程蔚,周兰江,王红斌,黄银阁 摘要:翻译APP在出国旅行人群中有很大的需求。传统翻译APP输入方式单一只有文本输入,存在一定的不便利性,且 缺乏特定情景下的翻译参考例句,缺少一些实用性。基于Android系统结合SpeechKit.rfamework,Android—async—http以及 JSONObject,设计实现一款旅行翻译语音情景助手APP,除文本输入功能外,还具备语音输入功能和情景例句功能,用以 解决传统翻译APP存在的问题,带来良好的便利性和实用性。测试表明APP可以流畅运行,具备良好的便利性和实用性。 关键词:语音识别;Android;翻译;情景例句 中图分类号:TP391 文献标志码:A Design and Implementation of Travel Translator APP with Speech Scene Based on Android Cheng w_ei,Zhou Lanjiang,Wang Hongbin,Huang Yinge (School of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500,China) Abstract:There iS a great need for the translation APP among the crowd travelling abroad.The input method of traditional transla tion APP is single,only for text input,whieh is inconvenient。and lack of reference example sentence in specific situateion and prac— ticality.Combined SpeechKit.rfamework,Android—async-http and JSONObject based on Android system,it designs and implements a travel transiator APP with speech scene.In addition to the text input function.it also has the function of voice input and situation sentence to solve the problems of radittional translation APP and brings good convenience and practicality.The test shows that APP can run smoothly with good convenience and practiceality ̄ Key words:Speech Recognition;Android;Translation;Situation Sentence 0引言 越来越多的国民开始选择出国游,对外交流日益加强, 传统翻译APP[01I2J【3】只提供文本输入方式,当用户不便进行 文字输入时,单一的输入方式就显得不够便利;当用户在国 外用餐、问路等特定情景下不知道如何表达时,传统翻译 APP没有为用户提供一些翻译参考。近年来语音识别技术发 展迅速I 4】I5】,将语音作为一种输入方式无疑更加便利,同时 为用户提供特定情景下的翻译例句作为参考会使用户的对 外交流更加顺畅容易。 考,更具实用性;利用Android async.http开源项目构建网 络通信组件与服务器通信获取翻译结果,使APP具备良好 的通信性能。 1.1客户端功能设计 (1)目标语言切换功能。该功能主要是选择切换不同 目标语言,设置中文为源语言。可以满足不同语言国家f的 交流需求。由于目前出国游主要集中在日本、韩国、泰国以 及英语国家【 ,所以本APP设置4种目标语言分别是日语、 韩语、泰语及英语。 (2)语音输入功能。该功能是录入用户的语音信息, SpeechKit.framework语音识别技术准确迅速,所以利用 SpeechKit.rfamework实现语音识别功能,将录音转换为文字, ndrAoid平台具有开源、免费等特点,应用层采用JAvA 语言开发,使用广泛【6]。本APP将结合Android系统, SpeechKit.rfamework,Android async.htto以及JSONObiect 设计实现一款旅行翻译语音情景助手App,着重解决单一输 入方式和缺少情景翻译参考例句的问题。 将其翻译成目标语言。 (3)文本输入功能。提供文字输入功能,将输入文本 翻译成目标语言。 1系统设计 借助Android平台通过SpeechKit.rfamework实现语音识 (4)情景例句功能。提供给用户一系列情景下的常用 语翻译,比如问候、交通、购物、银行、餐饮等。凶为JSON 的数据格式是纯文本的,具有良好的跨平台性,易于解析和 别,完成语音转换文字,进而实现语音输入功能,这种输入 方式可以带来更好的便利性;利用JSONObject解析JSON 数据获取情景例句,实现情景例句功能,为用户提供翻译参 生成 Ⅱ ,所以情景例句以JSON文件形式存放,利用 JSONObject类解析得到情景例句并展示,为用户提供相关 基金项目:云南省教育厅科学研究基金重点项目(2014z021) 作者简介:程蔚(1989 ),男,昆明理工大学,信息工程与自动化学院,副教授,硕士研究生,研究方向:自然语言处理与移动嵌入式系统研究, 昆明,650500 周兰江(1989一),男,昆明理工大学,信息工程与自动化学院,副教授,硕士生导师,ccf会员,研究方向:自然语言处理与移动嵌入式 系统研究,昆明,650500 王红斌(1983.),男,昆明理工大学,信息工程与自动化学院,讲师,博士,研究方向:智能信息系统,分布,并行计算机系统,昆明, 650500 黄银阁(1989.),昆明理工大学,信息工程与自动化学院,女,硕士研究生,研究方向:自然语言处理与移动嵌入式系统研究,昆明, 650500 ·30· Microcomputer Applications Vo1.32,No.4,2016 }; 基金项目 微型电脑应用2016年第32卷第4期 r.run(); } @Override public void onRecordingDone(Recognizer recognizer){ listeningDialog.setText(”Processing..."); listeningDialog.setLevel(…’); listeningDialog.setRecording(false); listeningDialog.setStoppable(false); } @Override public void onError(Recognizer recognizer,SpeechError error){ if(recognizer!=currentRecognizer) return; if(1isteningDialog.isShowing0) dismissDialog(LISTENING_DIALOG); currentRecognizer=null; Kit.getSessionld0+”n; } }; } 2.2.2文本输入翻译模块的设计与实现 用户输入待翻译文本,点击翻译将待翻译文本与2.1设 置的目标语言一起封装发送到服务器端,接收服务器端返回 的翻译结果解析并显示给用户。 文本翻译查询请求功能部分的代码其实跟语音翻译查 询请求功能部分的代码一样,都是通过调用2.2.1中所列出 的getSampleAndTranslation(String contentin)方法,将输入文 本contentin传入进来,得到翻译后的结果显示到界面中。 2_3情景例句模块的设计与实现 情景例句模块设计了多个大类情景,每个大类又包含多 个小类情景,以满足尽可能多的情景需求同时提供语音朗读 例句功能。 listeningDialog.setRecording(false); //Display the error+suggestion in the edit box String detail=error.getErrorDetail0; String suggestion=error.getSuggestion0; if(suggestion==nul1) suggestion …’: 情景例句以JSON文件形式放在工程res/raw文件夹里 与代码一同打包成apk,每种目标语对应一个JSON文件, 存放该目标语言下的所有情景例句。当用户选择不同目标语 言点击某个情景类别时程序就会从l'aw文件夹中读取相应 目标语言的JSON文件并通过JSON解析得到例句再显示给 用户。例如:用户选择了中英翻译,点击某个大类情景,应 用就会调用openRawResource(R.raw.enzh)方法读取英文 JSON文件获得所有的中英情景例句,根据用户点击的大类 名称调用getXiaoleiNames(String daleiname)方法获取大类对 应下的所有小类名称。用户再选择其中一个小类会调用 getLijus(String xiaoleiname,String daleiname)方法可以获得 选中的大类与小类下的所有例句。其中解析JSON数据用到 的是JSONObeject类来解析。 实现情景例句展示功能关键代码: public Stdng readTextFile0{ String res= : if(m_vp.getCurrentltem0==0 mfragment1.getListUpdata(2.demil+” ”+suggestion); //for debugging purpose:printing out the speechkit ses— sionid android.util.Log.d(”Nuance SampleVoiceApp”, ”Recognizer.Listener.onError:session id[”+speech— Kit.getSessionld()+”l”); } @Override public void onResults(Recognizer recognizer,Recognition results){ if(1isteningDialog.isShowing0) dismissDialog(LISTENINQDIALOG); currentRecognizer null; try{ InputStream in null; switch(1anguage){ case O: in=con.openRawResource(R.raw.enzh); break; case 1: listeningDialog.setRecording(false); int count results.getResultCount0; //识别音频的结果 Recognition.Result[】rs=new Recognition.Result[count]; for(inti=0;i<count;i++){ rs[i】=results.getResult(i); } EditText t=(EditText)findViewByld(R.id.text_sentence); if(t I_nul1) //将结果放到文本框中 t.setText(rs[0].getText0); mfragment1.getListUpdata(1,rs[0].getText0); mvp.setCurrentltem(0); _in=con.openRawResource(R.raw.jpzh); break; case 2: in=con.openRawResource(R.raw.krzh); break; case 3: in:con.openRawResource(R.raw.thzh); break; //for debugging purpose:printing out the speechkit ses— sionid android.util.Log.d(”Nuance SampleVoiceApp”, ”Recognizer.Listener.onResults:session id【’.+speech— } int length=in.available(); byte[】buffer=new byte[1ength]; in.read(buffer); in.close(); res=EncodingUtils.getString(buffer,”UTF-8”); catch(Exception e){ e.printStackTrace0; ·32- Microcomputer Applications Vo1.32,No.4,2016 基金项目 微型电脑应用2016年第32卷第4期 从表l可以看出,相比其他几种算法,本文算法能获得 级别的遮挡具有较好的鲁棒性。 与这些算法相当甚至更好的识别率。而在识别效率上,本文 实验表明,成功检测遮挡区域对于正确识别至关重要, 算法的识别速率约为文献[4】算法的15倍。在围巾集这种几 在检测遮挡区域过程中像素集合F的选取十分重要,这将 乎遮挡住一半人脸的数据集上,本文算法仅对2%的图像误 是今后研究的重点。 分类,表明了本文算法对围巾遮挡图像具有较好的鲁棒性。 3.3.1 LFW人脸厍 参考文献 在LFW人脸数据库上测试本文算法。实验选择包含55 f11 Goldberg L J.Face Recognition and the Social Individu. 个对象的一个图像集,对于每个对象,分别选择A叫, 0幅 al[J].Biosemiotics,2013,6(3):573.583. 未遮挡的图像用于训练,有不同遮挡级别的ll0幅图像用于 【2】 薛雨丽,毛峡,吕善伟.遮挡条件下的鲁棒表情识别方 测试,训练集与测试集不相交。从每幅图像的背景中裁剪出 法[J].北京航空航天大学学报,2010,36(4):429-433. 人脸区域,调整大小为80x65。识别结果如表2所示: [3】 薛冰,郭晓松,蒲鹏程.人脸识别技术综述[J].四川兵 工学报,2010,31(7):l19-121. 表2LFW上的识别率(%) [4】 Chiang C C,Chen Z w Recognizing partially—occluded faces by recovering normalized facial appearance『J1.In— temational Journal of Innovative Computing Information &Control,2011,7(11):6219-6234. 【5] 熊鹏飞,刘昌平,黄磊.基于三维建模的眼镜遮挡下人 脸识别明.模式识别与人工智能,2011,24(5):692—699. [6] 程正东.基于子空间的人脸识别【M]//基于子空间的 人脸识别.清华大学出版社,2009. 嘲 从表2可以看出,由于自然遮挡的挑战,所有算法的整 『71 Liu G,Yan Wl柚g H.Robust Modular Linear Regres. 体识别率相对较低,但相比其他几种算法,本文算法总体上 sion Based Classiifcation for Face Recognition with Oc. 仍能获得最好的识别性能,由此可见其可靠性及优越性。 clusion[C]//IEEE:International Conference on Image nad Graphics.IEEE:NY9 USA.2013:509—514. 4总结 【8]Wrigat J,YangA GaneshA,et a1.RobustFaceRecog— nition via Sparse Representation rJ1.IEEE Transactions 为了提高人脸识别算法对不同级别遮挡的鲁棒性,基于 on Pattern Analysis&Machine Intelligence,2009,3 1(2): 压缩感知林雨技术,提出了一种新颖的人脸识别算法。检测 2l0.227. 遮挡区域,在识别处理阶段提取这些遮挡区域,利用这些区 [9】 陆华.基于局部二值模式的人脸识别和表情识别研究 [D].山东大学,2014. 域所包含的信息进行识别。实验结果显示,相比其他几种遮 http://vis—W'WW.CS.umass.edu/lfw/index.html 挡人脸识别算法,本文算法取得了更高的识别率,且对不同 (收稿El期:2015.12.10) (上接第33页) l 【2】 浩明.基于Android平台的手机翻译系统 .西北成人教 育学院学报,2014,(5):107—109. 4.总结 杨众.基于Android平台的新蒙文-汉文在线翻译[D]:硕 士学位论文.内蒙古:内蒙古大学计算杌学院,2014. 本软件是基于Android系统开发,结合SpeechKit.fram 何湘智.语音识别的研究与发展[J]_计算机与现代 ework实现语音识别,Android.async.hnp实现网络通信和 化,2004,(03):3-6. JSONObject实现JSON解析,设计实现了一款旅行翻译语 李书贞,施玉霞基于语音指令的远程控制机器人[J].微 音情景APP,经过检测实验使用流畅,响应迅速,具备便利 型电脑应用,2008,24(11):1.3. 和实用性。提供了中英、中日、中韩、中泰4种语言翻译, 余建伟,赵凯译,Reto Meier.nAdroid 4高级编程【M】:第3 基本满足出国人群的旅游翻译语种需求。除基本的文本输入 版.北京,清华大学出版社,2013,1—3. 功能外还增加了语音输入功能,提供了更加方便的输入方式。 王晓禹,石丽.基于JSON实现Android智能终端与 情景例句功能提供了银行、问候、交通、购物等情景下的翻 Web服务器“面向对象”的信息交换[J].数字技术与 译例句,为用户提供了相关翻译参考,增加了APP的实用 应用,2012,(4):224-225. 性。同时,考虑到出国游上网费用较大,下一步工作将给 胡晓锋.JSON与XML在网络数据传输中的应用分析[J] APP增加离线翻译功能,即使不联网也可以获得较准确的翻 电脑编程技巧与维护,2010,10:77—78. 译结果。 刘平.Android手机访问服务器的一种数据交互方法[J]. 电子设计工程,2010,l8(9):96-98. 参考文献 马昭征.基于HTTP的安卓与服务器交互方法的实现[I.】. 无线互联科技,2015,03(3):92-96. [1】 盛玉林.nAdroid平台上基于云服务的随身翻译工具的 设计与实现[D】:硕士学位论文.上海:复旦大学软件学院, (收稿日期:2015.11.25) 2013. ·39· 嘲