更新记录

1.0.0(2026-01-23)

  • feat: 支持 App-Android / App-iOS(iOS 已内置百度官方 SDK)
  • feat: 初始化、开始/停止/取消识别、结果/音量/错误回调
  • feat: 录音权限检查与请求(插件内封装)
  • chore: 补齐 uni-app 平台标记(App-Android / App-iOS)

平台兼容性

uni-app(4.87)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x(4.87)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - -

百度语音识别 uni-app / uni-app x 插件

基于百度AI语音识别 SDK 的 UTS 插件,支持 uni-app / uni-app x 的 App-Android / App-iOS 语音识别。

功能特性

  • ✅ 支持中文、英文、粤语、四川话等多语言识别
  • ✅ 支持短语音和长语音识别
  • ✅ 实时识别结果回调
  • ✅ 音量变化监听
  • ✅ 完整的错误处理机制
  • ✅ 权限自动管理
  • ✅ 基于UTS混合开发,性能优秀

平台支持

平台 支持状态 架构支持
Android ✅ 已实现 armeabi-v7a, arm64-v8a, x86, x86_64
iOS ✅ 已实现 arm64(仅真机,模拟器不支持)

使用前须知

  • Android:安装插件即可使用,无需额外集成 SDK。
  • iOS:通常仅支持真机(arm64),模拟器不支持。

安装

你可以通过以下任一方式安装:

  1. DCloud 插件市场:在 HBuilderX 插件市场安装本插件(推荐)
  2. 本地集成:将 uni_modules/hans-baidu-asr 放入项目的 uni_modules/ 目录

然后从百度 AI 开放平台获取认证信息(appId/apiKey/secretKey),并在代码中引入使用。

百度 AI 开放平台:

  • https://ai.baidu.com/

安全提示:请勿将生产环境凭证直接提交到仓库。建议使用本地配置文件/环境变量注入或仅在本机开发阶段填写。

快速开始

import { 
  initSpeechRecognition,
  startRecognition,
  setLogEnabled,
  onRecognitionResult,
  checkPermission,
  requestPermission
} from '@/uni_modules/hans-baidu-asr'

// 可选:开启插件内部日志(默认关闭)
setLogEnabled(true)

// 初始化
await initSpeechRecognition({
  appId: 'your_app_id',
  apiKey: 'your_api_key',
  secretKey: 'your_secret_key',
  enableLog: true
})

// 设置回调
onRecognitionResult({
  onResult: (result) => {
    console.log('识别结果:', result.text)
  }
})

// 可选:开始前检查/请求录音权限
if (!checkPermission()) {
  const granted = await requestPermission()
  if (!granted) throw new Error('需要录音权限才能开始识别')
}

// 开始识别
startRecognition({
  type: 'short',
  language: 'zh'
})

日志开关

插件内部日志默认关闭,可通过以下两种方式开启:

  1. 初始化时传入 enableLog: true
  2. 运行时调用 setLogEnabled(true) 动态切换
import { setLogEnabled, isLogEnabled } from '@/uni_modules/hans-baidu-asr'

setLogEnabled(true)
console.log('插件日志开关:', isLogEnabled())

API文档

插件对外导出方法如下(均从 @/uni_modules/hans-baidu-asr 导入):

方法

  • initSpeechRecognition(config: SpeechConfig): Promise<boolean>
  • startRecognition(options?: RecognitionOptions): void
  • stopRecognition(): void
  • cancelRecognition(): void
  • getRecognitionStatus(): RecognitionStatus
  • onRecognitionResult(options: CallbackOptions): void
  • offRecognitionResult(): void
  • checkPermission(): boolean
  • requestPermission(): Promise<boolean>
  • setLogEnabled(enabled: boolean): void
  • isLogEnabled(): boolean

说明:

  • startRecognition()success/fail/complete 为可选回调,同时也会通过 onRecognitionResult() 推送识别事件。

类型(概要)

  • SpeechConfig: appId/apiKey/secretKey/pid?/enableLog?
  • RecognitionOptions: type?/language?/vadEnable?/audioFormat?/sampleRate?/success?/fail?/complete?
  • RecognitionResult: text/confidence?/isFinal?/timestamp?
  • CallbackOptions: onResult?/onStart?/onEnd?/onError?/?

参数说明与平台差异

  • SpeechConfig.pid
    • 语言模型(ProductId),默认 1537(中文普通话)
    • Android:startRecognition({ language }) 会覆盖 pid(例如英文/粤语/四川话)
    • iOS:当前实现使用初始化时的 pidstartRecognition({ language }) 预留,可能不会生效)
  • RecognitionOptions.audioFormat/sampleRate
    • 当前实现为预留参数(可能不会生效);Android 默认 16k 采样率,iOS 使用 SDK 默认配置

权限要求

Android平台需要以下权限:

  • RECORD_AUDIO - 录音权限
  • INTERNET - 网络权限
  • ACCESS_NETWORK_STATE - 网络状态权限

iOS 平台需要声明麦克风权限用途描述(插件已内置,构建时会合并到宿主):

  • NSMicrophoneUsageDescription

隐私与合规说明

  • 本插件会采集麦克风录音音频,用于语音识别。
  • 语音识别过程中,音频数据可能由百度官方 SDK 上传到百度服务器处理(具体以百度 SDK/服务条款为准)。
  • 插件本身不内置广告,不主动持久化保存录音音频。

错误码

errCode 含义
0 成功
9010001 录音权限被拒绝
9010002 识别器状态无效 / 未初始化
9010003 初始化失败
9010004 语音识别失败
9010005 网络连接错误
9010006 认证信息错误
9010999 未知错误

注意事项

  1. 需要有效的百度AI开放平台认证信息
  2. 首次使用需要联网激活
  3. 建议在真机环境测试
  4. 请妥善保管API密钥信息
  5. 若报错 Can not load so library(error=5/sub_error=5001),通常是 native 库未被打包进 APK 或 ABI 不匹配;请确认当前设备 ABI 在插件配置中已开启,并且 APK 内包含 lib/<abi>/libBaiduSpeechSDK.so 等库
  6. 若 iOS 运行时报 Undefined symbols for architecture arm64,请优先确认在真机 arm64 运行;仍有问题可查看仓库根目录 README.md 的 iOS 维护说明

隐私、权限声明

1. 本插件需要申请的系统权限列表:

录音、联网(用于语音识别)

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。