プラグインの使用方法
Runtime Speech Recognizer プラグインは、入力されるオーディオデータから単語を認識するように設計されています。エンジンで動作するため、whisper.cppの若干修正版を使用しています。プラグインを使用するには、以下の手順に従ってください:
エディター側
- プロジェクトに適した言語モデルを選択します(詳細はこちらを参照)。
ランタイム側
- Speech Recognizerを作成し、必要なパラメータを設定します(CreateSpeechRecognizer、パラメータについてはこちらを参照)。
- 必要なデリゲートにバインドします(OnRecognitionFinished、OnRecognizedTextSegment、OnRecognitionError)。
- 音声認識を開始します(StartSpeechRecognition)。
- オーディオデータを処理し、デリゲートからの結果を待ちます(ProcessAudioData)。
- 必要に応じて(例:OnRecognitionFinishedブロードキャスト後)、音声認識を停止します。
このプラグインは、32ビット浮動小数点インターリーブPCM形式の入力オーディオをサポートしています。Runtime Audio Importerとの連携に適していますが、直接の依存関係はありません。
認識パラメータ
プラグインは、ストリーミングおよび非ストリーミングオーディオデータの認識をサポートしています。特定のユースケースに合わせて認識パラメータを調整するには、SetStreamingDefaults
またはSetNonStreamingDefaults
を呼び出します。さらに、スレッド数、ステップサイズ、入力言語を英語に翻訳するかどうか、過去の転記を使用するかどうかなど、個々のパラメータを手動で設定する柔軟性があります。利用可能なパラメータの完全なリストについては、認識パラメータリストを参照してください。
パフォーマンスの向上
プラグインのパフォーマンスを最適化する方法については、パフォーマンス向上の方法セクションを参照してください。
音声活動検出(VAD)
オーディオ入力、特にストリーミングシナリオを処理する際には、音声活動検出(VAD)を使用して、認識器に到達する前に空またはノイズのみのオーディオセグメントをフィルタリングすることをお勧めします。このフィルタリングは、Runtime Audio Importerプラグインを使用してキャプチャ可能なサウンドウェーブ側で有効にでき、言語モデルがノイズ内でパターンを見つけようとして誤った転記を生成するのを防ぎます。VAD設定の詳細な手順については、音声活動検出ドキュメントを参照してください。
プラグインに含まれるデモプロジェクトでは、VADはデフォルトで有効になっています。デモ実装の詳細については、デモプロジェクトをご覧ください。
例
プラグインのContent -> Demoフォルダに含まれる優れたプロジェクトデモがあり、実装の例として使用できます。
これらの例は、Runtime Speech Recognizerプラグインをストリーミングおよび非ストリーミングオーディオ入力で使用する方法を示しており、Runtime Audio Importerを使用してオーディオデータを取得する例として使用されています。例で示されている同じオーディオインポート機能セット(キャプチャ可能なサウンドウェーブやImportAudioFromFileなど)にアクセスするには、RuntimeAudioImporterの個別ダウンロードが必要であることに注意してください。これらの例はコアコンセプトを説明することを目的としており、エラーハンドリングは含まれていません。
ストリーミングオーディオ入力の例
注: UE 5.3および他のバージョンでは、Blueprintsをコピーした後にノードが欠落している場合があります。これはエンジンバージョン間 でのノードシリアライゼーションの違いによる可能性があります。実装ではすべてのノードが適切に接続されていることを常に確認してください。
1. 基本的なストリーミング認識
この例は、Capturable sound waveを使用してマイクからオーディオデータをストリームとしてキャプチャし、それを音声認識器に渡すための基本的なセットアップを示しています。約5秒間の音声を録音し、その認識を処理するため、簡単なテストやシンプルな実装に適しています。コピー可能なノード。
このセットアップの主な特徴:
- 固定5秒間の録音時間
- シンプルなワンショット認識
- 最小限のセットアップ要件
- テストとプロトタイピングに最適
2. 制御されたストリーミング認識
この例は、基本的なストリーミングセットアップを拡張し、認識プロセスに対する手動制御を追加し ています。認識を任意のタイミングで開始および停止できるため、認識が発生するタイミングを正確に制御する必要があるシナリオに適しています。コピー可能なノード。
このセットアップの主な特徴:
- 手動開始/停止制御
- 連続認識機能
- 柔軟な録音時間
- インタラクティブアプリケーションに適しています
3. 音声アクティベートコマンド認識
この例は、コマンド認識シナリオに最適化されています。ストリーミング認識と音声活動検出(VAD)を組み合わせて、ユーザーが話し終えたときに自動的に音声を処理します。認識器は、無音が検出されたときにのみ蓄積された音声の処理を開始するため、コマンドベースのインターフェースに理想的です。コピー可能なノード。
このセットアップの主な特徴:
- 手動開始/停止制御
- 音声活動検出(VAD)を有効にして音声セグメントを検出