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

キャプチャ可能なサウンドウェーブ

Voice Activity Detection (VAD) に関しては、このページを参照してください。

Streaming Sound Waveから派生したキャプチャ可能なサウンドウェーブがあります。このサウンドウェーブは、マイクなどの入力デバイスからオーディオデータをキャプチャし、再生することが可能です。また、インポートされたサウンドウェーブと同じ機能(巻き戻し、SoundCuesでの使用など)を備えています。さらに、音声のキャプチャと再生を同時に行うことが、制限なしに可能です。

キャプチャを開始すると、iOSおよびAndroid上で自動的にマイクの権限をリクエストします。

まず、キャプチャ可能なサウンドウェーブを作成する必要があります。このサウンドウェーブは、強参照として扱い、早期破壊を防ぐようにしてください(例: Blueprintsで別の変数に割り当てる、またはC++でUPROPERTY()を使用するなど)。

Create Capturable Sound Wave node


この機能を使用するには、まず、対応する関数を呼び出して、キャプチャに使用できるすべての利用可能な音声入力デバイスを取得する必要があります。

Get Available Audio Input Devices node


その後、入力デバイスからオーディオデータのキャプチャを開始し、必要に応じて停止することができます。DeviceIdは、前のステップで取得された利用可能なデバイスの配列内のデバイスのインデックスです。

キャプチャ開始および停止ノード


さらに、サウンドキャプチャのミュートまたはミュート解除を選択することができ、音声データの蓄積を防ぎながらキャプチャプロセスを中断しないようにします。これは、キャプチャを頻繁に切り替える場合に便利です。なぜなら、StartCapture を使用して録音を開始すると、エンジン側で若干のハッチが発生する可能性があるからです。最初にキャプチャ自体を開始し、その後にミュートまたはミュート解除する必要があります。

もしごく僅かなフリーズを排除したいのであれば、このフリーズが目立ちにくいタイミングでキャプチャを開始することを検討してみてください。たとえば、ゲームのロード画面中にキャプチャを開始し、その直後にキャプチャ可能なサウンドウェーブをミュートし、オーディオデータをキャプチャする必要があるときにミュート解除を行う方法があります。

ミュート切り替えノード


最後に、実装は次のようになります:

キャプチャ可能なサウンドウェーブを使用する例