Communitygithub.com

babysor/MockingBird

Kokoro または Noiz を使用してテキストを音声に変換します。シンプルモードとタイムライン同期モードをサポートします。

MockingBird とは?

このスキルは、テキストを音声に変換するための多機能なツール(babysor/MockingBird)です。2つのバックエンド(ローカルで動作するKokoro、クラウドベースのNoiz)をサポートし、用途に応じて柔軟に選択できます。シンプルモードではテキストを直接音声ファイルに変換し、タイムラインモードではSRTファイルを使用してセグメントごとにタイミングを調整した音声を生成できるため、吹き替えや字幕読み上げに最適です。さらに、Noizでは音声クローン(参照音声を使用した声の再現)や感情制御パラメータ(emo)も利用可能で、高度な音声合成が実現できます。各セグメントに異なる声を割り当てるボイスマップ機能も備えており、動画やオーディオブック制作のワークフローを効率化します。ffmpegが必須で、Noizを利用するにはAPIキーが必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/babysor/MockingBird/tree/HEAD/skills/speak

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

speak

任意のテキストを音声に変換します。2つのバックエンド(Kokoro ローカル、Noiz クラウド)、2つのモード(シンプルまたはタイムライン対応)、およびセグメントごとの音声制御をサポートします。

トリガー

  • テキスト読み上げ / 話す / 音声合成
  • 声のクローン / 吹き替え
  • EPUBを音声に / SRTを音声に / 音声に変換

シンプルモード — テキストを音声に

# Kokoro(インストールされている場合は自動検出)
bash skills/speak/scripts/tts.sh speak -t "Hello world" -v af_sarah -o hello.wav
bash skills/speak/scripts/tts.sh speak -f article.txt -v zf_xiaoni --lang cmn -o out.mp3 --format mp3

# Noiz(NOIZ_API_KEY が設定されている場合は自動検出、または --backend noiz で強制)
# --voice-id を省略すると、利用可能なビルトインボイスが5つ表示され終了します。
# 出力から1つ選び、--voice-id <id> を付けて再実行してください。
bash skills/speak/scripts/tts.sh speak -f input.txt --voice-id voice_abc --auto-emotion --emo '{"Joy":0.5}' -o out.wav

# Noiz: オプション --duration(浮動小数点数、秒、範囲(0, 36])で目標の音声長を指定
bash skills/speak/scripts/tts.sh speak -t "Short line" --voice-id voice_abc --duration 3.5 -o out.wav

# 音声クローン(Noizのみ — voice-id不要、参照音声を使用)
# 自分の参照音声を使用:ローカルファイルパスまたはURL(Noiz使用時のみ)
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio ./ref.wav -o clone.wav
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio https://example.com/my_voice.wav -o clone.wav

タイムラインモード — SRTを時間同期音声に

セグメントごとの正確なタイミング調整(吹き替え、字幕、ビデオナレーション)に使用します。

ステップ1: SRTを取得または作成

ユーザーがSRTを持っていない場合は、テキストから生成します:

bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt
bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt --cps 15 --gap 500

--cps = 1秒あたりの文字数(デフォルト4、中国語に適しています。英語では約15)。エージェントは手動でSRTを作成することもできます。

ステップ2: ボイスマップを作成

デフォルト+セグメントごとの音声設定を制御するJSONファイル。segments キーは単一インデックス "3" または範囲 "5-8" をサポートします。

Kokoro ボイスマップ:

{
  "default": { "voice": "zf_xiaoni", "lang": "cmn" },
  "segments": {
    "1": { "voice": "zm_yunxi" },
    "5-8": { "voice": "af_sarah", "lang": "en-us", "speed": 0.9 }
  }
}

Noiz ボイスマップ(emo、reference_audio を追加サポート)。reference_audio はローカルパスまたはURL(ユーザー自身の音声、Noizのみ):

{
  "default": { "voice_id": "voice_123", "target_lang": "zh" },
  "segments": {
    "1": { "voice_id": "voice_host", "emo": { "Joy": 0.6 } },
    "2-4": { "reference_audio": "./refs/guest.wav" }
  }
}

動的参照音声スライシング: 動画を翻訳または吹き替えしていて、各文が元の動画の同じタイムスタンプの音声を自動的に参照音声として使用したい場合は、マップに reference_audio を設定する代わりに --ref-audio-track 引数を使用します:

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --ref-audio-track original_video.mp4 -o output.wav

完全なサンプルは examples/ を参照してください。

ステップ3: レンダリング

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json -o output.wav
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --backend noiz --auto-emotion -o output.wav

選択の基準

ニーズ推奨
テキストをとにかく読み上げるだけでよいKokoro(デフォルト)
EPUB/PDFオーディオブック(チャプター分割)Kokoro(ネイティブサポート)
音声ブレンド("v1:60,v2:40")Kokoro
参照音声からの音声クローンNoiz
感情制御(emo パラメータ)Noiz
セグメントごとの正確なサーバーサイド長指定Noiz

ユーザーが感情制御+音声クローン+正確な長さ指定を同時に必要とする場合、Noizのみが3つすべてをサポートするバックエンドです。

要件

  • ffmpeg がPATHに含まれていること(タイムラインモード)
  • Noiz: developers.noiz.ai でAPIキーを取得し、bash skills/speak/scripts/tts.sh config --set-api-key YOUR_KEY を実行
  • Kokoro: すでにインストールされている場合、--backend kokoro を渡してローカルバックエンドを使用

バックエンドの詳細と全引数のリファレンスについては、reference.md を参照してください。

関連スキル