如何使用插件
Runtime Speech Recognizer 外掛程式旨在從傳入的音訊資料中辨識字詞。它使用略微修改過的 whisper.cpp 版本來與引擎搭配運作。若要使用此外掛程式,請依照下列步驟操作:
編輯器端
- 請依照此處所述,為您的專案選擇合適的語言模型。
運行時端
- 建立語音辨識器並設定必要參數(CreateSpeechRecognizer,參數請參閱此處)。
- 綁定所需的委派(OnRecognitionFinished、OnRecognizedTextSegment 和 OnRecognitionError)。
- 開始語音辨識(StartSpeechRecognition)。
- 處理音訊資料並等待來自委派的結果(ProcessAudioData)。
- 在需要時停止語音辨識器(例如在 OnRecognitionFinished 廣播之後)。
此外掛支援以32位元浮點交錯PCM格式傳入的音訊。雖然它能與 Runtime Audio Importer 配合良好,但並不直接依賴於它。
辨識參數
此外掛程式支援串流與非串流音訊資料辨識。若要針對您的特定使用情境調整辨識參數,請呼叫 SetStreamingDefaults 或 SetNonStreamingDefaults。此外,您也可以彈性地手動設定個別參數,例如執行緒數量、步長、是否將輸入語言翻譯成英文,以及是否使用先前的轉錄結果。請參閱 辨識參數清單 以取得完整的可用參數清單。
改善效能
請參閱如何提升效能一節,以取得最佳化外掛程式效能的祕訣。在 Android 及基於 Android 的平台上(例如 Meta Quest),也請考慮使用 Vosk 擴充功能,該擴充功能為不支援 whisper.cpp GPU 加速的硬體提供了另一種提供者。
語音活動偵測 (VAD)
在處理音訊輸入時,尤其是在串流情境下,建議使用語音活動偵測(VAD),在音訊片段進入辨識器之前,先過濾掉空白或僅含噪音的片段。此過濾功能可以在可捕獲聲波端使用 Runtime Audio Importer 外掛程式來啟用,這有助於防止語言模型產生幻覺——試圖在噪音中尋找模式並產生錯誤的轉錄文字。
為了獲得最佳的語音辨識結果,我們建議使用 Silero VAD 提供者,其具備卓越的噪音容忍度與更精確的語音偵測。Silero VAD 可作為 Runtime Audio Importer 外掛程式的擴充功能使用。有關 VAD 設定的詳細說明,請參閱語音活動偵測文件。
下方範例中的可複製節點基於相容性原因使用預設的 VAD 提供者。為了提升辨識準確度,您可以輕鬆切換至 Silero VAD,方法如下:
- 按照 Silero VAD 擴充功能一節 所述安裝 Silero VAD 擴充功能
- 使用 Toggle VAD 節點啟用 VAD 後,新增一個 Set VAD Provider 節點,並從下拉式選單中選取「Silero」
在隨附於外掛程式的示範專案中,VAD 預設為啟用。您可以在示範專案中找到更多關於示範實作的資訊。
範例
外掛程式的 Content -> Demo 資料夾中包含了一個良好的專案示範,您可以將其視為實作的範例來使用.
這些範例說明如何使用 Runtime Speech Recognizer 外掛程式處理串流與非串流音訊輸入,並以 Runtime Audio Importer 取得音訊資料作為範例。請注意,您需要另外下載 RuntimeAudioImporter,才能使用範例中所展示的相同音訊匯入功能(例如可捕獲音波與 ImportAudioFromFile)。這些範例僅旨在說明核心概念,並不包含錯誤處理。
串流音訊輸入範例
**注意:**在 UE 5.3 及其他版本中,您可能會在複製 Blueprints 後遇到缺少節點的情況。這可能是由於不同引擎版本之間的節點序列化差異所致。請務必驗證您的實作中所有節點是否正確連接。
1. 基礎串流辨識
此範例示範了使用 Capturable 音波以串流方式從麥克風擷取音訊資料,並將其傳遞給語音辨識器的基本設定。它會錄製約 5 秒的語音,然後處理辨識結果,適合用於快速測試和簡單實作。 可複製節點。
此設定的主要功能:
- 固定 5 秒錄音時長
- 簡單的一次性辨識
- 最低設定需求
- 非常適合測試與原型開發

2. 受控串流辨識
此範例擴充了基本的串流設定,新增了對辨識過程的手動控制。它讓您可以隨意開始和停止辨識,非常適合需要精確控制辨識時機的場景。可複製的節點。
此設定的主要功能:
- 手動開始/停止控制
- 連續辨識能力
- 彈性錄音時長
- 適合互動式應用程式

3. 語音指令辨識
此範例專為指令辨識情境最佳化。它結合串流辨識與語音活動偵測(VAD),當使用者停止說話時自動處理語音。辨識器僅在偵測到靜音時才開始處理累積的語音,使其非常適合基於指令的介面。可複製節點。
此設定的主要功能:
- 手動開始/停止控制
- 語音活動偵測 (VAD) 已啟用,以偵測語音片段
- 偵測到靜音時自動觸發辨識
- 最適合短指令辨識
- 僅辨識實際語音,以減少處理開銷

4. 自動初始化語音辨識與最終緩衝區處理
此範例是語音啟動辨識方法的另一種變體,具有不同的生命週期處理方式。它在初始化期間自動啟動辨識器,並在解初始化期間停止它。一個關鍵功能是,它在停止辨識器之前會處理最後累積的音訊緩衝區,確保使用者在想要結束辨識程序時不會遺失任何語音資料。此設定對於需要在語音中途停止時仍能捕捉完整使用者語句的應用程式特別有用。可複製節點.
此設定的主要特色:
- 在初始化時自動啟動辨識器
- 在解除初始化時自動停止辨識器
- 在完全停止前處理最後的音訊緩衝區
- 使用語音活動偵測 (VAD)以實現高效的辨識
- 確保停止時不遺失任何語音資料

非串流音訊輸入
此範例將音訊資料匯入至已匯入的音波,並在匯入後辨識完整的音訊資料。可複製的節點。
