文档开发者中心
我的

【HiAI】基于华为HiAI语音识别的语音测验工具的实现

1,简介    
本文实现了一个简单的语音测验App,程序中提前录入了自己编写的例句,用户点击语音测试按钮,调用语音识别功能进行录音,将识别的结果和例句进行比较,测验语音识别结果和例句是否一致,并将识别结果、错字单元、识别耗时显示在应用界面上。


应用中的语音识别功能主要调用了华为HiAI提供的语音识别能力,接入过程方便快捷。


2 ,HiAI语音接入
2.1  语音识别接入流程

华为语音识别的接入过程具体可以参考华为开发者联盟官网提供的在线文档,参考链接,这里主要将接入过程用流程图介绍一下。



图1 HiAI 语音识别接入流程图



  • 在联盟官网下载HiAISDK包,即huawei-hiai-asr.aar,下载参考链接
    将下载到的huawei-hiai-asr.aar导入到AndroidStudio工程lib目录下

  • 配置app目录下的build.gradle文件,具体配置内容可参考官网



注意:要在AndroidManifest中添加语音相关的系统权限,才可以正常使用语音


<uses-permissionandroid:name='android.permission.RECORD_AUDIO' />
<uses-permissionandroid:name='android.permission.MODIFY_AUDIO_SETTINGS'/>


  • 初始化引擎
    SDK提供了AsrRecognizer语音识别类 来进行引擎相关操作,初始化引擎可以调用AsrRecognizer类的init方法
  • 注册语音识别监听
    语音监听SDK提供了AsrListener接口,需要自己创建一个对象实现该接口,并将监听对象作为参数传入init方法中
  • 启动语音识别监听,并开始录音
    调用AsrRecognizer类的startListening方法启动识别监听,启动后可以开始录音
  • 监听回调方法中获取识别结果
    AsrListener接口中提供了一系列的回调方法可以实时获取到语音检测到的信息,我们可以在这里边实现自己的逻辑处理结果
  • 释放引擎资源
    调用AsrRecognizer类的destroy方法进行引擎资源释放



2.2  注意事项

1)不要忘记添加语音相关权限


2)识别结束后引擎资源及时释放掉


另外,华为HiAI语音识别支持的设备有一定要求,需要设备EMUI8.1以上,处理器要求Hisilicon Kirin970以上芯片。


3,语音测验App的实现
3.1语音测验App功能
3.1.1别录音结果

语音识别的主要逻辑是在AsrActivity中处理,在onCreate方法中加载验证例句数据源,初始化华为语音引擎,初始化引擎之前先做设备判断,判断设备是否支持华为引擎,如果支持再进行初始化操作,否则给出用户提示不可使用





         当用户点击语音测试按钮的时候,调用启动监听方法,开始录音。启动监听方法需要传入一个intent对象,可携带参数对语音识别的模式功能进行设置,主要有设置前端静音检测时间、设置后端静音检测时间、设置超时时间等。也可以不设置,使用默认参数。

       语音识别结果可以在回调方法onResults()方法中解析到,从官网api注释可知该方法在识别结束时进行回调,即可得到整句的识别结果。


3.1.2 识别耗时

这里的识别耗时,是将引擎检测到用户说话结束时作为计算的起始时间,即在onEndOfSpeech()方法回调的时候开始计算起始时间



结束时间是指回调到用户识别结果的时刻,即onResults()方法调用的时刻,识别耗时的计算是将结束时间与开始时间相减取得。


3.1.3 准确率

准确率的计算是将识别结果与原始例句进行比较,完全相同给出一致的结果,否则判断为识别不一致。


3.1.4 错字单元

错字单元的是将识别结果与原始例句进行比较,将识别的错字列出,如果检测到识别的字数不足,也会进行提示。



3.2 开发环境和App效果图

本次开发使用Android Studio进行开发,版本3.1.3


设备信息:HUAWEI P20;EMUI: 9.0.0;Android版本:9



效果图如下:



4,总结与心得
本次的开发过程中,通过使用华为HiAI语音识别SDK,学会并掌握了华为语音的接入使用,主要是学习了实时语音识别,华为语音拥有领先的语音识别技术,识别响应时间低等优势,对于需要使用语音识别功能的开发者,提供了极大的便


点赞
1
收藏
1
回复
6
分享
举报
浏览1674 编辑于2019-11-03 17:09未知归属地
全部评论
最多点赞
最新发布
最早发布

试了一遍,很不错

6楼回复于2019-11-04 05:46 未知归属地

楼主这个帖子很好,分享的很及时

5楼回复于2019-11-04 03:38 未知归属地

试了下,真的很方便

4楼回复于2019-11-04 03:37 未知归属地

忘记添加语音权限了,重来!

3楼回复于2019-11-04 02:43 未知归属地

感谢分享

2楼回复于2019-11-04 02:34 未知归属地

根据楼主帖子的步骤试了下,很优秀

1楼回复于2019-11-04 02:34 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。