当前位置: 首页 > wzjs >正文

宁波seo外包联系方式网站优化排名怎么做

宁波seo外包联系方式,网站优化排名怎么做,四川省住房和城乡建设厅证书,做网站卖彩票语音识别(语音转文字) 在鸿蒙应用开发中,需要涉及到录音或者语音识别的功能,我们需要用到CoreSpeechKit这个API,使用语言引擎进行转换。 效果: 申请麦克风权限: {"name": "oh…

语音识别(语音转文字)

在鸿蒙应用开发中,需要涉及到录音或者语音识别的功能,我们需要用到CoreSpeechKit这个API,使用语言引擎进行转换。

效果:

申请麦克风权限:

{"name": "ohos.permission.MICROPHONE","reason": "$string:MICROPHONE_reason","usedScene": {"abilities": ["EntryAbility"],}
},

初始化引擎

// 创建引擎,通过callback形式返回
// 设置创建引擎参数
// 调用createEngine方法
asrEngine = await speechRecognizer.createEngine({language: 'zh-CN',online: 1,extraParams: { "locate": "CN", "recognizerMode": "short" }
});

设置回调函数对象

// 创建回调对象
let setListener: speechRecognizer.RecognitionListener = {// 开始识别成功回调onStart(sessionId: string, eventMessage: string) {Logger.info(`onStart, sessionId: ${sessionId} eventMessage: ${eventMessage}`);},// 事件回调onEvent(sessionId: string, eventCode: number, eventMessage: string) {Logger.info(`onEvent, sessionId: ${sessionId} eventCode: ${eventCode} eventMessage: ${eventMessage}`);},
​// 识别结果回调,包括中间结果和最终结果// 箭头函数 的 this 会在创建时,绑定 当前所在作用域中的 this(当前组件)onResult: (sessionId: string, result: speechRecognizer.SpeechRecognitionResult) => {Text = result.resultLogger.info(`onResult, sessionId: ${sessionId} sessionId: ${JSON.stringify(result)}`);Logger.info('result', result.result)// 保存 识别的结果// 通知 父组件},// 识别完成回调// 箭头函数 的 this 会在创建时,绑定 当前所在作用域中的 this(当前组件)onComplete: (sessionId: string, eventMessage: string) => {Logger.info(`onComplete, sessionId: ${sessionId} eventMessage: ${eventMessage}`);},// 错误回调,错误码通过本方法返回// 如:返回错误码1002200006,识别引擎正忙,引擎正在识别中// 更多错误码请参考错误码参考onError(sessionId: string, errorCode: number, errorMessage: string) {Logger.error(`onError, sessionId: ${sessionId} errorCode: ${errorCode} errorMessage: ${errorMessage}`);}
}
// 设置回调
asrEngine.setListener(setListener);

设置参数,启动回调

// 语音 03 - 设置识别参数 开始识别
let recognizerParams: speechRecognizer.StartParams = {sessionId: sessionId,// 识别的语音的信息audioInfo: {audioType: 'pcm',sampleRate: 16000,soundChannel: 1,sampleBit: 16},extraParams: { "vadBegin": 2000, "vadEnd": 3000, "maxAudioDuration": 40000 }
};
// 调用开始识别方法
asrEngine.startListening(recognizerParams);

参考代码:

调用

SysPermissionUtils.request(getContext() as common.UIAbilityContext, async (isGranted: boolean) => {if (!isGranted) {DialogUtils.showToastMsg('请开启音频录制权限')context.sendBridgeResult({ startRecord: "noPower" })return}SpeechRecognitionTool.startRecord()
}, "ohos.permission.MICROPHONE")

封装类:

import { speechRecognizer } from '@kit.CoreSpeechKit'
import { audio } from '@kit.AudioKit'
import Logger from './Logger'
​
//录音音频捕获对象
let audioCapturer: audio.AudioCapturer | null = null
//语音识别引擎对象
let asrEngine: speechRecognizer.SpeechRecognitionEngine | null = null
// 语音识别的会话 ID
let sessionId: string = '123456';
let Text: string = ''
​
export class SpeechRecognitionTool {static async startRecord() {
​
​// 创建引擎,通过callback形式返回// 设置创建引擎参数// 调用createEngine方法asrEngine = await speechRecognizer.createEngine({language: 'zh-CN',online: 1,extraParams: { "locate": "CN", "recognizerMode": "short" }});
​// 语音 02 - 设置识别之后的回调函数// 创建回调对象let setListener: speechRecognizer.RecognitionListener = {// 开始识别成功回调onStart(sessionId: string, eventMessage: string) {Logger.info(`onStart, sessionId: ${sessionId} eventMessage: ${eventMessage}`);},// 事件回调onEvent(sessionId: string, eventCode: number, eventMessage: string) {Logger.info(`onEvent, sessionId: ${sessionId} eventCode: ${eventCode} eventMessage: ${eventMessage}`);},
​// 识别结果回调,包括中间结果和最终结果// 箭头函数 的 this 会在创建时,绑定 当前所在作用域中的 this(当前组件)onResult: (sessionId: string, result: speechRecognizer.SpeechRecognitionResult) => {Text = result.resultLogger.info(`onResult, sessionId: ${sessionId} sessionId: ${JSON.stringify(result)}`);Logger.info('result', result.result)// 保存 识别的结果// 通知 父组件},// 识别完成回调// 箭头函数 的 this 会在创建时,绑定 当前所在作用域中的 this(当前组件)onComplete: (sessionId: string, eventMessage: string) => {Logger.info(`onComplete, sessionId: ${sessionId} eventMessage: ${eventMessage}`);},// 错误回调,错误码通过本方法返回// 如:返回错误码1002200006,识别引擎正忙,引擎正在识别中// 更多错误码请参考错误码参考onError(sessionId: string, errorCode: number, errorMessage: string) {Logger.error(`onError, sessionId: ${sessionId} errorCode: ${errorCode} errorMessage: ${errorMessage}`);}}// 设置回调asrEngine.setListener(setListener);
​// 语音 03 - 设置识别参数 开始识别let recognizerParams: speechRecognizer.StartParams = {sessionId: sessionId,// 识别的语音的信息audioInfo: {audioType: 'pcm',sampleRate: 16000,soundChannel: 1,sampleBit: 16},extraParams: { "vadBegin": 2000, "vadEnd": 3000, "maxAudioDuration": 40000 }};// 调用开始识别方法asrEngine.startListening(recognizerParams);
​// ---------- 下面是录音相关的逻辑  ----------// 录音 01 - 创建 录音 实例对象let audioCapturerOptions: audio.AudioCapturerOptions = {streamInfo: {samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_16000, // 采样率channels: audio.AudioChannel.CHANNEL_1, // 通道sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式},capturerInfo: {source: audio.SourceType.SOURCE_TYPE_MIC,capturerFlags: 0}};
​// 调用 createAudioCapturer 创建 录音用的实例对象audioCapturer = await audio.createAudioCapturer(audioCapturerOptions)
​// 录音 02 监听录制的结果并 做一些事情
​// 回调函数中,将录制的音频信息,保存到  cacheDir 中audioCapturer.on('readData', (buffer: ArrayBuffer) => {// 语音04 - 写入音频留// 写入的音频流,转手传递给 识别引擎asrEngine?.writeAudio(sessionId, new Uint8Array(buffer));// Logger.info('readData 触发啦~~~')});
​// 录音 03 - 开启录制await audioCapturer.start();
​
​}
​static async closeRecord(callBack: RecognizerRes) {callBack.callBack(Text)// 录音 04 关闭 + 销毁audioCapturer?.stop()audioCapturer?.release()
​// 语音 05 关闭+释放asrEngine?.finish(sessionId)asrEngine?.shutdown()
​}
}
​
export interface RecognizerRes {callBack: (text: string) => void
}

ok,以上就是我在鸿蒙应用中将录音转为文字的分享。

http://www.dtcms.com/wzjs/173160.html

相关文章:

  • 建站做网站sem是什么品牌
  • 家政服务网站源码如何用手机制作网站
  • 国内做医疗耗材的网站seo排名app
  • wp网站建设最近最火的关键词
  • 做rom的网站长沙网络推广服务
  • 做公司官方网站资阳市网站seo
  • p2p网站开发维护seo视频教程百度网盘
  • 商城网站建设是 什么软件营销型网站制作公司
  • 网站如何更换空间seo技术培训唐山
  • 网站网页区别是什么国际新闻头条最新消息
  • 1688属于b2b平台吗天津百度快速排名优化
  • 成都网站改版优化最新推广方法
  • 网页制作与网站设计思路百度快照入口官网
  • 一步一步网站建设教程长沙网站seo诊断
  • 如何把网站建设好网站建设需求模板
  • 制作网站语言免费推广引流平台有哪些
  • 网站开发哪里东莞推广
  • 郑州做网站哪个平台好小程序拉新推广平台
  • 一起做网店网站官方seo推广方法
  • 郑州网站建设的公司哪家好云南疫情最新数据消息中高风险地区
  • 西安市做网站的公司百度收录技术
  • 网站的工作简报怎么做怎么给网站做优化
  • 建设一家网站多少钱专业营销策划团队
  • 淘客网站如何做滕州百度推广
  • 送菜上门网站app如何做个人网站免费制作平台
  • wordpress文章关联微信廊坊seo培训
  • wap网站 手机网站百度网络营销中心客服电话
  • 企业自己如何做网站推广开发一个网站
  • 如何制作企业内部网站珠海百度seo
  • 黄石市城乡建设网站网上推广培训