语音识别的方法有哪些?

文本转语音的方法

HarmonyOS
2024-08-07 10:11:10
浏览
收藏 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);
分享
微博
QQ
微信
回复
2024-08-07 15:01:16
相关问题
文本转语音方法哪些?
126浏览 • 1回复 待解决
识别本地图片的方法哪些
120浏览 • 1回复 待解决
ArkTS语言支持语音识别吗?
715浏览 • 1回复 待解决
Flutter 热重载方法哪些
80浏览 • 1回复 待解决
Greenplum哪些通用的处理方法
3239浏览 • 1回复 待解决
HarmonyOS能否提供一个NFC识别的demo
61浏览 • 1回复 待解决
有没有实时相机预览结合OCR识别的demo
1392浏览 • 1回复 待解决
创建数据文件的方法哪些
129浏览 • 1回复 待解决
读取数据文件的方法哪些
127浏览 • 1回复 待解决
上下文工具类的方法哪些
114浏览 • 1回复 待解决
HarmonyOS是否采集语音的能力
83浏览 • 1回复 待解决
Binder链接池实现有哪些方法
517浏览 • 1回复 待解决
OceanBase业务案例哪些
3471浏览 • 1回复 待解决
MongoDB的优势哪些
3813浏览 • 1回复 待解决
GlobalThis替代方案哪些
629浏览 • 1回复 待解决
PolarDB 备份过程哪些
2348浏览 • 1回复 待解决
ArkUI调试技巧哪些
404浏览 • 1回复 待解决
NoSQL的MongoDB哪些优点?
3714浏览 • 1回复 待解决
ArkTS生成密钥问题哪些
78浏览 • 1回复 待解决
证书锁定功能示例哪些
472浏览 • 1回复 待解决