APP下载

基于语音交互的家政预约APP设计与实现

2018-10-31徐忠莲

智能计算机与应用 2018年6期
关键词:家政安卓语音

徐忠莲

(哈尔滨工业大学 计算机科学与技术学院, 哈尔滨 150001)

引言

随着经济的发展,人们生活水平的显著提高,越来越多的人愿意聘请家政来替代工作,从而把人们从烦重的家务中解脱出来。与文字的方式相比,语音交互对话的方式更加符合人们的交流沟通习惯,因此人机对话交互系统近年来在汽车导航、机票预订等各方面得到了广泛的应用。安卓系统的市场份额为全球第一,拥有广大的用户基础。因此本文通过调用科大讯飞的语音合成、语音识别功能,基于安卓系统实现了以语音为交互方式的一款家政预约移动应用。

本文将家政所需的所有信息组织成一个树状结构,基于这个树状结构来实现与用户的多轮对话交互,存储和管理与用户交互的所有历史信息,并基于当前已有信息做出决策,保持与用户的持续交流。当用户给出预约家政的全部必要信息后,基于IHS算法,向用户询问家政的某些属性信息,通过用户的回答,最后推荐用户所需要的家政服务人员,结束本次家政预约服务。

本文客户端基于安卓系统,服务端基于Spring Boot开发,通过调用科大讯飞API、IHS算法实现以语音为交互方式的家政预约服务,使用mySql存取数据。

1 相关理论与技术

1.1 科大讯飞语音API

科大讯飞的智能语音核心技术代表着世界领先水平,自90年代中期以来,在多次的国内外语音合成评测中,各项关键指标均名列前茅。在2016年国际语音识别大赛中(CHiME)科大讯飞取得全部指标第一。语音识别准确率超过98%,语音输入速度达180字/分,识别结果响应时间低于200ms。并且支持多种方言,用户群广泛。还可以基于用户语音特征建立个性化词条语言模型,通过调整识别参数,提高用户的个性化词条识别准确率。基于深度全序列卷积神经网络的语音转写提供文化格式智能转换功能,能够将电话号码、车牌、日期、时间以及量词规整,如“五点三十”引擎将规整为“5:30”。语音合成能够将文本转为流畅、清晰、自然的语音数据,其合成音频的自然度和清晰度已经超过普通人的朗读水平。可以动态调整语音、语速、音高等参数定制用户自己专属的语音。

1.2 Android

Android是由Google开发的移动操作系统,基于Linux内核和一些开源软件的修改版本。主要设计用于触摸屏移动设备,如智能手机和平板电脑。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。截至2017年5月,Android拥有超过20亿的月活跃用户,是任何操作系统的最大安装基数。

Android的默认用户界面主要基于直接操作,使用与真实世界操作松散对应的触摸输入,例如滑动、轻敲、捏、反捏以操纵屏幕上的对象以及虚拟键盘。Android的系统架构和其操作系统一样,采用了分层的架构。Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层,如图1所示。安卓一共有四大组件,分别是Activity活动,通常就是1个单独的窗口;Service服务,用于在后台完成用户指定的操作;Content Provider 内容提供器,使1个应用程序的指定数据集提供给其余应用程序,实现数据共享;Broadcast Receiver 广播接收器,对外部事件进行过滤,只对感兴趣的事件进行接收并做出响应。Android具有很强的开放性、兼容性、可移植性,便于开发,并且无缝结合Google应用。

1.3 Spring Boot

Spring Boot是由Pivotal团队提供的,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,可以快速高效地创建一个独立的、生产级的、可直接运行的Spring应用。其拥有以下特征:

(1)可以创建独立的Spring应用,Spring Boot可以通过jar包的形式来运行,非常方便。

(2)内嵌Servlet容器,直接嵌入Tomcat、Jetty或者Undertow,这样用户不需要用war包的形式部署项目。

(3)提供自己的‘starter’POMs来简化Maven配置,非常方便地进行包管理, 很大程度上减少了jar hell或者dependency hell。

(4)尽可能自动配置Spring。

(5)提供生产就绪功能,如指标、运行状况检查和外部化配置,基于http、ssh、telnet对运行时的项目进行监控。

(6)绝对不会生成代码,并且不需要XML配置,通过条件注解的方式来实现。

尤其Spring Boot集成了大量常用的第三方库配置(例如Jackson、 JDBC、 Mongo、 Redis等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

2 关键架构总体设计

2.1 概述

本文设计并实现了基于语音交互的家政预约安卓移动应用,系统总体架构如图2所示。本次设计是在Windows平台下,使用Spring Boot作为系统的后台整体基础架构,包含了基于树结构的对话管理模块、基于IHS算法的服务个体选择模块、用户基本信息管理模块、用户登录模块、语音交互模块,前端使用安卓界面与用户进行交互,客户端与服务器端通信采用Volley网络框架。数据库则采用的是MySQL。

2.2 系统总体功能设计

依据对家政预约服务的需求分析,系统总体功能设计模块结构如图3所示。

图3 系统总体功能模块图

各个模块的功能设计阐述如下:

(1)用户登录模块。已创建账户的合法用户通过用户账号和密码登录系统以使用预约家政功能,可随时修改账户密码。

(2)语音交互模块。语音听写的功能是将用户输入的语音转成文字,再传输给自然语言理解。语音合成的功能是将后台服务端返回安卓终端的文字形式结果转为语音形式,当用户点击响应对话框时,进行语音播报。

(3)个人信息管理模块。个人基本信息管理主要是服务地址的管理,用户可以对服务地址进行添加、修改和删除,并选择一个地址作为默认服务地址,每次用户下单时除非用户主动修改,否则默认使用此地址作为服务地址。

(4)对话管理模块。通过将预约家政需要的全部信息分为必须信息和非必须信息,并将其组织成一个树状结构,通过用户输入对树进行填充,并且验证树中节点的合法性,根据当前树的结构状态推理应答焦点,继续与用户的交互。

(5)服务个体选择模块。当用户已经输入所有的必须信息时,通过IHS算法,询问用户问题,根据用户回答,推荐给用户最合适的家政服务人员。

3 系统详细设计

3.1 基于MySQL的数据中心

MySQL是一种关系型数据库管理系统,将数据保存在不同的表中。本系统主要包括用户登录表、用户地址管理表、家政服务人员表、服务提供商信息表。各表之间是一对一和一对多关系。一个用户对应一个登录信息、多个用户地址。一个家政服务人员对应一个服务提供商,一个服务提供商对应多个家政服务人员。

3.2 基于树结构的对话管理

本文基于树结构进行对话管理,与用户进行多轮交互。将家政作为树根,家政属性作为子节点。其中,子节点又根据需求分为必须子节点和非必须子节点。例如,预约家政必须提供上门时间,这个就是必须子节点。对于家政的从业经验用户可以选择有无要求,因此可以分为非必须子节点。对于树中的每个节点都要验证其合法性,首先验证必须子节点的合法性,当所有必须子节点都合法时,再验证非必须子节点的合法性,对于不合法的节点作为应答焦点,让用户填充或修改其属性值。当树中的必须子节点被填充完整,且树中当前所有节点都合法时,则整棵树合法,即接下来调用IHS算法为用户推荐服务个体。

3.3 服务器与客户端通信方式

本文用到的服务器与客户端之间通信的方式主要是客户端主动发送请求,服务器端接收到请求后,对请求信息进行处理,并反馈结果。本系统采用的Volley网络框架,可以自动调度网络请求、支持多个并发的网络连接、支持请求优先级,通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致,并且其健壮性强,便于正确地更新UI和获取数据。适合其数据量不大,但通信频繁的网络操作。Volley的应用流程为,首先创建RequestQueue对象,然后根据自己的需求组建Url,创建StringRequest参数,将StringRequest添加到RequestQueue对象中,最后设置回调接口,对数据进行操作。

3.4 基于IFLYTEK's API的语音交互

由于IFLYTEK's API能够处理的语音文件类型只有pcm和wav格式,而安卓AudioRecord的录音文件类型只有amr格式,因此在进行语音识别之前需要将amr文件转成wav格式。调用IFLYTEK's API实现语音合成和语音听写,首先创建一个SpeechRecognizer对象,然后设置领域、语言、返回格式等各项参数,在用户输入完之后调用SpeechRecognizer.startListening ()方法,开始语音识别,在用户点击录音条目后,通过SpeechSynthesizer.startSpeaking()方法开始语音合成。

3.5 系统功能设计实现

系统实现基于语音交互的预约家政服务各个功能,其中,登录界面如图4所示;语言交互界面如图5所示;地址管理界面如图6所示。

图6 地址管理界面

4 结束语

本系统是基于语音交互的家政预约移动应用,旨在将科大讯飞的语音API和安卓系统结合起来,用更加自然亲近的方式与用户交互,提供家政预约功能。交互过程中使用基于树结构的对话管理方式,对用户输入做出响应。基于IHS算法为用户推荐家政个人服务人员,在最少轮次的询问中,得到符合用户需求的服务人员目标。本系统还选取了30名实验者,对该APP进行体验测试,结果表明本软件拥有很多的用户体检,具有良好的市场前景。

猜你喜欢

家政安卓语音
iPhone不卡的秘密曝光:安卓也能享受
农嫂进城——家政行业状态观察
2019年国家级家政服务政策盘点
2019年省级家政服务政策盘点
家政未来 个性定制
文物表情包
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
安卓系统或成智能汽车标配