鸿蒙语音识别实战:实现实时语音转文字功能HarmonyOS 5.0.0或以上

在鸿蒙设备上,用嘴巴代替手指,完成文本输入、语音笔记甚至命令识别,是 AI 产品最核心的落地能力之一。

本篇带你从 0 实现一个「实时语音转文字」功能,涵盖:

✅ 原生语音识别模块初始化
✅ 实时识别中文语音 → 展示为文字
✅ 错误处理与状态监听
✅ 可拓展成语音笔记、搜索助手、语音控制器等


✅ 所需模块

能力模块名
语音识别(ASR)@ohos.ai.asr
麦克风权限配置权限 + 动态授权

🧱 效果预览

  • 用户点击“开始识别”按钮

  • 说话的内容实时变成文字显示在页面

  • 点击“停止”按钮终止识别


📦 Step1:配置权限

config.json 添加麦克风权限:

"reqPermissions": [
  {
    "name": "ohos.permission.MICROPHONE"
  }
]

动态请求:

import { requestPermissionsFromUser } from '@ohos.abilityAccessCtrl'

await requestPermissionsFromUser(['ohos.permission.MICROPHONE'])

📦 Step2:初始化 ASR 客户端

import asr from '@ohos.ai.asr'

let asrClient: asr.ASRClient | null = null

async function initASR() {
  asrClient = await asr.createASRClient()
}

📦 Step3:绑定识别结果监听

let resultText: string = ''

asrClient?.on('recognitionResult', (res) => {
  console.log('识别结果:', res.text)
  resultText += res.text
})

asrClient?.on('error', (err) => {
  console.error('识别失败:', err)
})

📦 Step4:开始与停止识别

async function startRecognition() {
  await asrClient?.start({
    language: 'zh',
    audioFormat: asr.AudioFormat.PCM_16K
  })
}

async function stopRecognition() {
  await asrClient?.stop()
}

📦 Step5:简单 UI 示例组件

@Entry
@Component
struct ASRDemo {
  @State result: string = ''
  @State isListening: boolean = false

  build() {
    Column({ space: 20 }) {
      Text(this.result).fontSize(18).lineHeight(26)

      Button(this.isListening ? '停止识别' : '开始识别')
        .onClick(async () => {
          if (!asrClient) await initASR()
          if (this.isListening) {
            await stopRecognition()
          } else {
            resultText = ''
            await startRecognition()
          }
          this.isListening = !this.isListening
        })
    }
    .padding(20)
  }

  aboutToAppear() {
    if (!asrClient) initASR()
    if (asrClient) {
      asrClient.on('recognitionResult', res => {
        this.result += res.text
      })
    }
  }
}

🎯 实战拓展建议

场景建议做法
语音笔记将 result 存储至本地 TXT / JSON 文件
搜索助手把识别结果作为关键词调用搜索接口
语音输入框替代将文本回填至表单项中
语音控制器使用关键词触发 UI 控制逻辑(如“返回”)

🧩 小结

你已完成鸿蒙语音识别从初始化到实时识别的完整流程:

  • 权限配置 → 模块初始化

  • 启动识别 → 实时监听

  • 错误处理 → 停止识别

  • 结果绑定 UI 展示

这为后续 AI 功能(如语音控制、录音转文字、AI 对话)打下坚实基础。


📘 下一篇预告

第2篇:图像识别入门——使用 ArkTS 识别图片内容标签

我们将调用鸿蒙图像分类能力,上传一张图片,识别出其中包含的物体和类别,如“猫”“电脑”“风景”等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值