HarmonyOS是否有采集语音的能力

应用涉及语音识别,类似于点击按钮,采集音频,转换文字的能力,HarmonyOS是否有系统提供的能力,如果没有,是否有对标的三方库?

HarmonyOS
2024-09-10 10:26:56
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可以使用Core Speech Kit(基础语音服务)集成了语音类基础AI能力,包括文本转语音(textToSpeech)及语音识别(speechRecognizer)能力,便于用户与设备进行互动,实现将实时输入的语音与文本之间相互转换。链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/core-speech-introduction-V5

示例代码可参考:

import { BusinessError } from '@kit.BasicServicesKit'; 
// 设置创建引擎参数 
let extraParam: Record<string, Object> = {"style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName'}; 
let initParamsInfo: textToSpeech.CreateEngineParams = { 
  language: 'zh-CN', 
  person: 0, 
  online: 1, 
  extraParams: extraParam 
}; 
try { 
  // 调用createEngine方法 
  textToSpeech.createEngine(initParamsInfo, (err: BusinessError, textToSpeechEngine: textToSpeech.TextToSpeechEngine) => { 
    if (!err) { 
      console.info('createEngine is success'); 
      // 接收创建引擎的实例 
      ttsEngine = textToSpeechEngine; 
    } else { 
      // 创建引擎失败时返回错误码1003400005,可能原因:引擎不存在、资源不存在、创建引擎超时 
      console.error("errCode is " + JSON.stringify(err.code)); 
      console.error("errMessage is " + JSON.stringify(err.message)); 
    } 
  }); 
} catch (error) { 
  let message = (error as BusinessError).message; 
  let code = (error as BusinessError).code; 
  console.error(`createEngine failed, error code: ${code}, message: ${message}.`) 
} 
// 设置回调对象 
let speakListener: textToSpeech.SpeakListener = { 
  // 开始播报回调 
  onStart(requestId: string, response: textToSpeech.StartResponse) { 
    console.info('onStart: ' + 'requestId: ' + requestId + ' response: ' + JSON.stringify(response)); 
  }, 
  // 合成完成及播报完成回调 
  onComplete(requestId: string, response: textToSpeech.CompleteResponse) { 
    console.info('onComplete: ' + 'requestId: ' + requestId + ' response: ' + JSON.stringify(response)); 
  }, 
  // 停止播报回调 
  onStop(requestId: string, response: textToSpeech.StopResponse) { 
    console.info('onStop: ' + 'requestId: ' + requestId + ' response: ' + JSON.stringify(response)); 
  }, 
  // 返回音频流 
  onData(requestId: string, audio: ArrayBuffer, response: textToSpeech.SynthesisResponse) { 
    console.log('speakListener onData: ' + ' requestId: ' + requestId+ ' sequence: ' + JSON.stringify(response) + ' audio: ' + audio); 
  }, 
  // 错误回调 
  onError(requestId: string, errorCode: number, errorMessage: string) { 
    console.error('OnError: ' + 'requestId: ' + requestId + ' errorCode: ' + errorCode + 'errorMessage: ' + errorMessage); 
  } 
}; 
// 调用回调方法 
ttsEngine.setListener(speakListener); 
// 设置播报相关参数 
let extraParam: Record<string, Object> = {"queueMode": 0, "speed": 1, "volume": 2, "pitch": 1, "languageContext": 'zh-CN',    "audioType": "pcm", "soundChannel": 3, "playType":1} 
let speakParams: textToSpeech.SpeakParams = { 
  requestId: '123456', 
  extraParams: extraParam 
}; 
// 调用播报方法 
this.ttsEngine.speak(this.originalText, speakParams);
分享
微博
QQ
微信
回复
2024-09-10 17:40:45
相关问题
是否采集内存泄露工具
2144浏览 • 1回复 待解决
HarmonyOS当前是否BLE能力
330浏览 • 1回复 待解决
当前HarmonyOS是否开屏广告能力
370浏览 • 1回复 待解决
是否查看c++内存能力
644浏览 • 1回复 待解决
文本转语音方法哪些?
281浏览 • 1回复 待解决
相机是否支持HDR模式采集
1807浏览 • 1回复 待解决
是否闪光灯开关控制能力
1630浏览 • 1回复 待解决
语音识别的方法哪些?
395浏览 • 1回复 待解决
HarmonyOS是否提供类似opencv能力
1076浏览 • 1回复 待解决
HarmonyOS 如何实现语音助手功能?
131浏览 • 1回复 待解决
HAP是否提供动态加载能力
1691浏览 • 1回复 待解决