volcengine-doubao-speech-tts について
中国本土向けVolcengine Doubao Speech APIで、テキスト読み上げ、音声ストリーミング、長文処理を行うためのワークフロースキルです。音声とプロトコルの適合性、非同期結果、同意や本番品質確認を扱います。
主な機能
- 01ストリーミングと非同期TTSの説明
- 02音声とプロトコルの適合性確認
- 03長文タスクの処理案内
- 04音声クローンの同意要件
- 05本番音声の品質確認項目
活用シーン
- 01アシスタント向け音声のストリーミング
- 02オーディオブックの章の生成
- 03対応する音声とプロトコルの選定
- 04音声クローンの許諾確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ calesthio/ generative-media-skills --skill volcengine-doubao-speech-ttsインストール後、Claude Code で/volcengine-doubao-speech-ttsを入力して読み込まれたか確認します。
同梱ファイルEVAL.md
詳細
Volcengine Doubao 音声 TTS
中国本土向けの Volcengine Doubao Speech には、このスキルを使用してください。このワークフローに BytePlus の API ホスト、キー、料金、法的条件、前提を持ち込まないでください。両サービスはモデルファミリーに共通する用語を使っていますが、別々の地域向け製品です。
検証と根拠
- 文書化された事実: Volcengine の公式ページに記載された動作です。
- 本番運用上のヒューリスティック: 対象アカウントでのテストが必要なワークフロー上の推奨事項です。
- 実証的な観測: 実際のアカウント/リージョンで、日付を記録して実行したリクエストの結果です。
事実は 2026-07-12 に検証しました。音声リスト、プロトコルの互換性、料金、利用開始条件、クォータ、保持期間、リージョンごとの提供状況、法的条件は変更される可能性があります。中国語の公式ドキュメントと認証済みのコンソールを再確認してください。
製品と API の境界
現在の合成リソースファミリーは次のとおりです。
seed-tts-1.0:V3 の TTS 1.0。seed-tts-2.0:V3 の TTS 2.0。seed-icl-1.0:利用許可を得た音声クローンによる 1.0 合成。seed-icl-2.0:利用許可を得た音声クローンによる 2.0 合成。
レガシーの volc.service_type.10029 と V1 API は、古い TTS 1.0 の契約に属します。V1 経由で TTS 2.0 の音声を呼び出したり、V3 のリソース ID の代わりにレガシーのモデルセレクターを使用したりしないでください。
このリーフの対象は、音声合成と長文の生成です。音声登録は、同意/利用許可の境界としてのみ取り上げます。ASR、音声エージェント、通訳、ポッドキャスト、音声から音声への変換、海外向け BytePlus は対象外です。
プロトコルを選択する
V3 双方向 WebSocket
テキストが段階的に届く場合に使用します。
wss://openspeech.bytedance.com/api/v3/tts/bidirection
文書化された接続/セッション/タスクのライフサイクルに従ってください。すべての音声がすべてのプロトコルに対応しているわけではありません。双方向配信を確定する前に、最新の音声リストとアカウントの利用権限を確認してください。
V3 単方向ストリーミング
テキスト全体が確定しているものの、音声をストリーミングしたい場合に使用します。Volcengine の公式ドキュメントには、V3 WebSocket、HTTP チャンク転送、SSE の各方式が記載されています。実装時に、選択した方式に対応する正確なドキュメント記載のエンドポイントとレスポンスパーサーを選択してください。各トランスポートのスキーマに互換性があると想定しないでください。
非同期の長文処理
バッチナレーション/オーディオブックや、現在ドキュメントに記載されている制限内の入力に使用します。
POST https://openspeech.bytedance.com/api/v3/tts/submit
POST https://openspeech.bytedance.com/api/v3/tts/query
現在のドキュメントには、最大 100,000 文字と記載されています。送信すると task_id が返されます。ステータスは 1 が実行中、2 が成功、3 が失敗です。成功したらすぐにダウンロードしてください。サーバー上の音声の保持期間は 7 日間と記載されています。返される URL はそれぞれ 1 時間有効で、再度クエリすると更新できます。
送信とクエリは、購入済みの同時実行数枠を消費します。ジッターを加えた上限付きのポーリングを使用し、プロバイダーのタスク ID を永続化してください。
認証
Volcengine の V3 ストリーミングと非同期処理のページでは、それぞれ異なるヘッダーの組み合わせが記載されています。選択したページの指定に正確に従ってください。
現在、新しいコンソールを使った V3 連携では、該当するストリーミング方式で X-Api-Key が使用されます。非同期の長文 API では、次のように記載されています。
X-Api-App-Id: ${VOLC_APP_ID}
X-Api-Access-Key: ${VOLC_ACCESS_KEY}
X-Api-Resource-Id: seed-tts-2.0
X-Api-Request-Id: <uuid>
レガシーの V1 では、通常とは異なる Authorization: Bearer;${token} 形式を使用します。最新のドキュメントで確認せずに、この形式を V3 にコピーしないでください。
返された場合は、リクエスト ID と X-Tt-Logid を保持してください。シークレット、トークン、登録用音声、機密性の高い入力テキストは決してログに記録しないでください。
音声、言語、制御の互換性
対応状況は次のように扱ってください。
speaker + resource ID + protocol + language + control + account entitlement
最新の公式音声リストを読み込んでください。件数を固定したり、サフィックスから対応状況を推測したり、ID を捏造したりしないでください。一部の多言語音声/最新音声は、単方向動作のみに対応している場合があります。
文書化された制御項目には、音声ごとの感情、非線形の emotion_scale(1~5)、speech_rate(-50~100)、loudness_rate(-50~100)、サンプルレート/形式、末尾の無音時間、言語フィルタリング、Markdown/絵文字/数式の処理、任意の AIGC ウォーターマーク設定が含まれます。
TTS 2.0 は文脈/指示による制御を使用し、文書化された V3 の経路では SSML に対応していません。SSML 対応は、互換性のある TTS 1.0 の経路に限られます。使用前に、正確なタグと制限を確認してください。
音声の混在やバージョン間での制御の引き継ぎが、すべてのケースで利用できるわけではありません。最新の音声/プロトコルのページを正式な情報源としてください。
タイムスタンプとテキストの正規化
タイムスタンプのドキュメントは、バージョンやプロトコルによって異なります。Volcengine の非同期結果では文や単語ごとのタイミング構造を返す場合がありますが、TTS 2.0/ICL 2.0 のサポート状況と正規化の動作は、使用する音声ごとにテストする必要があります。
- 送信と課金の前にテキストを正規化します。
- 正規化前と正規化後の形式を記録します。
- タイムスタンプの単調性、継続時間の範囲、数字、句読点、書き換えられたテキストを検証します。
- 中国語の字幕は、固定文字数ではなく意味のまとまりでグループ化します。
- タイミングがない場合や不正確な場合に備えて、アライメントの代替手段を用意します。
- キャプションの正確なタイミング情報として、キャッシュまたは推定された文字単位のタイミングを使用しないでください。
非同期処理の冪等性と結果の管理
呼び出し元で安定した unique_id を設定し、task_id、ソースハッシュ、正規化済みテキスト、リソース/話者、試行回数とともに保存します。
タイムアウトの原因が不明な場合は、再送信する前に既知のタスク状態を照会します。確認せずに再送信すると、作業や課金が重複する可能性があります。成功したら、URL の有効期限が切れる前にダウンロードし、チェックサムを計算して、デコードと継続時間を検証したうえで、管理下のストレージにアセットを移動します。結果 URL は永続的な配信先ではありません。
料金、アクティベーション、クォータ
検証時に利用できた未認証のドキュメントからは、公開されている人民元の料金を確認できませんでした。認証済みコンソールと注文条件が正式な情報源です。非同期の長文テキストには、別途のプレミアム料金ではなく、対応する短文テキスト TTS/音声レプリケーションの料金が適用されると記載されています。
有料利用の前に、以下を記録してください。
- アカウント/リージョンとアクティベート済みリソース
- 文字数または同時実行数のパッケージ
- 現在の単価と有効期間
- 実際に付与された場合の無料分/トライアル分
- 音声固有の料金/利用権
- 正規化後の文字数と試行回数の見込み
- 購入済みの同時実行数とキューのポリシー
現在のアカウント情報で裏付けられない限り、公開の無料枠、リージョン一覧、固定料金を約束しないでください。
プライバシー、同意、クローン音声
音声と関連する個人の識別情報は、機微な個人データに該当する可能性があります。公開されている製品ドキュメントは、適用される契約、プライバシー条項、法務確認の代わりにはなりません。
クローン音声については、以下を行ってください。
- 明示的で、記録が残り、目的を限定した権限を必須とします。
- 音声の本人、許可された用途、期間、地域、配信、撤回、削除を文書化します。
- 登録用音声とモデル識別子へのアクセスを制限します。
- アカウント/契約/サポートを通じて、トレーニング音声とモデルの現在の保持・削除条件を確認します。
- 欺瞞的ななりすまし、著名人、未成年者、許可のない多言語利用を避けます。
- 開示/電子透かしの要件を記録します。
技術的な登録や類似性チェックによって、法的な許可が証明されることはありません。居住地、保持期間、トレーニングへの不使用、規制遵守について、未確認の主張をしないでください。
エラーと再試行
現在の API では成功コード 20000000 が使用されます。プロバイダーの詳細なコード/メッセージ/ログ ID を保持してください。
- 無効なパラメーター/テキスト/リソース/話者、または未サポートのプロトコル:修正し、変更せずに再試行しないでください。
- 話者の権限/リソースの不一致:アクティベーションと一致するバージョンを確認します。
- クォータ/同時実行数:キューに追加するか、バックオフするか、処理能力を購入します。
- リクエスト/ID の重複:既存のジョブを照会するか、適切な新しい ID を生成します。
- 一般的なバックエンド/ネットワークエラー:冪等性を確保したうえで、回数を制限して再試行します。
- 非同期ステータス
3:失敗の詳細を提示し、隠したり、際限なくポーリングしたりしないでください。
本番環境での QA
名前、ブランド名、頭字語、数字、日付、通貨、数式、方言、専門用語を含む発音確認用セットを作成します。長時間のジョブを実行する前に、承認用のサンプルを生成します。
以下を確認してください。
- コーデック、サンプルレート、チャンネル数、継続時間、チェックサム、ファイルの整合性
- テキストの欠落/重複/途切れ
- 音声の個人識別、言語/方言、速度、感情、発音
- クリッピング、ピーク、ラウドネスの一貫性、ノイズ、無音、クリック音、歯擦音
- 正規化済みソースとの逆文字起こし
- タイムスタンプ/キャプションのアライメント
- タスク/リクエスト/リソース/話者/ログの ID、料金の証跡、同意、ソースのリビジョン、出力の来歴
例 1:非同期のオーディオブック章
これは完全な例であり、必須の定型ではありません。
意図: 認可された TTS 2.0 の音声で、中国本土向けのオーディオブック章を合成します。
現在の音声との互換性を事前に確認し、章のテキストを正規化してハッシュ化し、現在の課金対象文字数を算出して、料金と同時実行数の承認を得ます。非同期処理必須のヘッダー、安定した unique_id、namespace: "BidirectionalTTS"、seed-tts-2.0、MP3 24 kHz、そして現在認可されている正確な話者 ID を指定して送信します。
{
"user": {"uid": "audiobook-pipeline"},
"unique_id": "chapter-0047-v3-9b2f8c4a",
"namespace": "BidirectionalTTS",
"req_params": {
"text": "<normalized-chapter-text>",
"speaker": "<authorized-current-voice-id>",
"audio_params": {
"format": "mp3",
"sample_rate": 24000,
"speech_rate": 0,
"loudness_rate": 0,
"enable_timestamp": true
},
"additions": "{\"disable_markdown_filter\":true,\"explicit_language\":\"zh-cn\"}"
}
}
task_id でポーリングし、ステータスが 2 になったらすぐにダウンロードして、タイミングペイロード、チェックサム、デコード後の再生時間、URL の有効期限を保存します。章と字幕を人が確認します。この TTS 2.0 音声で使用可能なタイミング情報が返されない場合は、別途アラインメントを行います。
例 2:双方向アシスタント
これは完全な例であり、必須の定型ではありません。
意図: テキストの到着に合わせて、アシスタントの中国語音声をストリーミングします。
双方向 V3 に対応することが明記された最新の音声と、対応するリソースを明示的に選択します。PCM または検証済みのストリーミングコーデック、安定した接続 ID/セッション ID、上限を設けた意味単位のテキストバッファーポリシーを使用します。StartConnection/StartSession/TaskRequest/FinishSession イベントに従い、上流のテキストが破棄された場合は適切にキャンセルします。
初回音声の動作、チャンクの順序、文の境界、再接続/キャンセル、テキストの欠落/重複、利用権限、同時実行数、最終的な文字起こしとの一致を QA で確認します。希望する音声が一方向専用の場合は、音声またはプロトコルの変更についてユーザーの承認を得ます。
参照元
公式情報の確認日:2026-07-12
- Volcengine Doubao Speech の概要/モデル/音声一覧:https://docs.volcengine.com/docs/6561/163032?lang=zh 、https://docs.volcengine.com/docs/6561/2499930?lang=zh 、https://docs.volcengine.com/docs/6561/1257544?lang=zh
- V3 双方向および一方向 WebSocket:https://docs.volcengine.com/docs/6561/2532486?lang=zh および https://docs.volcengine.com/docs/6561/2534913?lang=zh
- 非同期の長文テキストの送信/クエリ:https://docs.volcengine.com/docs/6561/1829010?lang=zh
- レガシー V1 TTS:https://docs.volcengine.com/docs/6561/1257584?lang=zh
- 音声のトレーニングと複製の実践:https://docs.volcengine.com/docs/6561/2534906?lang=zh および https://docs.volcengine.com/docs/6561/1204182?lang=zh
- Seed-TTS レポート(研究の背景情報のみ):https://arxiv.org/abs/2406.02430