オーディオ処理ガイド
このガイドでは、Lip Sync ジェネレーターにオーディオデータを供給するためのさまざまなオーディオ入力方法の設定方法について説明します。先にセットアップガイドを完了していることを確認してください。
オーディオ入力処理
オーディオ入力を処理する方法を設定する必要があります。オーディオソースに応じて、いくつかの方法があります。
- マイク (リアルタイム)
- マイク (再生)
- Text-to-Speech (ローカル)
- Text-to-Speech (External APIs)
- オーディオファイル/バッファから
- ストリーミングオーディオバッファ
このアプローチは、マイクに向かって話しながらリアルタイムで Lip Sync を実行します:
- 標準モデル
- リアリスティックモデル
- ムード対応リアリスティックモデル
- Runtime Audio Importer を使用して Capturable Sound Wave を作成します
- オーディオキャプチャを開始する前に、
OnPopulateAudioData
デリゲートにバインドします - バインドされた関数内で、Runtime Viseme Generator から
ProcessAudioData
を呼び出します - マイクからのオーディオキャプチャを開始します
リアリスティックモデルは、標準モデルと同じオーディオ処理ワークフローを使用しますが、VisemeGenerator
の代わりに RealisticLipSyncGenerator
変数を使用します。
このアプローチはマイクから音声をキャプチャし、それをリップシンクで再生します:
- 標準モデル
- リアリスティックモデル
- ムード対応リアリスティックモデル
- Runtime Audio Importerを使用してキャプチャ可能なサウンドウェーブを作成
- マイクからの音声キャプチャを開始
- キャプチャ可能なサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインド - バインドされた関数内で、Runtime Viseme Generatorの
ProcessAudioData
を呼び出し
リアリスティックモデルは標準モデルと同じ音声処理ワークフローを使用しますが、VisemeGenerator
の代わりにRealisticLipSyncGenerator
変数を使用します。
- 通常
- Streaming
このアプローチはローカル TTS を使用してテキストから音声を合成し、リップシンクを実行します:
- 標準モデル
- リアリスティックモデル
- ムード対応リアリスティックモデル
- Runtime Text To Speech を使用してテキストから音声を生成
- Runtime Audio Importer を使用して合成されたオーディオをインポート
- インポートされたサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインド - バインドされた関数内で、Runtime Viseme Generator から
ProcessAudioData
を呼び出し
Runtime Text To Speech プラグインによって提供されるローカル TTS は、ONNX ランタイムの競合により、通常のリアリスティックモデルでは現在サポートされていません。通常のリアリスティックモデルでのテキスト読み上げには、外部の TTS ソリューションの使用を検討するか、代わりに標準モデルを使用してください。
- Runtime Text To Speech を使用してテキストから音声を生成
- Runtime Audio Importer を使用して合成されたオーディオをインポート
- インポートされたサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインド - バインドされた関数内で、Mood-Enabled Lip Sync Generator から
ProcessAudioData
を呼び出し - テキストの内容または望ましい感情表現に基づいてムード設定を構成
ムード統合による TTS:
- TTS 生成の前または最中に適切なムードを設定
- テキストの感情的なトーンに合わせてムードの強度を調整
- 長いテキストコンテンツの異なるセクションに対して異なるムードを使用
このアプローチでは、ストリーミング音声合成とリアルタイムのリップシンクを使用します:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime Text To Speech を使用してテキストからストリーミング音声を生成
- Runtime Audio Importer を使用して合成されたオーディオをインポート
- ストリーミングサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインド - バインドされた関数内で、Runtime Viseme Generator の
ProcessAudioData
を呼び出す
Runtime Text To Speech プラグインによって提供されるローカルTTSは、ONNXランタイムの競合により、通常のRealisticモデルでは現在サポートされていません。通常のRealisticモデルでテキスト読み上げを使用する場合は、外部TTSサービスの使用を検討するか、代わりにStandardモデルを使用してください。
- Runtime Text To Speech を使用してテキストからストリーミング音声を生成
- Runtime Audio Importer を使用して合成されたオーディオをインポート
- ストリーミングサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインド - バインドされた関数内で、Mood-Enabled Lip Sync Generator の
ProcessAudioData
を呼び出す - 必要に応じてストリーミング中にムード設定を動的に調整
- Regular
- Streaming
このアプローチでは、Runtime AI Chatbot Integrator プラグインを使用して、AIサービス(OpenAI や ElevenLabs)から合成音声を生成し、リップシンクを実行します:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime AI Chatbot Integrator を使用して、外部API(OpenAI、ElevenLabsなど)からテキストで音声を生成します
- Runtime Audio Importer を使用して、合成されたオーディオデータをインポートします
- インポートされたサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインドします - バインドされた関数内で、Runtime Viseme Generator から
ProcessAudioData
を呼び出します
リアリスティックモデルは、Standard Model と同じオーディオ処理ワークフローを使用しますが、VisemeGenerator
の代わりに RealisticLipSyncGenerator
変数を使用します。
このアプローチでは、Runtime AI Chatbot Integrator プラグインを使用して、AIサービス(OpenAI または ElevenLabs)から合成されたストリーミング音声を生成し、Lip Sync を実行します:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Runtime AI Chatbot Integrator を使用して、ストリーミング TTS API(例:ElevenLabs Streaming API)に接続します
- Runtime Audio Importer を使用して、合成されたオーディオデータをインポートします
- ストリーミングサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインドします - バインドされた関数内で、Runtime Viseme Generator から
ProcessAudioData
を呼び出します
Realistic Model は、Standard Model と同じオーディオ処理ワークフローを使用しますが、VisemeGenerator
の代わりに RealisticLipSyncGenerator
変数を使用します。
Mood-Enabled Model は同じオーディオ処理ワークフローを使用しますが、MoodMetaHumanLipSyncGenerator
変数と追加のムード設定機能を使用します。
このアプローチでは、事前に録音されたオーディオファイルまたはオーディオバッファを使用してリップシンクを行います:
- 標準モデル
- リアリスティックモデル
- ムード対応リアリスティックモデル
- Runtime Audio Importer を使用して、ディスクまたはメモリからオーディオファイルをインポートします
- インポートしたサウンドウェーブを再生する前に、その
OnGeneratePCMData
デリゲートにバインドします - バインドされた関数内で、Runtime Viseme Generator の
ProcessAudioData
を呼び出します - インポートしたサウンドウェーブを再生し、リップシンクアニメーションを観察します
リアリスティックモデルは標準モデルと同じオーディオ処理ワークフローを使用しますが、VisemeGenerator
の代わりに RealisticLipSyncGenerator
変数を使用します。
ストリーミングオーディオデータをバッファから処理するには、以下が必要です:
- 標準モデル
- リアリスティックモデル
- ムード対応リアリスティックモデル
- ストリーミングソースから利用可能な float PCM 形式(浮動小数点サンプルの配列)のオーディオデータ(または Runtime Audio Importer を使用してより多くのフォーマットをサポート)
- サンプルレートとチャンネル数
- オーディオチャンクが利用可能になるたびに、Runtime Viseme Generator の
ProcessAudioData
をこれらのパラメータで呼び出します
リアリスティックモデルは、Standard Modelと同じオーディオ処理ワークフローを使用しますが、VisemeGenerator
の代わりにRealisticLipSyncGenerator
変数を使用します。
注意: ストリーミングオーディオソースを使用する場合は、歪んだ再生を避けるために、オーディオ再生のタイミングを適切に管理してください。詳細はストリーミングサウンドウェーブのドキュメントを参照してください。
処理パフォーマンスのヒント
-
チャンクサイズ: より応答性の高いリップシンクのためにオーディオデータを小さなチャンクで処理したい場合は、
SetNumSamplesPerChunk
関数の計算を調整してください。例えば、サンプルレートを100で割る(10msごとにストリーミング)代わりに150で割る(約6.67msごとにストリーミング)と、より頻繁なリップシンクの更新が行われます。 -
バッファ管理: ムード対応モデルは320サンプルのフレーム(16kHzで20ms)でオーディオを処理します。最適なパフォーマンスのために、オーディオ入力のタイミングがこれに合うようにしてください。
-
ジェネレーターの再作成: リアリスティックモデルで信頼性の高い操作を行うためには、非アクティブ期間後に新しいオーディオデータを供給したい場合に毎回ジェネレーターを再作成してください。
次のステップ
オーディオ処理の設定が完了したら、以下のことも検討してください: