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

中国建设银行网站转账优化关键词排名

中国建设银行网站转账,优化关键词排名,wordpress和宝塔,西宁最好网站建设公司哪家好语音识别(语音转文字) 在鸿蒙应用开发中,需要涉及到录音或者语音识别的功能,我们需要用到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/30432.html

相关文章:

  • 2017年到2018年建设的网站深圳关键词首页排名
  • 网站推广的作用在哪里广州优化疫情防控措施
  • 电影网站做多大会有风险seo优化大公司排名
  • 网站建设1993seoseo外链推广
  • 网站拓扑图怎么做可以看任何网站的浏览器
  • dw做的网站如何上传云服务器新产品推广方案怎么写
  • 免费行情软件app网站直播下载网站优化查询
  • c#购物网站开发流程短视频seo搜索优化
  • 现在做一个网站系统多少钱百度云资源搜索引擎入口
  • 国科联创网站建设网络推广工作
  • 室内设计效果图在哪里找站长工具 seo查询
  • 网站下雪代码青岛seo优化
  • 不会写程序如何做网站南京网络营销服务
  • 上海做高端网站制作网络营销推广方案整合
  • wordpress 站长工具国内广告联盟平台
  • 网站动态效果用什么软件做的思亿欧seo靠谱吗
  • 劳务公司简介模板四平网站seo
  • 滨湖区建设局网站优化关键词规则
  • 社区做图网站有哪些seo线下培训机构
  • 长春火车站电话百度关键词排名快速排名
  • 7天精通网站建设实录简介242今日足球赛事推荐
  • 住房和城乡规划建设局网站交换友情链接的渠道
  • 白城学做网站青岛网络推广公司哪家好
  • 设计师网站有哪些网络推广专员
  • 网站后台做链接百度知道一下
  • 网站平台怎么做的好处公众号推广引流
  • 做有声小说网站重庆seo俱乐部联系方式
  • 个人网站相册怎么做百度推广有哪些售后服务
  • 为什么要做手机网站教育培训机构平台
  • 怎样建设赌博网站seo是一种利用搜索引擎的