HarmonyOS 学习开发之路 - 人工智能功能开发(语音识别)
语音识别概述
语音识别功能提供面向移动终端的语音识别能力。它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层API。该技术可以将语音文件、实时语音数据流转换为汉字序列,准确率达到90%以上(本地识别95%)。
基本概念
语音识别技术,也称为自动语音识别(Automatic Speech Recognition, ASR),可以基于机器识别和理解,将语音信号转变为文本或命令。
约束与限制
支持的输入文件格式有wav或pcm。
当前仅支持对普通话的识别。
输入时长不能超过20s。
采样要求:采样率16000Hz,单声道。
引擎的使用必须初始化和释放处理,且调用必须在UI的主线程中进行。
多线程调用:HUAWEI HiAI Engine不支持同一应用使用多线程调用同一接口,这样会使某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。故多线程执行同一功能达不到并行的效果。但是引擎支持使用多线程调用不同接口,如开启两个线程同时使用文档矫正和ASR接口。
语音识别开发
场景介绍
支持开发具有语音识别需求的第三方应用,如语音输入法、语音搜索、实时字幕、游戏娱乐、社交聊天、人机交互(如驾驶模式)等场景。
语音输入法
将需要输入的文字,直接用语音的方式输入。即用户说话的时候语音识别引擎返回识别的汉字序列,让输入更加便捷,解放双手。
语音搜索
搜索内容直接以语音的方式输入,可以用于客服系统的关键词搜索,同时转录成文本,让搜索更加高效。
实时字幕
将直播、视频、现场演讲等音频进行实时的字幕转换、降低理解成本,提升用户体验。
驾驶模式
在开车过程中,手握方向盘,无法分神去操作手机来选择音乐、拨打电话。使用语音识别,只要向手机说出命令,例如:听音乐的时候说上一首/下一首进行切歌或调节音量等,即可被手机识别并执行相应操作。
接口说明
主要接口
表1 AsrListener接口说明
接口返回值说明
AsrListener中的onResults(PacMap results)方法返回结果。结果封装在JSON格式中,需要解析得到。结果说明:
示例结果(JSON):
{ "engine_type":"local_engine", "result":[{"confidence":0,"ori_word":"你 好 ","pinyin":"NI3 HAO3 ","word":"你好。"}], "result_type":"lvcsr", "scenario_type":5 }
语音识别结果码说明
表2 AsrError说明
开发步骤
在使用语音识别API时,将实现ASR的相关的类添加至工程。
// 提供ASR引擎执行时所需要传入的参数类 import ohos.ai.asr.AsrIntent; // 错误码的定义类 import ohos.ai.asr.util.AsrError; // 加载语音识别Listener import ohos.ai.asr.AsrListener; // 提供调用ASR引擎服务接口的类 import ohos.ai.asr.AsrClient; // ASR回调结果中的关键字封装类 import ohos.ai.asr.util.AsrResultKey;
调用API接口。
1.创建一个AsrClient对象。context为应用上下文信息,应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。
AsrClient asrClient = AsrClient.createAsrClient(context).orElse(null);
2.设置引擎参数。如果希望识别文件,音频文件需满足约束与限制,并设置音频类型为“ASR_SRC_TYPE_FILE”;如果希望识别音频流,则设置音频类型为“ASR_SRC_TYPE_PCM”。
AsrIntent initIntent = new AsrIntent(); initIntent.setAudioSourceType(AsrIntent.AsrAudioSrcType.ASR_SRC_TYPE_PCM);
3.初始化ASR服务。其中,mMyAsrListener为实现了AsrListener接口的实例对象。
asrClient.init(initIntent, mMyAsrListener);
4.开始识别。用户可以不设置参数,使用默认参数。
AsrIntent asrIntent = new AsrIntent(); // 设置后置的端点检测(VAD)时间 asrIntent.setVadEndWaitMs(2000); // 设置前置的端点检测(VAD)时间 asrIntent.setVadFrontWaitMs(4800); // 设置语音识别的超时时间 asrIntent.setTimeoutThresholdMs(20000); asrClient.startListening(asrIntent); // buffer需要替换为真实的音频数据 byte[] buffer = new byte[]{0, 1, 0, 10, 1}; // 对于长度大于1280的音频,需要多次调用writePcm分段传输 asrClient.writePcm(buffer, 1280);
需要注意的是,startListening或writePcm方法建议放在mMyAsrListener中onInit()方法内调用,保证初始化引擎成功之后再调用识别接口。如果希望识别音频文件,则不需要调用writePcm接口。
AsrIntent asrIntent = new AsrIntent(); // 将FilePath修改为正确的地址,且文件路径需要给com.huawei.hiai进程授予可访问权限。 asrIntent.setFilePath("FilePath"); asrClient.startListening(asrIntent);
5.取消或停止识别。
asrClient.stopListening(); // 停止识别 asrClient.cancel(); // 取消识别
6.释放引擎。
asrClient.destroy();
上一篇: 用于 Freeswitch 智能语音开发的 ASR
下一篇: 人工智能帮助学生学习的 5 种方法
推荐阅读
-
HarmonyOS 学习开发之路 - 人工智能功能开发(语音识别)
-
开发人工智能智能机器人语音后台识别处理系统
-
Adobe国际认证中文官方网站】Adobe中国摄影计划,免费安装正版激活--Adobe Creative Cloud中国摄影计划。与此同时,Adobe宣布天猫为Adobe Creative Cloud中国摄影计划的电商战略合作伙伴,并将与其合作上线Adobe天猫官方旗舰店。 此举无疑一方面扩大了Adobe在中国的影响力,另一方面也有助于国内用户更好地培养正版软件意识,推动Adobe软件在中国的正版化进程。 网络异常,图片无法显示 ||网络异常 Adobe Creative Cloud中国摄影计划包括Photoshop和Lightroom Classic两大桌面创意工具,以及iOS版Photoshop Express。 其中,Adobe Lightroom Classic和Adobe Photoshop作为两款常用的图像处理软件,对于那些玩摄影、后期修图的创意设计人群无疑有着巨大的帮助,而LR+PS套装对于摄影领域用户的重要性自不必说,正版产品的性能实时更新也可以放心!体验最新功能,对于新镜头(补偿)和机身(RAW 读取)都能第一时间适应。不信你看: Photoshop 图像合成 裁剪、移除对象、润饰合成照片、玩转色彩和特效,创建精美图片和艺术品! Lightroom Classic 照片编辑 轻松批量管理和编辑照片,内置专业创意控件和摄影师预设,让你的照片大放异彩。 手机 PS 便捷编辑 Photoshop Express 支持多种滤镜、贴纸,手机即可完成抠图、除雾等任务 人工智能编辑工具 神经滤镜、快速点击选区、自动选择主题等人工智能功能让图像编辑更轻松 创意画笔内容识别 定制艺术画笔工具,实现个性化效果;内容识别填充,智能去除无用物体。 Adobe Creative Cloud 中国摄影计划的推出,为中国的专业摄影师、摄影爱好者、后期修图和其他创意设计人员带来了全方位的内容和体验。 网络异常,图片无法显示 ||网络异常 当然,不可否认的是,"由于盗版软件缺乏开发、维护和升级成本,销售价格远低于正版软件。再加上很多普通人并不需要使用正版软件的复杂功能,版权观念较淡,还是有大量的创意设计人员会选择盗版软件"。 但事实上,当所有的软件都不再是单一的软件,而是变成一种服务时,单机版盗版的存在就逐渐成为鸡肋。因为有太多的服务让你即使是所谓的 "完美破解",也无法享受,Adobe Cloud 就是一个很好的例子,所谓的完美破解,你只能使用 "Adobe "的一半,对于更精彩的 "云",只能望云兴叹。更何况,越来越多的设计工具从免费走向付费,越来越多的设计师和企业已经接受了付费使用的模式。 其次,对于互联网时代的企业数字化转型而言,数字化合规至关重要。21年来,使用盗版PS和未经授权的方正字体被指侵权的事情闹得沸沸扬扬,虽然新闻真假难辨,但也给使用盗版工具的用户敲响了警钟。 付费使用正版工具,可以更放心地进行设计,不用担心版权风险!