AI 語音辨識在 Unity 中

Hugging Face 已發布一份技術指南,說明如何透過 Hugging Face Unity API 將最先進的自動語音辨識 (ASR) 整合到 Unity 遊戲中。此整合使開發者能將語音音訊轉換為文字,用於語音激活命令、NPC 互動以及提升遊戲無障礙性等用例。

使用 Hugging Face Unity API 實作 ASR

在 Unity 中整合語音辨識需要一個管線,該管線負責捕獲原始麥克風輸入,將其編碼為相容格式,並將其傳送至 Hugging Face API 進行處理。

音訊捕獲與 WAV 編碼

為了處理語音,Unity 必須從麥克風捕獲音訊並將其編碼為 WAV 檔案,這是 Hugging Face API 所需的格式。實作涉及以下技術步驟:

  • 麥克風捕獲:使用 Microphone.Start(),音訊以 44100 Hz 的頻率錄製。提供的實作將錄製時間限制為最多 10 秒。
  • 資料提取:錄製透過 Microphone.End() 停止後,會使用 GetData()AudioClip 中提取音訊樣本。
  • WAV 編碼:由於原始樣本無法直接與 API 相容,會使用自訂的 EncodeAsWAV 方法將 RIFF 標頭和 PCM 資料寫入位元組陣列。這確保音訊資料的結構正確,適合 ASR 模型。

API 整合與執行

音訊編碼為位元組陣列後,會發送至 Hugging Face 伺服器進行轉錄。

  • ASR 方法HuggingFaceAPI.AutomaticSpeechRecognition 方法負責傳送位元組陣列。
  • 非同步處理:API 使用回呼系統來處理回應。成功的轉錄會返回轉換後的文字,失敗則會返回錯誤訊息。
  • 使用者介面回饋:為維持良好的使用者體驗,實作建議更新 UI 元素(例如 TextMeshPro)以指示當前狀態:'錄音中...'、'發送中...',或顯示最終的轉錄文字。

技術需求

要實作此功能,開發者需要以下先決條件:

  • Unity Engine:需要具備基本的 Unity 知識來設定場景和腳本。
  • Hugging Face Unity API:專案必須已安裝 Hugging Face Unity API

遊戲開發中的潛在用例

在遊戲引擎中即時將語音轉換為文字的能力開啟了幾種設計可能性:

  • 語音命令:玩家可以透過口頭話語觸發遊戲動作或選單導航。
  • NPC 互動:對話系統可以擴展,讓玩家能以自然方式與非玩家角色說話。
  • 無障礙性:語音轉文字為無法使用傳統控制器或鍵盤的玩家提供了一種替代輸入方式。

Sources