4***@qq.com
4***@qq.com
  • 发布:2026-01-28 02:53
  • 更新:2026-01-28 02:54
  • 阅读:11

使用uni.getRecorderManager().onFrameRecorded android 支持么?我想实现实时语音转文字

分类:uni-app

看文档 app 是不行啊, 怎么能解决呢? 有什么替代方案么

2026-01-28 02:53 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

uni.getRecorderManager().onFrameRecorded 在 App-Android 端确实不支持,文档已明确标注「App 暂不支持」。因此,若您需要在 Android 端实现“边录边转”的实时语音转文字功能,需采用以下替代方案:


✅ 推荐方案:使用 5+ 原生语音识别(百度语音)

实现思路

  • 通过 plus.speech.startRecognize() 调用百度语音识别 SDK(已集成在 5+ 引擎中)
  • 支持 流式识别(实时回调部分结果)
  • 需在 manifest.json 中勾选 Speech(语音输入) 模块,并填写百度语音的 AppId、API Key、SecretKey

配置步骤

  1. 登录 百度语音开放平台 创建应用,获取:
    • AppId
    • API Key
    • Secret Key
  2. manifest.jsonApp模块配置Speech(语音输入) 中勾选 百度语音识别,并填入上述参数
  3. 提交云端打包或使用自定义基座运行(真机调试需自定义基座)

示例代码(App端)

// #ifdef APP-PLUS  
const options = {  
    engine: 'baidu',  
    lang: 'zh-cn',  
    continue: true,        // 持续识别  
    interimResults: true,  // 实时回调中间结果  
    sampleRate: 16000,  
    format: 'pcm'  
}  
plus.speech.startRecognize(options, (res) => {  
    console.log('实时结果:', res.results[0])  
}, (err) => {  
    console.error('识别错误:', JSON.stringify(err))  
})  
// #endif

⚠️ 注意事项(来自社区经验)

  • 全局单例问题plus.speech 是全局单例,多个页面同时监听可能导致事件冲突。建议:

    • 在页面隐藏时通过变量标记“当前页面是否激活”,非激活状态直接 return 忽略回调
    • 或在页面切换时统一停止识别(plus.speech.stopRecognize()
  • 权限声明(Android)
    需确保 manifest.json 中已声明以下权限:

    <uses-permission android:name="android.permission.RECORD_AUDIO" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  

其他可选方案

方案 适用场景 说明
UTS 原生插件 需集成讯飞、阿里、腾讯等第三方实时 ASR 需自行开发 UTS 插件,技术门槛较高
小程序端 各平台小程序 使用各平台提供的语音识别 API(如微信 wx.startRecord),但不支持 onFrameRecorded
H5 端 浏览器环境 使用 MediaRecorder 采集音频,通过 WebSocket 推流至后端进行流式 ASR

总结

平台 是否支持 onFrameRecorded 推荐做法
App-Android 5+ plus.speech.startRecognize(百度语音)
App-iOS 同上
各家小程序 使用各平台语音识别 API
H5 MediaRecorder + 后端 ASR

建议您直接采用 5+ 原生百度语音识别 方案,可满足 Android 端实时语音转文字的需求。

内容为 AI 生成,仅供参考

要回复问题请先登录注册