comfyui-voice-pipeline について
comfyui-voice-pipelineは、TTSや音声クローンでキャラクターの声を作り、生成動画と同期させるスキルです。ツール選定、台本準備、音声処理、リップシンクの手順を扱います。
主な機能
- 01音声生成ツールの選定ガイド
- 02音声クローンとTTSの選択肢
- 03音声合成用スクリプトの準備
- 04音声処理と形式のガイド
- 05リップシンク手法とワークフロー
活用シーン
- 01キャラクター動画の台詞作成
- 02参照音声に応じた音声ツールの選定
- 03TTS用の複数話者スクリプト作成
- 04生成音声とキャラクター動画の同期
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mckruz/ comfyui-expert --skill comfyui-voice-pipelineインストール後、Claude Code で/comfyui-voice-pipelineを入力して読み込まれたか確認します。
詳細
ComfyUI 音声パイプライン
TTS/ボイスクローニングでキャラクターの音声を生成し、生成した動画と同期させます。
音声生成の選択フロー
VOICE REQUEST
|
|-- Have reference audio of target voice?
| |-- Yes (5+ seconds) → Chatterbox (MIT, paralinguistic tags)
| |-- Yes (10-15 seconds) → F5-TTS (fastest zero-shot)
| |-- Yes (10+ minutes) → RVC training (highest fidelity)
| |-- Yes (any length, budget) → ElevenLabs (production quality)
|
|-- No reference audio?
| |-- Need emotion control → IndexTTS-2 (8-emotion vectors)
| |-- Need multi-language → TTS Audio Suite (23 languages)
| |-- Need voice design → ElevenLabs Voice Design (describe voice)
| |-- Quick prototype → Any TTS with default voice
|
|-- Need multi-speaker dialog?
| |-- Chatterbox (4 voices) or TTS Audio Suite (character switching)
|
|-- Need lip-sync?
| |-- Best accuracy → Wav2Lip + CodeFormer
| |-- Need head movement → SadTalker
| |-- Full expression control → LivePortrait
| |-- Unlimited length → InfiniteTalk
ツールリファレンス
Chatterbox(推奨オープンソース)
強み:MIT ライセンス、ブラインドテストで ElevenLabs を 63.8% 上回る、5 秒のサンプル、感情制御、200 ミリ秒未満のレイテンシー。
パラ言語タグ:
[laugh] [chuckle] [sigh] [gasp] [cough] [clear throat]
[whisper] [excited] [sad] [angry] [surprised]
主要パラメーター:exaggeration(0.25-2.0)で表現力を制御します。
制限:生成時間は最大 40 秒です。それより長いコンテンツは分割してください。
F5-TTS
強み:ゼロショットクローニングで最速、15 秒未満のサンプル、MIT ライセンス、多言語対応。
要件:参照音声は .wav と .txt(文字起こしの内容が一致するもの)を組み合わせる必要があります。
対応言語:英語、ドイツ語、スペイン語、フランス語、日本語、ヒンディー語、タイ語、ポルトガル語。
TTS Audio Suite
強み:複数エンジンを統合したプラットフォーム、23 言語、キャラクター切り替え。
特別な機能:
- キャラクター切り替え:
[CharacterName]タグ - 言語切り替え:
[de:Alice]、[fr:Bob] - ポーズ制御:
[pause:1s] - SRT タイミング同期
統合対象:F5-TTS、Chatterbox、Higgs Audio 2、VibeVoice、IndexTTS-2、RVC。
IndexTTS-2
強み:セグメントごとのパラメーターを指定できる、8 種類の感情ベクトル制御。
感情:happy、angry、sad、surprised、afraid、disgusted、calm、melancholic。
RVC(ボイス変換)
用途:対象の声の音声を 10 分以上学習させてモデルを作成し、任意の TTS 出力を変換します。
パイプライン:テキスト → 任意の TTS → ベース音声 → RVC モデル → キャラクターの声
学習:300~500 エポック、RMVPE 特徴抽出。
ElevenLabs(商用)
プラン:
- インスタントクローニング:1 分のサンプルで、良好な品質
- プロフェッショナルクローニング:30 分以上(理想は 3 時間)で、ほとんど区別できない品質
- ボイスデザイン:テキストで声を説明します(サンプル不要)
音声プロファイルの設定
各キャラクターについて、projects/{project}/characters/{name}/profile.yaml に音声プロファイルを設定します。
voice:
cloned: true
model: "chatterbox"
sample_file: "references/voice_sample.wav"
settings:
exaggeration: 1.2
default_emotion: "neutral"
notes: "Warm, confident tone. Slight Italian-American undertones."
スクリプトの準備
TTS 用のテキスト書式設定
- 句読点が重要です:読点は間を作り、句点は発話を止めます
- 発音のヒント:発音を間違えやすい珍しい単語は、音声表記で記述します
- 感情の手がかり:Chatterbox のタグを使用するか、IndexTTS-2 では感情ごとに分割します
- 長さ:Chatterbox の制限に合わせて、30~40 秒のセグメントに分割します
複数話者のスクリプト
[Sage] Hello! *laughs* I've been looking forward to this.
[pause:0.5s]
[Alex] [excited] Same here! Let's dive right in.
[Sage] [whisper] But first, I need to tell you something...
音声の後処理
リップシンク入力の要件
- サンプルレート:16~24kHz(モデルによって異なります)
- 形式:WAV(非圧縮)
- モノラルチャンネル
- 先頭の無音部分をトリミング
- 末尾に 0.2 秒の無音部分を追加
- ピークを -3dB にノーマライズ
FFmpeg による処理
# Convert to mono 24kHz WAV, normalized
ffmpeg -i input.wav -ac 1 -ar 24000 -af "loudnorm=I=-16:TP=-3" output.wav
# Trim silence from start/end
ffmpeg -i input.wav -af "silenceremove=start_periods=1:start_threshold=-50dB,areverse,silenceremove=start_periods=1:start_threshold=-50dB,areverse" trimmed.wav
# Concatenate segments
ffmpeg -f concat -safe 0 -i filelist.txt -c copy combined.wav
リップシンクの方法
Wav2Lip(最高精度)
設定:
wav2lip_model: "wav2lip_gan.pth" # Better than wav2lip.pth
face_detect_batch: 16
nosmooth: false
pad_bottom: 10
必ず後処理してください:Wav2Lip の出力後に CodeFormer(忠実度 0.7)を適用します。
SadTalker(頭部の動き)
設定:
preprocess: "full" # Better for novel faces
enhancer: "gfpgan"
pose_style: 10-20 # Natural conversation range
LivePortrait(表情制御)
設定:
lip_zero: 0.03 # Reduces unnatural lip movement
stitching: true # Seamless face blending
最適な用途:高品質なアバターの作成、駆動動画からの表情転写。
LatentSync 1.6(最新、最高品質)
時間的な一貫性を実現する TREPA モジュールを備えた、512x512 で学習された ByteDance のモデルです。
InfiniteTalk(長さ無制限)
標準的なリップシンクの制限を超える長さの動画に使用します。Wan と統合して、同時に生成できます。
トーキングヘッドの完全なワークフロー
パイプライン A:クイック(画像 → 会話)
1. [Text] → Chatterbox/F5-TTS → audio.wav
2. [Character Image] + audio.wav → SadTalker → video.mp4
3. video.mp4 → GFPGAN/CodeFormer → final.mp4
所要時間:約 2 分。品質:良好。
パイプライン B:高品質(画像 → 動画 → リップシンク)
1. [Text] → Chatterbox → audio.wav
2. [Character Image] → Wan I2V → base_video.mp4
Prompt: "person talking, slight head movement, indoor"
3. base_video.mp4 + audio.wav → Wav2Lip → lipsync.mp4
4. lipsync.mp4 → FaceDetailer batch → enhanced.mp4
5. enhanced.mp4 → Color correct + Deflicker → final.mp4
所要時間:約 10 分。品質:プロダクション品質。
パイプライン C:プレミアム(表情転写)
1. Record driving video (actor performing lines)
2. [Text] → Voice Clone TTS → audio.wav
3. [Character Image] + driving.mp4 → LivePortrait → expression_video.mp4
4. expression_video.mp4 + audio.wav → Wav2Lip → lipsync.mp4
5. lipsync.mp4 → CodeFormer → final.mp4
所要時間:約 15 分。品質:プレミアム。
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| 音声が同期していない | ffmpeg でオフセットを調整します:ffmpeg -itsoffset 0.1 -i audio.wav ... |
| 口の動きが小さい | wav2lip_gan.pth を使用し、音量を上げます |
| 顔にアーティファクトが発生する | CodeFormer(忠実度 0.6-0.8)で後処理します |
| ボイスクローンがロボットのように聞こえる | より長く、よりクリアな参照音声を使用し、exaggeration を上げます |
| 頭の動きが不自然 | SadTalker の pose_style を 0-10 に下げます |
リファレンス
references/voice-synthesis.md- 音声ツールの完全なドキュメントreferences/models.md- 音声モデルのダウンロードリンクprojects/{project}/characters/内のキャラクター音声プロファイル