语音识别的方法有哪些?

文本转语音的方法

HarmonyOS
2024-08-07 10:11:10
1257浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fanyu0803
import { BusinessError } from '@kit.BasicServicesKit';
let asrEngine: speechRecognizer.SpeechRecognitionEngine;
let requestId: string = '123456';
// 创建引擎,通过callback形式返回
// 设置创建引擎参数
let extraParam: Record<string, Object> = {"locate": "CN", "recognizerMode": "short"};
let initParamsInfo: speechRecognizer.CreateEngineParams = {
  language: 'zh-CN',
  online: 1,
  extraParams: extraParam
}
// 调用createEngine方法
speechRecognizer.createEngine(initParamsInfo, (err: BusinessError, speechRecognitionEngine: speechRecognizer.SpeechRecognitionEngine) => {
  if (!err) {
    console.info('createEngine is success');
    //接收创建引擎的实例
    asrEngine = speechRecognitionEngine;
  } else {
    //无法创建引擎时返回错误码1002200008,原因:引擎正在销毁中
    console.error("errCode: " + err.code +  " errMessage: " + JSON.stringify(err.message));
  }
});

// 创建回调对象
let setListener: speechRecognizer.RecognitionListener = {
  // 开始识别成功回调
  onStart(sessionId: string, eventMessage: string) {
    console.info("onStart sessionId: " + sessionId + "eventMessage: " + eventMessage);
  },
  // 事件回调
  onEvent(sessionId: string, eventCode: number, eventMessage: string) {
    console.info("onEvent sessionId: " + sessionId + "eventCode: " + eventCode + "eventMessage: " + eventMessage);
  },
  // 识别结果回调,包括中间结果和最终结果
  onResult(sessionId: string, result: speechRecognizer.SpeechRecognitionResult) {
    console.info("onResult sessionId: " + sessionId + "sessionId: " + JSON.stringify(result));
  },
  // 识别完成回调
  onComplete(sessionId: string, eventMessage: string) {
    console.info("onComplete sessionId: " + sessionId + "eventMessage: " + eventMessage);
  },
  // 错误回调,错误码通过本方法返回
  // 返回错误码1002200002,开始识别失败,重复启动startListening方法时触发
  // 更多错误码请参考错误码参考
  onError(sessionId: string, errorCode: number, errorMessage: string) {
    console.error("onError sessionId: " + sessionId + "errorCode: " + errorCode + "errorMessage: " + errorMessage);
  }
}
// 设置回调
asrEngine.setListener(setListener);
let audioParam: speechRecognizer.AudioInfo = {audioType: 'pcm', sampleRate: 16000, soundChannel: 1, sampleBit: 16};
let extraParam: Record<string, Object> = {"vadBegin": 2000, "vadEnd": 3000, "maxAudioDuration": 40000};
let recognizerParams: speechRecognizer.StartParams = {
  sessionId: requestId,
  audioInfo: audioParam,
  extraParams: extraParam
}
// 调用开始识别方法
asrEngine.startListening(recognizerParams);
let unit8Array: Uint8Array = new Uint8Array();
// 可以通过如下方式获取音频流:1、通过录音获取音频流;2、从音频文件中读取音频流
//2、从音频文件中读取音频流:demo参考
// 写入音频流,音频流长度仅支持640字节或1280字节asrEngine.writeAudio(requestId, unit8Array);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
分享
微博
QQ
微信
回复
2024-08-07 15:01:16


相关问题
文本转语音方法哪些?
928浏览 • 1回复 待解决
识别本地图片的方法哪些
961浏览 • 1回复 待解决
HarmonyOS 语音识别报错
758浏览 • 1回复 待解决
HarmonyOS 语音识别SDK
648浏览 • 1回复 待解决
ArkTS语言支持语音识别吗?
1781浏览 • 1回复 待解决
HarmonyOS 驾驶证书识别的demo
522浏览 • 1回复 待解决
HarmonyOS 识别手机录制的语音失败
821浏览 • 1回复 待解决
Flutter 热重载方法哪些
867浏览 • 1回复 待解决
HarmonyOS 语音识别是否是服务端能力
689浏览 • 1回复 待解决
有没有实时相机预览结合OCR识别的demo
2375浏览 • 1回复 待解决
HarmonyOS能否提供一个NFC识别的demo
1286浏览 • 2回复 待解决
HarmonyOS 活体检测和卡证识别的demo
682浏览 • 1回复 待解决
如何处理语音识别过程中的错误?
771浏览 • 0回复 待解决
Greenplum哪些通用的处理方法
4058浏览 • 1回复 待解决