mcpField
C
comfyui-voice-pipeline

comfyui-voice-pipeline

github.com/mckruzクリエイティブ・メディア92402 回インストール32 週間前に更新
リポジトリ

comfyui-voice-pipeline について

comfyui-voice-pipelineは、TTSや音声クローンでキャラクターの声を作り、生成動画と同期させるスキルです。ツール選定、台本準備、音声処理、リップシンクの手順を扱います。

主な機能

  1. 01音声生成ツールの選定ガイド
  2. 02音声クローンとTTSの選択肢
  3. 03音声合成用スクリプトの準備
  4. 04音声処理と形式のガイド
  5. 05リップシンク手法とワークフロー

活用シーン

  1. 01キャラクター動画の台詞作成
  2. 02参照音声に応じた音声ツールの選定
  3. 03TTS用の複数話者スクリプト作成
  4. 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 用のテキスト書式設定
  1. 句読点が重要です:読点は間を作り、句点は発話を止めます
  2. 発音のヒント:発音を間違えやすい珍しい単語は、音声表記で記述します
  3. 感情の手がかり:Chatterbox のタグを使用するか、IndexTTS-2 では感情ごとに分割します
  4. 長さ: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/ 内のキャラクター音声プロファイル

コメント