jamsch/expo-speech-recognition

Speech Recognition for React Native Expo projects

解决的问题

expo-speech-recognition 为在 React Native 项目中实现语音转文本功能提供了一个统一的 API。它解决了 iOS、Android 和 Web 平台之间碎片化的原生语音识别 API 问题,使开发者能够编写一份代码库,即可在三个平台都正常运行。

工作原理

该库作为各平台原生语音识别服务的封装:

  • iOS:使用 SFSpeechRecognizer
  • Android:使用 SpeechRecognizer
  • Web:使用 SpeechRecognition API。

它提供了一组钩子(如 useSpeechRecognitionEvent)和直接的模块 API(ExpoSpeechRecognitionModule),用于启动、停止和管理语音识别会话。它处理权限、事件驱动的结果(中间结果和最终结果),以及平台特定的配置,例如本地识别和音频会话类别。

适用人群

需要在移动和 Web 应用中集成语音输入或转录服务,但又不想编写平台特定的原生代码的 React Native 和 Expo 开发者。

主要亮点

  • 跨平台支持:iOS、Android 和 Web 的统一接口。
  • 灵活的转录:支持实时(中间)结果和最终转录。
  • 音频持久化:可在 Android 13+ 和 iOS 上将音频录制保存到本地文件。
  • 基于文件的转录:支持从本地 URI 转录现有的音频文件。
  • 高级控制:包含音量计量、语言检测(Android 14+),以及强制使用本地识别以防止网络音频传输的功能。
  • 可定制性:允许提供上下文字符串,以提高特定应用相关术语的识别准确率。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目