1.在使用语音识别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;
2.调用API接口。
创建一个AsrClient对象。context为应用上下文信息,应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。
AsrClient asrClient = AsrClient.createAsrClient(context).orElse(null);
3.设置引擎参数。如果希望识别文件,音频文件需满足约束与限制,并设置音频类型为“ASR_SRC_TYPE_FILE”;如果希望识别音频流,则设置音频类型为“ASR_SRC_TYPE_PCM”。
AsrIntent initIntent = new AsrIntent();
initIntent.setAudioSourceType(AsrIntent.AsrAudioSrcType.ASR_SRC_TYPE_PCM);
4.初始化ASR服务。其中,mMyAsrListener为实现了AsrListener接口的实例对象。
asrClient.init(initIntent, mMyAsrListener);
5.开始识别。用户可以不设置参数,使用默认参数。
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);
6.取消或停止识别。
asrClient.stopListening(); // 停止识别
asrClient.cancel(); // 取消识别
7.释放引擎。
asrClient.destroy();
审核编辑:汤梓红
-
开发
+关注
关注
0文章
376浏览量
42018 -
语音识别
+关注
关注
39文章
1803浏览量
115559 -
HarmonyOS
+关注
关注
80文章
2146浏览量
35574
发布评论请先 登录
语音识别芯片有哪些(语音识别芯片AT680系列)
什么是离线语音识别芯片(离线语音识别芯片有哪些优点)
【HarmonyOS 5】金融应用开发鸿蒙组件实践
明远智睿SSD2351开发板:语音机器人领域的变革力量
【米尔-RK3562开发板试用评测】RK3562J开发板-语音识别功能测试(一)
语音识别技术在通信领域中的应用实例
HarmonyOS NEXT 应用开发练习:AI智能语音播报
【「嵌入式系统设计与实现」阅读体验】+ 基于语音识别的智能杯垫
HarmonyOS开发指导类文档更新速递(下)

HarmonyOS开发-语音识别
评论