三文带你轻松上手鸿蒙的 AI 语音 01- 实时语音识别
三文带你轻松上手鸿蒙的 AI 语音 01-实时语音识别
前言
HarmonyOSNext 中集成了强大的 AI 功能。Core Speech Kit(基础语音服务)是它提供的众多 AI 功能中的一种。
Core Speech Kit(基础语音服务)集成了语音类基础 AI 能力,包括文本转语音(TextToSpeech)及语音识别(SpeechRecognizer)能
力,便于用户与设备进行互动,实现将实时输入的语音与文本之间相互转换。
简单来讲 Core Speech Kit 主要提供了两大语音 AI 功能:
语音识别
文本转语音
语音识别介绍
语音识别功能可以将一段音频信息(短语音模式不超过 60s,长语音模式不超过 8h)转换为文本。
其中语音识别又可以实现:
实时语音转文本
声音文件转文本
实时语音转文本
实现流程
先介绍语音识别的流程,后面的文字转语音大同小异
申请权限
创建 AI 语音引擎
设置监听回调
开始监听
tips: 完整代码在每一个功能的末尾,可以结合封装后的代码来阅读
申请权限
因为在开发功能过程中,需要调用手机的麦克风功能。所以需要主动申请权限。
申请权限分成 3 个步骤
声明权限
检查是否拥有权限
申请权限
声明权限
在
\entry\src\main\module.json5
中添加以下配置代码 requestPermissions在
\entry\src\main\resources\base\element\string.json
添加 申请原因voice_reason
检查权限
实际开发中,我们在申请权限之前可以先调用接口checkAccessTokenSync
,检查下是否已经拥有权限。如果没有,则主动申请权限
申请权限
当我们需要申请某个功能的权限时,可以通过调用 requestPermissionsFromUser
来实现
封装好的权限代码
因为 HarmonyOSNext 中关于权限的代码,都是没有经过封装的,难以使用。所以这里提供了封装好的版本。
没有封装过的示例代码:
封装好的代码
entry\src\main\ets\utils\permissionMananger.ets
页面中使用权限代码
Index.ets
实时语音识别相关步骤
以下主要实现实时语音识别
创建 AI 语音引擎
创建 AI 语音引擎主要有以下几个步骤
声明 AI 语音引擎配置参数,主要有语种、区域信息等
调用开始创建
createEngine
方法开始创建,并且返回 AI 语音实例引擎
设置 AI 语音监听回调
在开始语音识别之前,需要先设置语音识别回调 setListener
。它主要有以下几个分类
开始识别回调
事件回调
识别结果回调
识别完成回调
识别错误回调
开始监听实时语音
需要先配置监听的参数,便可以调用startListening
实现语音识别了
参数配置 其中,实时语音识别和语音文件识别的主要配置在 recognitionMode
字段, 0 表示实时语音识别
封装好的语音识别代码
\entry\src\main\ets\utils\SpeechRecognizerManager.ets
页面中调用语音识别代码
语音识别结果分析
语音识别成功后的数据格式如下
其中需要关注的是:
识别功能是持续触发的,当收集到声音时持续触发
isFinal 表示一个句子是否结束
isLast 表示这一次语音识别是否结束
总结
HarmonyOSNext 中集成了强大的 AI 功能。Core Speech Kit(基础语音服务)是它提供的众多 AI 功能中的一种。
Core Speech Kit(基础语音服务)集成了语音类基础 AI 能力,包括文本转语音(TextToSpeech)及语音识别(SpeechRecognizer)能
力,便于用户与设备进行互动,实现将实时输入的语音与文本之间相互转换。
简单来讲 Core Speech Kit 主要提供了两大语音 AI 功能:
语音识别
文本转语音
其中语音识别又可以实现:
实时语音转文本
声音文件转文本
本文主要实现了 实时语音转文本 , 声音文件转文本 将会在下文讲解。
版权声明: 本文为 InfoQ 作者【万少】的原创文章。
原文链接:【http://xie.infoq.cn/article/83054758da888ca72313af058】。文章转载请联系作者。
评论