基于Android的移动终端语音助手系统设计与实现
扫描二维码
随时随地手机看文章
引 言
近年来,语音识别技术获得了人们的广泛重视并取得了巨大进展。使用语音识别技术方便人与机器的交流,能够改变人与计算机的交互方式。若不能熟练地使用键盘、鼠标与计算机或其他智能设备进行输入,人机交流的效率较低,会影响到智能设备的进一步普及。使用语音识别技术,人们只需说几句简单的指令,就可操作程序甚至操作系统 [1]。
智能手机是目前使用最为广泛的通信设备,通过在手机上嵌入语音识别系统,可实现按人们的语音指令拨打电话、接通电话、语音处理电子邮件等功能 [2-3]。语音识别技术解放了人们的双手,使他们能够更好地操作、应用计算机处理其他事务。
1 系统设计
1.1 系统功能简介
语音助手系统是面向公司职员、学校医院等企事业单位职工、学生等持有移动手机人员开发的一款应用软件,特别是针对工作忙碌的人员,该应用系统发挥的作用更大。当收到开会或其他通知后,对智能语音助手讲一遍通知内容,语音助手便自动将语音识别为文字,并提取文字内容中的时间、地点、事件等信息,最后在手机系统自带的日历中添加日程安排,默认十分钟前提醒。当以电话的形式收到开会或其他安排的通知后,可第一时间对智能语音助手讲一遍通知内容,以免事后忘记。当手动拨号不方便时,直接语音说出联系人姓名,系统可直接拨通联系人电话,也可通过语音给联系人发送短信。本文系统具体功能如下:
(1) 语音识别功能。用户对手机讲话,该功能将语音识别为文字,进行语义理解,通过关键词提取等技术将内容形成日程安排,自动插入到手机系统自带的日历中,而且日历中日程的日期时间与语音中的日期时间相对应,日程默认提前十分钟提醒。
(2) 语音拨号功能。用户对手机讲“打电话给某某”,系统自动从联系人中查找对应的电话号码,启动拨号界面,实现拨号。如果该联系人有多个电话号码,则默认提取第一个。
(3) 语音发送短信功能。用户对手机讲出“发送短信给某某”,系统自动从联系人中提取电话号码,默认提取第一个号码, 系统提示“请说出短信内容”,用户讲“短信内容是……”,系统自动将语音内容转化为文字并形成短信发送出去。
(4) 文字识别功能。当用户收到短信通知后,可将短信内容粘贴到系统文字输入框中,点击“发送”按钮,系统对文字内容进行语义理解,通过关键词提取等技术将内容形成日程安排自动插入到手机系统自带的日历中,且日历中日程的日期时间与文字中的日期时间相对应,日程默认提前十分钟提醒。
(5) 帮助文档。用户点击“帮助”按钮,对话框中输出帮助文档。
1.2 总体设计
本文系统采用Android 框架,Android 系统的最大优势在于其平台的开放性和服务的免费性 [4]。虽然自 4.0 Ice Cream Sandwich 系统应用以来,出于安全考虑,Google 关闭了部分功能的开放源码,但 Android 仍然具有非常大的操作空间, 仍然是广大开发者的首选 [5-6]。目前,市面上已有较多语音助手相关软件,在语音识别和智能搜索方面做得相当完善,但是它们却在手机界面上仍然保留有大量操作,语音指令和手动选择的组合无法令用户满意。本文语音助手通过语音识别技术配合手机日历和记事本的提醒功能可及时自动存储相关信息并按时提醒,用户无需设置手机存储及工作提醒。
本文系统总体设计思路 :首先搭建语音识别框架 ;然后构建语义理解、关键词提取模型 ;最后根据语音内容形成具体事件类型,包括日程添加事件、语音拨号事件,语音发送短信事件。系统设计流程如图 1 所示。
1.3 详细设计
语 音 识 别 技 术 由 VoiceRecognitionService 包 中的 SpeechRecognizer. reateSpeechRecognizer 识 别 器实 现, 识 别 结 果 返 回给 nbest= esults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)。 本文采用在线识别模式,识别准确率较高。
语义理解和关键词提取由正则表达式组实现,对“星期几”“明天”“下周几”等表示日期的词汇进行理解转化,对“上下午”“几点半”等表示时间的词汇进行理解转化,最后形成标准的日程时间序列。
插入日程由 insertEvent 函数实现, 调用系统自带的Calendar 类。
打电话功能由nameNumberCall 函数实现,通过 Cursor 查询联系人姓名,获取联系人电话号码,形成 Intent,调用startActivity 呼叫联系人。
发送短信功能由 sendSMS 函数实现, 通过 Cursor 查询联系人姓名, 获取联系人电话号码, 形成 Intent, 调用startActivity 给联系人发送短信。
2 系统测试与特点
2.1 系统测试
启动系统,进入系统主界面,如图 2 所示。本文系统的启动时间少于1 s。
系统启动后,界面下方有 3 个按钮。第一个按钮为文字 / 语音切换按钮,系统默认为文字输入模式,点一下该按钮, 系统切换为语音识别模式。第二个按钮为“发送”,可将短信收到的通知直接粘贴到“文字输入”框内,如图 3 所示。系统自动根据文字内容进行语义理解和关键词提取,将通知的主要内容形成日程安排自动插入到日历中,如图 4 所示。对话框采用人机对话形式,系统提示在左侧,用户输入在右侧,消息背景为流行的气泡效果。
应用情景 1 :当短信或微信收到开会通知后,若此时用户在不宜大声说话的场所,可将通知内容复制到“文字输入框”中,点击“文字识别”按钮,系统会自动分析文字内容并形成日程自动添加到日历中。
点击文字 / 语音切换按钮,出现“语音识别”按钮。用户接到电话通知或口头通知后,以免事后忘记,需第一时间点击“语音识别”按钮,将通知内容或安排对准手机叙述一遍,系统自动对叙述内容进行语音识别,将语音识别内容输出到屏幕上,如图 5 所示。同时通过语义理解自动形成事件,若为日程事件,系统则会自动形成日程安排并插入到日历中,如图6 所示。
应用情景 2 :当收到开会通知后,若用户正在开车(等红绿灯),可以点击“语音识别”按钮将通知内容对手机复述一遍, 系统会将语音识别为文字,自动分析文字内容并形成日程自动添加到日历中,避免事后忘记。
应用情景 3 :当早晨出门上班时,不会用智能手机的父母叮嘱下班时帮忙买一些物品(食物、药品等),而此时时间紧迫,来不及将物品名称手动输入到备忘录中,用户可打开智能语音助手,点击“语音识别”按钮,将父母叮嘱的物品名称对手机复述一遍(如下午 5 点购买大米 1 袋,挂面 2 卷,食盐 2袋,醋 1瓶,X1药品 2盒,X2药品 1瓶,X3药品 1瓶, 其中 X1只买某某厂家的等),系统将语音识别为文字,自动分析文字内容并形成日程自动添加到日历中,避免到了单位或下班时忘记要买的物品。
应用情景 4 :当不方便手动查找联系人而又急需给联系人打电话时,点击“语音识别”按钮,讲出“打电话给某某”,系统直接呼叫联系人,如图 7、图 8 所示。
应用情景 5 :当用户不方便打字而又急于给联系人发送短信时,点击“语音识别”按钮,讲出“发送短信给某某”,然后说出短信内容,系统自动将语音内容转为文字并形成短信发送给联系人,如图 9、图 10 所示。
点击“帮助”按钮后,主界面输出帮助文档,包含功能介绍、应用例子等。
帮助的四大功能为 :通过语音添加日程 ;通过文字添加日程 ;通过语音直接呼叫联系人 ;通过语音直接发送短信。
通过语音或文字添加日程举例 :4 月 25 日下午 3 点在议室开会 ;下周三上午 9 点在 B405 开例会 ;后天晚上 6 点半在×× 饭店聚餐。
通过语音拨打电话举例 :打电话给张三。
通过语音发送短信举例:先说“发短信给张三”;然后说“短信内容是 :我在开车,稍后给您回电。”
2.2 系统特点
本文系统采用云语音识别技术,需打开 WiFi 或数据流量, 语音识别精度高。可一键完成日程添加,一键实现语音拨号, 快速实现语音发送文字短信。本文系统无需读取联系人信息权限,但需短信读取权限、打电话权限、日历读写权限。与其他语音助手相比,本文系统的优点是无需在用户手机新建数
据库,用户的所有日程都添加在用户手机自带的日历中,当用户卸载系统时,无需担心已添加的日程会丢失。
编程语言为 Android,Java。 系统运行环境为支持
Android 系统的手机或平板电脑。
3 结 语
目前语音识别技术是科学研究的热点,语音助手也是当前移动客户端开发的热门方向。本文提出了基于智能终端平台的语音识别手机助手应用系统的总体结构与设计,以及实现的主要技术,并将其应用到手机日常应用中。测试结果表明, 本文系统起到了用户与日历间的桥梁作用,尤其适合上班族使用,当手头工作繁多时,使用该系统一键添加日程安排,可避免事后忘记而造成工作不便。