使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong! (HarmonyOS 鸿蒙Next)
使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong! (HarmonyOS 鸿蒙Next)
【标题】使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong!
【设备信息】
【API版本】Api14
【DevEco Studio版本】 5.0.5.315
【问题描述】使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong!但反复检查了参数并没有任何问题,参数如下:
this.engineParams = {
language: 'zh-CN',
online: 1,
extraParams: {
'locate': 'CN',
'recognizerMode': 'long',
}
}
有大佬知道这种情况该怎么处理吗?
【问题相关代码】
更多关于使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong! (HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html
兄弟,你这个问题需要确保只存在一个实例, 而且**使用完要及时释放资源。**看看是不是当前测试真机上有多个版本的APP在同时运行,比如联调版本、测试版本之类的。
可以参考如下代码:
// 定义引擎对象
let asrEngine: speechRecognizer.SpeechRecognitionEngine;
// 定义监听回调对象
let listener: speechRecognizer.RecognitionListener = {
onStart(sessionId: string, eventMessage: string) {},
onEvent(sessionId: string, eventCode: number, eventMessage: string) {},
onResult(sessionId: string, result: speechRecognizer.SpeechRecognitionResult) {},
onComplete(sessionId: string, eventMessage: string) {
asrEngine.shutdown(); // 识别完成时,及时释放资源,保证下一次能再正常创建引擎实例
console.info(`onComplete, sessionId: ${sessionId} eventMessage: ${eventMessage}`);
},
onError(sessionId: string, errorCode: number, errorMessage: string) {},
}
// 创建语音识别实例
speechRecognizer.createEngine(initParamsInfo).then((speechRecognitionEngine: speechRecognizer.SpeechRecognitionEngine) => {
// 接收引擎实例
asrEngine = speechRecognitionEngine;
console.info(`Succeeded in creating engine, result: ${JSON.stringify(asrEngine)}.`);
// 设置监听
asrEngine.setListener(listener);
// 开始监听
asrEngine.startListening({
sessionId: 'xxx', // sessionId字符长度需要小于64,而且不能包含特殊字符,如'.'
audioInfo: {
audioType: 'pcm',
sampleRate: 16000,
soundChannel: 1,
sampleBit: 16,
}
});
}).catch((err: BusinessError) => {
console.error(`Failed to create engine. Code: ${err.code}, message: ${err.message}.`);
});
更多关于使用speechRecongnizer语音识别服务,调用createEngine一直提示Asr CreateEngineParams is wrong! (HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在使用鸿蒙系统的speechRecognizer
语音识别服务时,调用createEngine
方法出现Asr CreateEngineParams is wrong!
错误,通常是由于参数配置不正确或缺失导致的。以下是可能的原因:
- 参数配置错误:
CreateEngineParams
中的必填参数未正确设置,如appId
、appKey
等。 - 权限未配置:语音识别服务需要特定的权限,如
ohos.permission.MICROPHONE
,未在config.json
中正确配置。 - 服务未初始化:语音识别服务未在应用启动时正确初始化。
- SDK版本不兼容:使用的鸿蒙SDK版本与语音识别服务不兼容。
检查CreateEngineParams
的参数配置,确保所有必填参数正确无误,并确认权限配置和SDK版本兼容性。