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

プラグインの使用方法

Runtime Speech Recognizer プラグインは、入力される音声データから単語を認識するように設計されています。このプラグインは、エンジンと連携するために whisper.cpp の若干修正されたバージョンを使用します。プラグインを使用するには、以下の手順に従ってください。

エディター側

  1. プロジェクトに適した言語モデルを選択してください。その手順は こちら に記載されています。

ランタイム側

  1. Speech Recognizer を作成し、必要なパラメータを設定します(CreateSpeechRecognizer、パラメータの詳細は こちら)。
  2. 必要なデリゲートをバインドします(OnRecognitionFinished, OnRecognizedTextSegment, OnRecognitionError)。
  3. StartSpeechRecognition を実行し、音声認識を開始します。
  4. 音声データを処理し、デリゲートからの結果を待ちます(ProcessAudioData)。
  5. 必要に応じて Speech Recognizer を停止します(例: OnRecognitionFinished ブロードキャストの後など)。

このプラグインは、浮動小数点 32-bit インターリーブ PCM 形式 の音声入力をサポートしています。Runtime Audio Importer と併用すると便利ですが、直接依存しているわけではありません。

認識パラメータ

このプラグインは、ストリーミングおよび非ストリーミングの音声データ認識の両方に対応しています。用途に応じて SetStreamingDefaults または SetNonStreamingDefaults を呼び出して認識パラメータを調整できます。また、スレッド数、ステップサイズ、言語を英語に翻訳するかどうか、過去のトランスクリプションを使用するかどうかなど、個別のパラメータを手動で設定することも可能です。利用可能なパラメータの完全なリストについては、認識パラメータリスト を参照してください。

パフォーマンスの向上

パフォーマンスを最適化する方法については、パフォーマンス改善方法 のセクションを参照してください。

音声活動検出 (VAD)

ストリーミング音声データを処理する際は、音声活動検出 (VAD) を使用して、無音やノイズのみの音声データが認識エンジンに送られないようにすることを推奨します。このフィルタリングは、Capturable sound wave 側で有効にでき、Runtime Audio Importer プラグインを使用すると実装が容易になります。これにより、モデルがノイズ中のパターンを誤って認識し、不正確なトランスクリプションを生成するのを防ぐことができます。VAD の設定方法については、音声活動検出のドキュメント を参照してください。

このプラグインに付属するデモプロジェクトでは、VAD がデフォルトで有効になっています。デモ実装の詳細については、デモプロジェクト をご覧ください。

サンプル

プラグインの Content -> Demo フォルダ内に、実装の参考になるデモプロジェクトが含まれています

これらのサンプルは、Runtime Speech Recognizer プラグインをストリーミングおよび非ストリーミングの音声入力で使用する方法を示しており、Runtime Audio Importer を用いて音声データを取得する例が含まれています。なお、これらのサンプルを動作させるには、Runtime Audio Importer を別途ダウンロードする必要があります(例: Capturable Sound Wave や ImportAudioFromFile 機能を使用する場合)。これらのサンプルは、基本概念を示すものであり、エラーハンドリングは含まれていません。

ストリーミング音声入力のサンプル

注意: UE 5.3 などのバージョンでは、Blueprint のコピー後にノードが欠損する場合があります。これは、エンジンのバージョン間でノードのシリアライズ方法が異なるために発生する可能性があります。常にノードが正しく接続されていることを確認してください。

1. 基本的なストリーミング認識

この例では、Capturable Sound Wave を用いたマイク入力の音声ストリームを Speech Recognizer に渡す基本的な設定を示します。約 5 秒間音声を録音した後に認識を実行する方式で、簡単なテストや基本的な実装に適しています。コピー可能なノード

この設定の主な特徴:

  • 固定 5 秒間の録音時間
  • シンプルなワンショット認識
  • 最小限のセットアップ
  • テストやプロトタイピングに最適

2. 制御可能なストリーミング認識

この例では、基本的なストリーミング設定を拡張し、認識プロセスを手動で制御できるようにします。これにより、特定のタイミングで認識を開始・停止可能となり、認識の制御が求められるシナリオに適しています。コピー可能なノード

この設定の主な特徴:

  • 手動での開始・停止制御
  • 連続認識機能
  • 柔軟な録音時間
  • インタラクティブアプリケーション向け

3. 音声認識を用いたコマンド認識

この例では、コマンド認識を最適化するためにストリーミング認識と 音声活動検出 (VAD) を組み合わせています。VAD により、ユーザーが話し終えると認識が自動でトリガーされる仕組みになっており、コマンドベースのインターフェースに最適です。コピー可能なノード

この設定の主な特徴:

  • 手動での開始・停止制御
  • VAD による音声セグメントの検出
  • 無音が検出されると自動で認識を開始
  • 短いコマンド認識に最適
  • 実際の音声のみを認識することで処理負荷を軽減

非ストリーミング音声入力

この例では、音声データを Imported Sound Wave にインポートし、インポート後に全体を認識します。コピー可能なノード