mcpField
T
ttscn

ttscn

github.com/agents365-aiクリエイティブ・メディア971.6k 回インストール2 週間前に更新
リポジトリ

ttscn について

ttscnは、テキストを音声に変換するコマンドラインスキルで、中国語音声や多言語ナレーションに適しています。複数のクラウドサービスとEdge TTSを利用でき、音声形式、ポーズ、発音指定、一部バックエンドでの音声クローンに対応します。

主な機能

  1. 0115種類のTTSバックエンドに対応
  2. 02WAVまたはMP3音声を生成
  3. 03ポーズやサウンドマーカーを使用
  4. 04音素指定で発音を上書き
  5. 05一部バックエンドで音声クローン
  6. 06バックエンドと音声を確認

活用シーン

  1. 01中国語テキストを音声に変換
  2. 02動画用のナレーションを作成
  3. 03テキストからオーディオブックやポッドキャストを作成
  4. 04多音字の発音を指定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agents365-ai/365-skills --skill ttscn

インストール後、Claude Code で/ttscnを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

data/
providers.json
docs/
providers.html
providers.md
scripts/
build_docs.py
clone.py
idempotency.py
markers.py
output.py
phonemes.py
tts.py
scripts/backends/
__init__.py
atlas.py
azure.py
baidu.py
cosyvoice.py
doubao.py
edge.py
elevenlabs.py
google.py
minimax.py
openai.py
qwen.py
stepfun.py
tencent.py
xunfei.py
zhipu.py
tests/
test_atlas_backend.py

詳細

ttscn — マルチプラットフォーム対応の中国語 TTS スキル

概要

テキストから自然な音声を生成します。15 種類のバックエンド — 中国国内向けクラウド 11 種類と、国際向けまたは統合 API 4 種類(ElevenLabs / OpenAI / Google / Atlas Cloud)。

#バックエンド料金主な強み
1Edge TTS(デフォルト)無料API キー不要、あらゆる環境で動作
2Doubao(ByteDance)約 1 RMB/10K中国語の自然さは最高クラス(9/10)
3CosyVoice(Alibaba)約 0.2 RMB/1K高速ストリーミング、柔軟
4Qwen3-TTS(Alibaba)約 1 RMB/10K10 言語対応、指示による制御
5StepFun(阶跃星辰)低コストOpenAI 互換、約 10 秒で音声クローン
6GLM-TTS(Zhipu)低コスト感情制御、シンプルな REST
7Azure(Microsoft)約 1 USD/M 文字エンタープライズ向け SSML、eastasia
8Tencent Cloud0.75 RMB/10K最低価格、380 種類以上の音声
9Baidu AI柔軟30 種類以上の音声、感情と方言に対応
10MiniMax約 $0.10/1K最高クラスの品質、300 種類以上の音声、音声クローン
11iFlytek Xunfei約 2 RMB/10KMOS 4.8、500 種類以上の音声、プロ品質
12ElevenLabs有料プラン($5/月~)最高クラスの音声品質、即時音声クローン
13OpenAI TTS約 $15-30/M 文字6 種類の音声、多言語対応、シンプルな REST
14Google Cloud TTS約 $16/M 文字(無料枠あり)220 種類以上の音声、40 言語以上
15Atlas Cloud TTSモデルごとの料金統合非同期 API、多言語音声

1.4~1.6 の新機能:単語レベルのタイムスタンプ(edge/azure/doubao/minimax/cosyvoice — ベストエフォート。境界情報が取得できない場合があります)、[PAUSE:x] + サウンドタグマーカー(全プラットフォーム)、--phonemes による発音の上書き(azure/minimax)。 1.7 の新機能:--json フラグ(--format に依存しない JSON エンベロープ)、冪等性チェックでキャッシュがヒットした場合は cached: true を報告し、キャッシュ済み音声が削除されている場合は再合成、--input f out.wav の位置引数を修正、チャンク分割で [PAUSE:x] の途中を分割しないように変更。 1.8 の新機能:MiniMax のデフォルトを speech-2.8-hd に変更(サウンドタグが最初から音声化されます)、CosyVoice v3.5-flash に対応(カスタム音声/クローン音声のみ — プリセットには cosyvoice-v3-flash が必要です)。 1.9 の新機能:Qwen3-TTS(DashScope、DASHSCOPE_API_KEY を再利用)、StepFun(STEP_API_KEY を再利用)、GLM-TTS(ZHIPUAI_API_KEY を再利用)、Atlas Cloud TTS(非同期生成、上限付きポーリング、認証情報なしでのメディアダウンロード、多言語音声プリセット)の各バックエンド — 合計 15 種類。

クロスプラットフォーム対応:Windows、macOS、Linux

このドキュメント内のすべてのパスは、このスキルのルートディレクトリ(この SKILL.md を含むディレクトリ)からの相対パスです。ルートディレクトリを基準に解決してください。

このスキルを使う場面

次の場合に、このスキルを自動的に有効化します。

  • ユーザーが中国語のテキストを音声に変換したい場合
  • 動画のナレーションやボイスオーバーを生成する場合
  • テキストからオーディオブックやポッドキャストの音声を作成する場合
  • ユーザーが TTS プロバイダーの比較、TTS バックエンドの選択、利用可能な音声の確認を求めた場合
  • ユーザーが TTS の料金や機能、音声クローン/SSML/方言に対応するプロバイダーについて尋ねた場合
  • ユーザーが次のいずれかに言及した場合:TTS、テキスト読み上げ、语音合成、文字转语音、Edge TTS、Doubao TTS、CosyVoice、火山引擎、阿里云语音、Azure TTS、腾讯云TTS、百度语音、MiniMax、讯飞语音、ElevenLabs、OpenAI TTS、Google Cloud TTS、Atlas Cloud TTS
  • ユーザーが単語レベルのタイムスタンプ/字幕、一時停止の制御、または発音を間違えやすい中国語の漢字(多音字)の修正を必要とする場合
  • 中国語テキストの音声変換が役立つあらゆるタスク

プロバイダー比較ページ

ユーザーが TTS プロバイダーを確認、比較、または選択したい場合は、必ず最初に ローカルの HTML 比較ページをブラウザーで開いてください。視覚的に確認できるフィルター付きの表で、 テキストの出力を読むよりもすばやく比較できます。

# Cross-platform (path relative to this skill's directory)
python3 -m webbrowser docs/providers.html

# …or the platform-native opener: open (macOS) / xdg-open (Linux) / start (Windows)

比較ページには、次の情報が含まれています。

  • フィルター付きの表 — 無料、SSML、音声クローン、ストリーミング、方言、多言語で絞り込み
  • プロバイダーごとの詳細パネル — 料金、最大文字数/長さ、クローン方法、感情、言語
  • 音声カード — スタイルの説明と最適な用途のラベル付きのおすすめ音声
  • API キーのリンク — 各プロバイダーのキーを取得できるコンソールへの直接リンク

このページは、すべてのプロバイダーと音声のデータを管理する唯一の情報源である data/providers.json から自動生成されます。JSON を編集した後にページを再生成するには、 python3 scripts/build_docs.py を実行してください。同じデータは CLI からも python3 scripts/tts.py schema backends|voices で照会できます(「スキーマの概要」を参照)。

ページを開いた後、使用したいバックエンドと音声をユーザーに尋ねてから、 ステップ 2 に進みます。

ワークフロー

ステップ 0 — 比較ページを表示する(比較/選択する場合)

ユーザーがプロバイダーを確認・比較している場合、または使用するバックエンドが決まっていない場合は、 上記のとおり docs/providers.html を開きます。ユーザーが内容を確認したら、使用したいバックエンドと 音声を尋ねます。

ステップ 1 — リクエストを把握する

ユーザーが必要としている内容を確認します。

  • テキスト:直接入力するテキストですか、それともファイルですか?短文ですか、長文ですか?
  • 音声スタイル:男性/女性、若々しい/成熟した、温かみのある/エネルギッシュなどですか?(下記の音声ガイドを参照)
  • 速度:通常、速め(+10~20%)、遅め(-10~20%)のどれですか?
  • 形式:WAV(ロスレス)ですか、MP3(圧縮)ですか?
ステップ 2 — バックエンドと音声を選ぶ

用途に基づいて選びます(バックエンド選択ガイドを参照)。決められない場合は、 Edge TTS と zh-CN-XiaoxiaoNeural(女性、温かみのある標準的な音声)をデフォルトとして使用します。選択した内容を伝えます。

ステップ 3 — 音声を合成する

テキストと選択したオプションを指定して scripts/tts.py を実行します。

ステップ 4 — 結果を報告する

出力先のパス、ファイルサイズ、音声の長さを伝えます。

バックエンド選択ガイド

すぐに選ぶ場合
用途バックエンド音声理由
デフォルト/一般用途edgezh-CN-XiaoxiaoNeural無料で、セットアップ不要
ショート動画/DouyindoubaoBV001_streamingショート動画向けのネイティブなスタイル
オーディオブック/長文cosyvoicelongxiaochun_v3高速な合成で、自然
エンタープライズ/SSMLazurezh-CN-XiaoxiaoNeural豊かな韻律制御
一括処理/最安tencent1010011 万文字あたり 0.75 RMB
感情表現/方言baidu3 or 4感情を含む音声合成、広東語
最高品質/音声クローンminimaxfemale-shaonvspeech-2.8-hd、音声デザイン
教育/プロ向けxunfeixiaoyanMOS 4.8、500 以上の音声
男性ナレーションedgezh-CN-YunxiNeuralエネルギッシュな男性の声
ドキュメンタリーazurezh-CN-YunyangNeural深みのあるプロフェッショナルな男性の声
子ども向けコンテンツedgezh-CN-XiaomengNeural明るく若々しい女性の声
コスト重視edgezh-CN-XiaoxiaoNeural完全無料
英語、最高品質elevenlabs21m00Tcm4TlvDq8ikWAM (Rachel)クラス最高水準の英語音声
英語、手軽/低価格openaialloytts-1-hd、環境変数 1 つ
英語、エンタープライズgoogleen-US-Neural2-F220 以上の音声、無料枠あり
多言語/指示対応qwenCherry10 言語、自然言語によるスタイル制御、既存の DASHSCOPE キーを再利用
マーケティング/高速stepfuncixingnanshengOpenAI 互換、既存の STEP キーを再利用
シンプル/感情表現zhiputongtong最小限の REST、既存の ZHIPUAI キーを再利用
全機能と音声データ

完全な機能マトリックス(コスト、チャンクあたりの最大文字数/時間、SSML、クローン作成方法とコスト、感情、方言、言語、ストリーミング、設定の難易度)と、バックエンドごとの音声リストは、data/providers.json の1か所にまとめられています。次の方法で確認できます。

  • 比較ページ(docs/providers.html) — 人が確認するのに最適です
  • python3 scripts/tts.py schema backends --full — バックエンドごとの全機能フィールド
  • python3 scripts/tts.py schema voices — スタイルの説明付き音声プリセット一覧
  • python3 scripts/tts.py --list — ターミナルで見やすい一覧

これらの表をほかの場所で管理しないでください — JSON から再生成してください。

音声クローン(clone コマンド)

参照音声からカスタム音声を作成し、名前を付けて保存すると、--voice を受け付ける場所ならどこでもその名前を使用できます。minimax(ローカルファイル可、音声は10秒〜5分、有料:グローバルサイトでは音声1つあたり約$1.5、中国サイトでは初回使用時に¥9.9。新しいクローンは最初の実際の音声合成が行われるまでは一時的なものです — 作成から7日以内[グローバルサイト]/48時間以内[中国サイト]に使用しないと MiniMax に削除されます。プレビューは使用に含まれません。初回使用後は永続します)と、cosyvoice(登録無料、音声は公開された HTTP(S) URL である必要があり、10〜20秒、1年間未使用の場合は音声の有効期限が切れます)に組み込まれています。

# MiniMax — local file, paid, must confirm with --yes
python3 scripts/tts.py clone create --platform minimax --audio my_voice.wav --name myvoice --yes

# CosyVoice — free, but --audio must be a public URL; --target-model must
# match the synthesis model (default: $COSYVOICE_MODEL or cosyvoice-v3-flash).
# v3.5-flash has NO preset voices — it needs a custom/cloned voice created with
# the same model (voice IDs are not interchangeable across models).
python3 scripts/tts.py clone create --platform cosyvoice --audio https://example.com/my.wav --name myvoice

# Manage
python3 scripts/tts.py clone list
python3 scripts/tts.py clone delete --name myvoice [--remote]   # --remote: cosyvoice only

# Use it — the stored name resolves to the platform voice_id automatically
python3 scripts/tts.py "用我的声音说这句话" out.wav --platform minimax --voice myvoice

エージェントが必ず守るべきルール:

  • MiniMax での作成は有料です — ユーザーの明示的な確認なしに clone create --platform minimax を実行しないでください(CLI では --yes が必須です)。
  • クローンを作成できるのは、ユーザー本人の音声、または使用許可を得ている音声のみです — どちらのプラットフォームも、同意なしに第三者の音声をクローンすることを契約上禁止しています。
  • 参照音声:雑音のない単一話者の音声が適しています。BGM は入れず、10〜20秒が理想的です。
  • 名前付き音声は ~/.ttscn.json の cloned_voices に保存されます。

その他のプラットフォーム(Doubao/Tencent/Baidu/Xunfei/Azure)は、各プラットフォームのコンソールからのクローン作成に対応しています。作成された音声 ID も、そのまま --voice として使用できます。

使用方法

基本的な使い方
# Default (Edge TTS, free, Xiaoxiao voice)
python3 scripts/tts.py "你好世界" output.wav

# Specific voice
python3 scripts/tts.py --voice zh-CN-YunxiNeural "欢迎收听今天的节目" welcome.wav

# Specific backend
python3 scripts/tts.py --platform doubao "今天天气真好" weather.wav
python3 scripts/tts.py --platform minimax "高品质语音合成" hq.wav
python3 scripts/tts.py --platform atlas "统一 API 多语言语音合成" atlas.wav

# Adjust speed
python3 scripts/tts.py --rate +15% "快速播报" fast.wav
python3 scripts/tts.py --rate -10% "慢速朗读" slow.wav
ファイルから
python3 scripts/tts.py --input script.txt output.wav
出力形式
# MP3 output (compressed, smaller file)
python3 scripts/tts.py --format mp3 "你好" hello.mp3

# JSON envelope + MP3 audio at the same time
python3 scripts/tts.py --json --format mp3 "你好" hello.mp3
プレビュー(ドライラン)
# Preview without making API call — no package installs needed
python3 scripts/tts.py --dry-run "这是一段测试文本"
オプション一覧
python3 scripts/tts.py --list

表現マーカー

入力テキストには、どのプラットフォームでもマーカーを含めることができます。対応している場合はネイティブ形式で処理され、対応していない場合はすべて削除されます(読み上げられることはありません)。チャンク分割処理では、[...] マーカーの途中で分割されることはありません。

マーカー構文azureminimaxその他すべてのプラットフォーム
間[PAUSE:x] — x = 秒数、0.01-99.99<break time="xs"/>(SSML)<#x#>削除
音声タグ(laughs) (chuckle) (sighs) (breath) (inhale) (exhale) (coughs)削除MINIMAX_MODEL が speech-2.8 で始まる場合のみ音声化(それ以外は削除され、stderr に警告が出力されます)削除
python3 scripts/tts.py --platform azure \
  "大家好。[PAUSE:0.8] 今天我们聊一个新话题。" out.wav

MINIMAX_MODEL=speech-2.8-hd python3 scripts/tts.py --platform minimax \
  "这也太好笑了 (laughs) 好,我们继续。" out.wav

発音の上書き(--phonemes)

多音字(多音字)の読みを、単語からスペース区切りのピンインへの対応を定義する JSON 辞書で修正します。声調番号付き(hang2 zhang3)または声調記号付き(háng zhǎng)を指定できます。_ で始まるキーはコメントです。

{
  "_comment": "pronunciation overrides for bank-themed script",
  "行长": "hang2 zhang3",
  "重庆": "chóng qìng"
}
python3 scripts/tts.py --platform azure --phonemes phonemes.json \
  "行长在重庆开会。" out.wav

プラットフォームごとの処理:azure → SSML の <phoneme alphabet="sapi"> タグ、minimax → インラインのピンイン注釈(例:重(chong2)庆(qing4)。チャンク分割の前に適用されるため、注釈もチャンクの上限文字数に含まれます)。その他すべてのプラットフォームでは、このフラグは無視されます。

必要条件

# Core (always needed)
pip install edge-tts  # For Edge (default, free)

# Optional backends — install only what you use
pip install dashscope                              # CosyVoice
pip install requests                               # Doubao, MiniMax, ElevenLabs, OpenAI, Google
pip install azure-cognitiveservices-speech          # Azure
pip install tencentcloud-sdk-python-tts             # Tencent Cloud
pip install baidu-aip chardet                       # Baidu AI
pip install websocket-client                        # Xunfei

システム要件:ffmpeg

環境変数

# Global defaults (optional)
export TTS_BACKEND="edge"
export TTS_VOICE="zh-CN-XiaoxiaoNeural"
export TTS_RATE="+5%"
export TTS_FORMAT="wav"              # wav | mp3 | json (json = JSON envelope mode)

# Backend tuning (optional)
export MINIMAX_MODEL="speech-2.8-hd"       # default; sound tags need speech-2.8-*
export MINIMAX_GROUP_ID=""                 # required by some MiniMax accounts
export COSYVOICE_MODEL="cosyvoice-v3-flash"  # or cosyvoice-v3.5-flash (custom/cloned voices only)

# ByteDance Volcano Ark (Doubao)
# v3 (recommended, no appid): API key from the new console (Ark API Key page)
export VOLCENGINE_API_KEY="your_api_key"
export VOLCENGINE_RESOURCE_ID="seed-tts-2.0"   # optional; seed-tts-1.0 / seed-icl-2.0 also valid
# v1 (legacy, appid + token): only when VOLCENGINE_API_KEY is unset
export VOLCENGINE_APPID="your_app_id"
export VOLCENGINE_ACCESS_TOKEN="your_token"

# Alibaba DashScope (CosyVoice + Qwen3-TTS)
export DASHSCOPE_API_KEY="your_api_key"
export QWEN_TTS_MODEL="qwen3-tts-flash"   # or qwen3-tts-instruct-flash (instructions control)
export QWEN_TTS_LANGUAGE=""              # optional: Chinese / English / ... ; unset = Auto
export QWEN_TTS_INSTRUCTIONS=""          # optional: natural-language style, instruct models only

# StepFun (阶跃星辰)
export STEP_API_KEY="your_api_key"
export STEPFUN_TTS_MODEL="step-tts-mini"   # or step-tts-2 / stepaudio-2.5-tts

# Zhipu (智谱)
export ZHIPUAI_API_KEY="your_api_key"
export ZHIPU_TTS_MODEL="glm-tts"

# Microsoft Azure
export AZURE_SPEECH_KEY="your_key"
export AZURE_SPEECH_REGION="eastasia"
export TTS_STYLE="gentle"              # optional: mstts:express-as style; unset = plain prosody

# Tencent Cloud
export TENCENT_SECRET_ID="your_secret_id"
export TENCENT_SECRET_KEY="your_secret_key"

# Baidu AI
export BAIDU_APP_ID="your_app_id"
export BAIDU_API_KEY="your_api_key"
export BAIDU_SECRET_KEY="your_secret_key"

# MiniMax
export MINIMAX_API_KEY="your_api_key"

# iFlytek Xunfei
export XUNFEI_APP_ID="your_app_id"
export XUNFEI_API_KEY="your_api_key"
export XUNFEI_API_SECRET="your_api_secret"

# ElevenLabs (international)
export ELEVENLABS_API_KEY="your_api_key"
export ELEVENLABS_MODEL="eleven_multilingual_v2"   # optional, this is the default

# OpenAI TTS (international)
export OPENAI_API_KEY="your_api_key"
export OPENAI_TTS_MODEL="tts-1-hd"                 # optional, this is the default

# Google Cloud TTS (international)
export GOOGLE_TTS_API_KEY="your_api_key"
export GOOGLE_TTS_LANGUAGE="en-US"                 # optional, auto-derived from voice name

# Atlas Cloud TTS (unified API)
export ATLASCLOUD_API_KEY="your_api_key"
export ATLASCLOUD_TTS_LANGUAGE="auto"                # optional, this is the default

API キーの取得先:

設定ファイル(任意)

個人用のデフォルト設定には ~/.ttscn.json を、プロジェクトディレクトリ内の設定には .ttscn.json を作成します。

{
  "backend": "minimax",
  "voice": "female-shaonv",
  "rate": "+10%"
}

優先順位(高い順):

  1. CLI 引数(--platform、--voice、--rate)
  2. 環境変数(TTS_BACKEND、TTS_VOICE、TTS_RATE)
  3. プロジェクト設定(現在のディレクトリにある .ttscn.json)
  4. ユーザー設定(~/.ttscn.json)
  5. 組み込みのデフォルト設定

使用例

手軽なナレーション(無料、設定不要)
python3 scripts/tts.py \
  "人工智能正在改变我们的生活方式,从智能助手到自动驾驶,技术革新无处不在。" \
  ai_narration.wav
Douyin スタイルのショート動画の音声
python3 scripts/tts.py \
  --platform doubao --voice BV001_streaming --rate +10% \
  "家人们,今天给大家推荐一个超好用的神器!" \
  douyin_style.wav
台本ファイルからオーディオブックを作成(CosyVoice)
python3 scripts/tts.py \
  --platform cosyvoice --voice longxiaoxia_v3 \
  --input chapter1.txt chapter1.wav
最低コストで一括生成(Tencent、インライン環境変数)
TENCENT_SECRET_ID="xxx" TENCENT_SECRET_KEY="xxx" \
python3 scripts/tts.py \
  --platform tencent --voice 101001 \
  --input course_script.txt course_audio.wav
感情表現を加えた高品質な音声(MiniMax)
MINIMAX_API_KEY="xxx" \
python3 scripts/tts.py \
  --platform minimax --voice female-shaonv \
  "这是一段充满感情的语音合成演示。" premium.wav

エージェントネイティブ CLI リファレンス

ttscn は agent-native-design の契約に準拠しています。 人間(読みやすいターミナル出力)、AI エージェント(stdout 上の構造化 JSON)、オーケストレーター(個別の終了コードと冪等性)に同時に対応します。

JSON モード
# Explicit JSON envelope mode (independent of --format)
python3 scripts/tts.py --json "你好" out.wav
python3 scripts/tts.py --json --format mp3 "你好" out.mp3

# --format json is a deprecated alias for --json (kept for compatibility)

# Auto-detect: pipe to jq → JSON automatically
python3 scripts/tts.py --list | jq .data.backends[0].name

# Error envelope always structured
python3 scripts/tts.py --json --platform doubao "test" out.wav
# → {"ok":false, "error":{"code":"auth_missing_env","message":"...","retryable":false,...}}
出力エンベロープ
// Success
{"ok":true, "data":{...}, "meta":{"version":"...","schema_version":"1.2.0","timestamp":"...","ms":123}}

// Error
{"ok":false, "error":{"code":"auth_missing_env","message":"set one of: VOLCENGINE_APPID+VOLCENGINE_ACCESS_TOKEN / VOLCENGINE_API_KEY","retryable":false,"field":"VOLCENGINE_APPID","backend":"doubao"}, "meta":{...}}

契約:meta.schema_version は成功時とエラー時のすべてのエンベロープに含まれる semver 文字列です。破壊的なエンベロープ変更がある場合のみ、メジャーバージョンが上がります。利用側は、実装時に対象としたスキーマのメジャーバージョンと一致することを確認し(例:video-podcast-maker はメジャーバージョン 1 を要求します)、一致しない場合は明確なエラーを返してください。schema_version がない場合は、契約導入前の ttscn リリースです。

単語境界(edge / azure / doubao / minimax / cosyvoice)

edge、azure、doubao、minimax、cosyvoice では、成功時のエンベロープに、data.word_boundaries の下にネイティブな単語レベルのタイムスタンプが含まれます。これらは出力ファイル内の絶対秒数で、昇順に並び、小数点以下3桁に丸められます。このキーは他のプラットフォームでは存在しません。また、プロバイダーからタイミング情報が返されない場合(少数言語の doubao 音声、minimax の字幕ダウンロード失敗、cosyvoice-v1、タイムスタンプに対応していない音声)には、doubao、minimax、cosyvoice でも存在しないことがあります。そのため、利用側では任意の項目として扱う必要があります。

{"ok":true, "data":{
  "output_file": "out.wav",
  "word_boundaries": [
    {"text": "你好", "offset_sec": 0.1,   "duration_sec": 0.45},
    {"text": "世界", "offset_sec": 0.562, "duration_sec": 0.5}
  ]
}}

これらを字幕/SRT の生成や、別途強制アライメント処理を行わないビート同期アニメーションに使用できます。

終了コード
コード意味エージェントの対応
0成功data を解析して続行
1内部エラー/実行時エラーユーザーに報告し、再試行しない
2検証エラー/修正可能なエラー(入力不正、パッケージ不足)入力を修正するかパッケージをインストールして再試行
3認証エラー/認証情報不足ユーザーに API キーを求め、再試行しない
4バックエンド API エラーバックオフを適用して再試行
スキーマの確認
python3 scripts/tts.py schema backends              # All 15 backends (compact by default)
python3 scripts/tts.py schema backends --full       # All fields (22 per backend)
python3 scripts/tts.py schema backends.doubao       # Single backend full detail
python3 scripts/tts.py schema voices                # All voice presets per backend
python3 scripts/tts.py schema tags                  # Tag definitions
python3 scripts/tts.py schema version               # Version + providers data freshness

# Field filtering for low-token-cost queries
python3 scripts/tts.py schema backends --fields name,cost,supports_clone,supports_ssml
冪等性
# Orchestrators: retried calls return cached result — no double-billing
python3 scripts/tts.py --idempotency-key "daily-podcast-2026-07-08" --input script.txt out.wav

# Cache at ~/.ttscn_idem/, 7-day TTL, SHA-256 keyed

キャッシュがヒットすると、保存済みの結果が data.cached: true とともに返されます。キャッシュ済みの output_file がディスク上に存在しなくなっている場合は、古い成功結果を返さず、再合成します。

エージェント互換性フラグ
# No-ops accepted for agent runtime compatibility (ttscn never prompts)
python3 scripts/tts.py --yes --no-input "text" out.wav

コメント