如何在React Native中接入Google Speech to Text实现语音搜索功能
React Native 接入Google Speech-to-Text 可行方案
方案1:调用Google Cloud官方Speech-to-Text REST API(精度最高,最推荐)
这是Google官方提供的语音识别服务,识别效果完全匹配你需要的官方水准,没有第三方封装库的精度损耗:
- 第一步在Google Cloud控制台开通Speech-to-Text服务,获取对应项目的API密钥
- RN端使用
axios或者原生fetch直接调用API接口,不需要额外引入原生依赖 - 语音采集可以用
react-native-audio或expo-av库实现,采集参数需要和API请求的配置保持一致,推荐用16k采样率的LINEAR16编码格式,识别准确率最高 - 核心请求结构示例:
{ "config": { "encoding": "LINEAR16", "sampleRateHertz": 16000, "languageCode": "zh-CN", // 可按需替换为其他目标识别语言 "enableAutomaticPunctuation": true }, "audio": { "content": "此处填入采集到的语音文件base64编码内容" } }
方案2:原生桥接Google设备端识别能力
如果不想产生云端API调用费用,可以自己封装原生桥接模块:
- 安卓端:直接调用Google Play服务自带的Speech Recognition原生接口,识别在设备端完成,不需要额外网络请求,前提是用户设备装有Google服务框架
- iOS端:调用系统Speech框架中由Google提供的识别能力,不需要额外引入第三方SDK
- 该方案优势是响应速度更快,无调用成本,缺点是依赖用户设备的Google服务环境,无Google服务的设备无法使用
注意事项
- 不推荐使用第三方封装的非官方RN语音识别库,大部分此类库封装的是系统默认识别能力,和
react-native-voice的识别效果一致,达不到Google官方服务的精度 - 如果服务面向中国大陆地区用户,需要提前做好Google服务的网络适配,否则会出现调用失败的问题
内容的提问来源于stack exchange,提问作者Shivam
相关产品推荐
相关产品推荐

