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

音声活動検出

ストリーミングサウンドウェーブと、キャプチャ可能サウンドウェーブなどの派生タイプは、音声活動検出(VAD)をサポートしています。VADは入力されるオーディオデータをフィルタリングし、音声が検出された場合にのみ内部バッファを埋めます。

このプラグインは2つのVAD実装を提供します:

デフォルト実装はlibfvadを使用しています。これは軽量な音声活動検出ライブラリで、Runtime Audio Importerがサポートするすべてのプラットフォームとエンジンバージョンで効率的に動作します。

基本的な使用方法

サウンドウェーブ作成後にVADを有効にするには、ToggleVAD関数を使用します:

Toggle VADノード

VADを有効にした後、いつでもリセットできます:

VADノードをリセット

デフォルトのVAD設定

デフォルトのVADプロバイダーを使用する場合、VADモードを変更することでその積極性を調整できます:

Set VAD Modeノード

modeパラメータは、VADが音声をフィルタリングする積極性を制御します。値が高いほど制限的になり、誤検出を報告する可能性が低くなりますが、一部の音声を見逃す可能性があります。

VADプロバイダー

ToggleVAD関数でVADを有効にした後、ニーズに合わせてさまざまな音声活動検出プロバイダーを選択できます。デフォルトのプロバイダーは組み込みですが、Silero VADなどの追加プロバイダーは拡張プラグインを通じて利用可能です。

Set VAD Providerノード

Silero VAD 拡張機能

Silero VAD はニューラルネットワークを使用してより正確な音声検出を提供します。使用方法:

  1. Runtime Audio Importer プラグインがプロジェクトに既にインストールされていることを確認してください

  2. UE 5.5 以前の場合: Silero VAD 拡張機能プラグインをダウンロードする前に、プロジェクトで NNERuntimeORT が無効になっていることを確認してください。NNERuntimeORT が有効になっていると、これらのエンジンバージョンで Silero VAD を使用する際に競合によりクラッシュが発生する可能性があります

  3. Google Drive から Silero VAD 拡張機能プラグインをダウンロードしてください

  4. ダウンロードしたアーカイブからフォルダを抽出し、プロジェクトの Plugins フォルダに配置してください(このフォルダが存在しない場合は作成してください)

  5. UE 5.6 以降の場合: RuntimeAudioImporterSileroVAD.uplugin ファイルを編集して NNERuntimeORT 依存関係を追加します。"Plugins" フィールドで、RuntimeAudioImporter の包含後に以下を追加します:

   ,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. プロジェクトを再ビルドしてください(この拡張機能は C++ プロジェクトが必要です)
important
  • デフォルトの VAD は、Runtime Audio Importer がサポートするすべてのエンジンバージョン (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 および 5.7) で動作します

  • Silero VAD は Unreal Engine 4.27 およびすべての UE5 バージョン (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 および 5.7) をサポートします

  • UE 5.5 以前: プラグインの競合によるクラッシュを防ぐため、Silero VAD を使用する前に NNERuntimeORT を無効にする必要があります

  • UE 5.6+ 要件: Unreal Engine 5.6 以降、Silero VAD 拡張機能を使用するには、NNERuntimeORT プラグインの依存関係を .uplugin ファイルに手動で追加する必要があります

  • Silero VAD は Windows、Linux、Mac、Android (Meta Quest を含む)、および iOS で利用可能です

  • この拡張機能はソースコードとして提供され、使用するには C++ プロジェクトが必要です

  • プラグインを手動でビルドする方法の詳細については、Building Plugins チュートリアルを参照してください

インストール後、SetVADProvider 関数で Silero クラスプロバイダーを使用して、VAD プロバイダーとして選択できます。

音声開始と終了の検出

Voice Activity Detection (VAD) は音声の存在を検出するだけでなく、音声活動の開始と終了の検出も可能にします。これは、再生またはキャプチャ中に音声が開始または終了したときにイベントをトリガーするのに役立ちます。

最小音声継続時間や無音継続時間などのパラメータを調整することで、音声開始と終了の検出の感度をカスタマイズできます。これらのパラメータは、短いノイズや音声間の短すぎるポーズなどの誤検出を避けるために検出を微調整するのに役立ちます。

最小音声継続時間

最小音声継続時間 パラメータは、音声開始イベントをトリガーするために必要な連続した音声活動の最小量を設定します。これは、音声と見なされるべきではない短いノイズを除外し、持続的な音声活動のみが認識されるようにするのに役立ちます。最小音声継続時間 のデフォルト値は 300 ミリ秒 です。

Set Minimum Speech Duration node

無音期間

無音期間パラメータは、音声終了イベントをトリガーするために必要な無音の長さを設定します。これにより、単語や文の間の自然なポーズ中に音声検出が早期に終了するのを防ぎます。無音期間のデフォルト値は500ミリ秒です。

Set Silence Duration node

音声デリゲートへのバインド

音声の開始時または終了時に特定のデリゲートにバインドできます。これは、音声認識の開始や停止、他のオーディオソースの音量調整など、音声アクティビティに基づいてカスタム動作をトリガーする場合に便利です。

Bind Event To On Speech Started Bind Event To On Speech Ended

VADプロバイダーの比較

デフォルトVAD (libfvad)

利点:

  • 軽量で効率的
  • すべてのプラットフォームで動作
  • 最小限のリソース使用
  • モバイルおよび低電力デバイスに適している

最適な用途:

  • 静かな環境でのシンプルな音声検出
  • モバイルアプリケーション
  • パフォーマンスが優先されるプロジェクト
  • ユニバーサルなプラットフォームサポートが必要な場合