You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native实现离线语音识别及触发键盘麦克风方法问询

离线语音识别与键盘麦克风输入方案

一、离线语音识别实现方案

1. 基于react-native-voice配置离线模式

react-native-voice本质是封装了iOS的SFSpeechRecognizer和Android的SpeechRecognizer原生API,这两个原生接口本身支持离线识别,并非必须依赖联网。你可以通过平台专属配置开启离线模式:

  • iOS端:

    • 在Info.plist中添加权限声明:
      <key>NSSpeechRecognitionUsageDescription</key>
      <string>需要使用语音识别功能</string>
      <key>NSMicrophoneUsageDescription</key>
      <string>需要访问麦克风进行语音输入</string>
      
    • 确保设备已下载对应语言的离线语音包(用户可通过「设置 > Siri 与搜索 > 离线语音识别」下载)。
    • 调用识别时传入离线参数:
      Voice.start('zh-CN', { requiresOnDeviceRecognition: true });
      
  • Android端:

    • 在AndroidManifest.xml中添加权限:
      <uses-permission android:name="android.permission.RECORD_AUDIO" />
      
    • 确保设备已下载对应语言的离线语音包(用户可通过「设置 > 系统 > 语言和输入法 > 语音输入」下载)。
    • 调用识别时传入离线优先参数:
      Voice.start('zh-CN', { preferOffline: true });
      

    注:部分Android机型可能仍需保留android.permission.INTERNET权限(系统可能用于验证离线语言包有效性)。

2. 替代方案

如果react-native-voice的离线配置无法满足需求,可考虑以下方向:

  • 自定义原生封装:直接基于iOS的SFSpeechRecognizer和Android的SpeechRecognizer封装离线识别模块,可完全控制离线逻辑,灵活性更高。
  • react-native-speech-kit:该库同样封装了原生语音识别API,支持离线模式,API接口更简洁,配置逻辑与react-native-voice类似。

二、触发键盘麦克风语音输入

无需依赖第三方包,直接利用React Native自带的TextInput组件即可实现类似通讯APP的键盘麦克风输入:

  1. 基础实现:
    系统键盘默认自带语音输入按钮(需用户在系统设置中开启「语音输入」功能),当TextInput获得焦点时,键盘会自动显示麦克风按钮,用户点击后即可进行语音输入,识别完成后的文字会自动填充到TextInput中。示例代码:

    import { TextInput } from 'react-native';
    
    <TextInput
      placeholder="输入消息..."
      style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
    />
    
  2. 强制适配语音输入(可选):

    • iOS端:设置keyboardType='default',并确保用户已开启「设置 > 通用 > 键盘 > 启用听写」。
    • Android端:设置inputType='text',确保设备安装了支持语音输入的输入法(如Gboard)且已开启语音输入功能。

内容的提问来源于stack exchange,提问作者Sachin Mohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:52:35