メインコンテンツまでスキップ

プラグインの使用方法

Runtime Speech Recognizer プラグインは、入力されるオーディオデータから単語を認識するように設計されています。エンジンで動作するため、whisper.cppの若干修正版を使用しています。プラグインを使用するには、以下の手順に従ってください:

エディター側

  1. プロジェクトに適した言語モデルを選択します(詳細はこちらを参照)。

ランタイム側

  1. Speech Recognizerを作成し、必要なパラメータを設定します(CreateSpeechRecognizer、パラメータについてはこちらを参照)。
  2. 必要なデリゲートにバインドします(OnRecognitionFinishedOnRecognizedTextSegmentOnRecognitionError)。
  3. 音声認識を開始します(StartSpeechRecognition)。
  4. オーディオデータを処理し、デリゲートからの結果を待ちます(ProcessAudioData)。
  5. 必要に応じて(例: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)を有効にして音声セグメントを検出
  • 無音が検出されたときに自動的に認識をトリガー
  • 短いコマンド認識に最適
  • 実際の音声のみを認識することで処理オーバーヘッドを削減

4. 最終バッファ処理を伴う自動初期化音声認識

この例は、異なるライフサイクル処理を備えた音声アクティベート認識アプローチの別のバリエーションです。初期化時に認識器を自動的に開始し、非初期化時に停止します。重要な機能は、認識器を停止する前に最後に蓄積されたオーディオバッファを処理することで、ユーザーが認識プロセスを終了したいときに音声データが失われないようにします。このセットアップは、ユーザーの発話を完全にキャプチャする必要があるアプリケーション、特に途中で停止する場合に特に有用です。コピー可能なノード

このセットアップの主な特徴:

  • 初期化時に認識器を自動開始
  • 非初期化時に認識器を自動停止
  • 完全に停止する前に最終オーディオバッファを処理
  • 効率的な認識のために音声活動検出(VAD)を使用
  • 停止時に音声データが失われないことを保証

非ストリーミングオーディオ入力

この例では、Imported sound waveにオーディオデータをインポートし、インポートが完了したら完全なオーディオデータを認識します。コピー可能なノード