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。

它提供一組 Hook(如 useSpeechRecognitionEvent)與直接的模組 API(ExpoSpeechRecognitionModule),用於啟動、停止與管理語音辨識會話。它處理權限、事件驅動的結果(暫時與最終結果),以及平台特定的設定,例如本機辨識與音訊會話類別。

適用對象

需要在行動與 Web 應用中整合語音輸入或轉錄服務,但又不想撰寫平台特定原生程式碼的 React Native 與 Expo 開發者。

主要特色

  • 跨平台支援:iOS、Android 與 Web 的統一介面。
  • 彈性轉錄:支援即時(暫時)結果與最終轉錄。
  • 音訊持久化:可在 Android 13+ 與 iOS 上將音訊錄製儲存至本機檔案。
  • 檔案導向轉錄:支援從本機 URI 轉錄既有的音訊檔案。
  • 進階控制:包含音量計量、語言偵測(Android 14+),以及強制使用本機辨識以防止網路音訊傳輸的功能。
  • 可客製化:允許提供上下文字串,以提升特定應用相關詞彙的辨識準確度。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案