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 を参照してください。