voice について
voiceは、テキスト読み上げのナレーションと効果音を生成するChatCutスキルです。音声の選択・管理、許可を得た声のクローン、映像編集に合わせてナレーションを調整する手順を扱います。
主な機能
- 01テキストからナレーションを生成
- 02音声の選択肢を管理・試聴
- 03許可を得た音声をクローン
- 04表現を加える音声キューに対応
- 05カスタム効果音を生成
- 06ナレーション同期の手順に対応
活用シーン
- 01動画用のナレーションを作成
- 02TTS生成前に音声を試聴
- 03クローン音声で言い間違いを置換
- 04説明文から効果音を作成
MCP 対応
音声カタログと管理には`manage_voice`、TTSには`submit_voice`、効果音には`submit_sound`などのChatCutツールを使用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ chatcut-inc/ agent-plugin --skill voiceインストール後、Claude Code で/voiceを入力して読み込まれたか確認します。
同梱ファイルreferences/fix-spoken-mistakes.mdreferences/video-sync.md
詳細
音声・効果音ジェネレーター
submit_voice、manage_voice、pull_asset、または submit_sound がまだ読み込まれていない場合は、呼び出す前に ToolSearch で読み込み、推測ではなく実際のパラメーターを使用してください。
音声ナレーション(TTS)と効果音を生成します。TTS では、submit_voice を呼び出す前に、具体的なプロバイダーと音声を選択してください。
使用するタイミング
- テキストから音声ナレーション/ナレーションを生成する
- 動画用のテキスト読み上げ音声を作成する
- 既存の動画、タイムライン、画面録画、スライドアニメーション、製品デモ、Bロール編集、MG解説動画、その他の映像シーケンスにナレーション/音声ナレーションを追加、差し替え、または再作成する
- 説明対象の映像をトリミング、速度変更、移動、並べ替え、差し替えた後も、既存のナレーション/音声ナレーションとの同期を保つ
- ユーザーが具体的な音声を選んでいない場合、TTS 音声の候補を提示し、試聴できるようにする
- 参照音声から、ユーザー本人または明示的に許可を得た人物の音声をクローンする
- 映像と後続のタイミングを維持しながら、許可を得た話者のクローン音声で、実際に言い間違えた単語や短いフレーズを修正する
- まず効果音ライブラリを確認してから、テキストの説明のみに基づいてカスタム効果音を生成する
TTS(テキスト読み上げ)
既存の録音音声で実際に誤って発音された単語や短いフレーズをユーザーが修正したい場合は、編集や生成を行う前に references/fix-spoken-mistakes.mdをお読みください。このワークフローでは、誤った音声だけを置き換え、映像を維持し、後続のタイミングを保護します。録音音声に問題はなく、文字起こしだけが誤っている場合は、合成音声を使わず、文字起こしを修正してください。全体を書き直す場合や、新しいナレーションを一から作成する場合は、通常のナレーション手順を使用してください。
現在のリクエストに既存の映像ターゲットがあり、ユーザーがそのターゲット向けのナレーション、ボイスオーバー、吹き替え、または音声の差し替えを希望している場合は、新しいナレーションの作成、既存のナレーションテキストを使ったTTS生成、または音声の配置を行う前に references/video-sync.mdをお読みください。ユーザーが「同期」や「映像に合わせる」と明示していない場合も、必ず実施してください。映像ターゲットがある場合、ナレーションのタイミングや意味を画面上の内容に合わせる必要があるためです。通常の単独TTS手順を使うのは、映像ターゲットがない場合、またはユーザーがテキストから音声アセットを作成したいだけの場合に限ります。
タイムラインにすでにナレーションやボイスオーバーがあり、ユーザーがそのボイスオーバーとの同期を保ったまま映像を変更したい場合も、 references/video-sync.mdをお読みください。新しいTTSが不要な場合でも、これは同期の保守タスクです。
カタログの確認と管理にはmanage_voiceを唯一のエントリーポイントとして使用し、最終的なTTSにはsubmit_voiceを使用してください。manage_voice action="list" voiceType="all"は、公式音声とクローン音声の候補を正規化された一つのリストで返します。作成アクセス、適用、クローン、プレビュー、名前変更、削除の各アクションをサポートするのはvoiceType="custom"のみです。現在の仕様は次のとおりです。
providerは必須です。中国語に最適化されたナレーションにはdoubaoを、英語または多言語のナレーションにはelevenlabsを、すぐに使えるChatCutカスタム音声にはfish-audioを使用してください。voiceIdは必須で、プロバイダーごとに異なります。カタログを混在させないでください。submit_voiceは音声アセットのみを作成します。タイムラインへの配置、差し替え、トリミング、同期は、後からタイムラインツールを使って行います。- 長いナレーションでは、
submit_voiceを複数回呼び出すと便利な場合があります。ストーリーボードのビート、シーン単位の広告セグメント、または個別のアセットを求めるユーザーのリクエストなど、音声クリップを個別にタイミング調整または配置するとワークフロー上の利点がある場合は、自然な間、文のまとまり、または台本の区切りで分割してください。 - Doubaoでは、
speedRatio、loudnessRatio、pitch、emotion、emotionScale、performancePrompt、explicitDialectを調整できますが、すべての音声があらゆる表現コントロールに対応しているわけではありません。正しい仕様は、manage_voice action="list"が返す選択済みの公式エントリーを参照してください。 - ElevenLabsでは、
modelId、speed、stabilityがサポート対象の音声調整項目です。eleven_v3では、感情、トーン、非言語的な合図、アクセントのヒント、間、部分的なペース調整など、表現豊かな読み上げにインライン音声タグを使用できます。 fish-audioでは、すぐに使える音声のChatCutcustomVoiceIdをvoiceIdとして渡してください。submit_voiceが正式なPro/準備状況の確認を行い、生成ジョブを作成し、成功後に標準TTSクレジットを消費します。プロバイダー内部のFishモデルIDを渡したり、要求したりしないでください。現在のFish S2.1モデルでは、局所的な感情、読み上げ方、パラ言語的な制御にtext内の角括弧付きインライン指示を使用できます。
音声プロバイダー名を非公開にする
Doubao、ElevenLabs、Fish Audio、それらのモデル名、およびその他のプロバイダーの識別情報は、内部実装の詳細です。ユーザー向けの返信、進捗状況の更新、音声のおすすめ、試聴カード、クローンの手順、成功の概要、エラーで、これらを明かしたり、プロバイダー名を示したりしないでください。代わりにChatCutの製品用語を使用してください:
- キュレーションされたカタログの音声は
公式音声/官方音色と呼びます。 - 保存済みのカスタム音声は
クローン音声/克隆音色、マイボイス/我的音色と呼ぶか、ユーザーに表示される保存名を使います。 - ステータスや失敗は、ChatCut の機能レベルで説明します。ツールまたは プロバイダーのエラーにプロバイダー名、モデル名、プロバイダーの音声 ID、 プロバイダーの URL が含まれている場合は、対処に必要な意味を保ったまま、 それらの詳細を取り除いてから返信します。
プロバイダー名とプロバイダー固有の ID を使用できるのは、内部ツール引数、 ツール結果の解釈、およびこの実装手順に限られます。ツールの出力からそれらを 取り出して、ユーザーに表示される UI メタデータや文章に含めないでください。
公式音声のコントロールは manage_voice action="list" から取得します。
- 対象のナレーション言語とユーザーに表示されるロケールを指定して呼び出します。
返された各
(provider, voiceId, name, summary, sampleUrl, capabilities)タプルは、ひとまとまりとして扱います。 - そのエントリの
capabilities.supportedControlsに含まれるフィールドのみを 使用します。記憶している音声名やファミリーから、対応機能を推測しないでください。 - コントロールは、特定の演技スタイルを保証するものではありません。返された タグとサンプルを参考に自然に合う音声を選び、対応しているコントロールを使って 話し方を適度に調整します。
audioTagsを提供するエントリでは、ユーザーが感情、口調、非言語的な合図、 アクセントのヒント、または部分的なペース調整など、表現豊かな読み上げを 求めた場合に、インライン音声タグを使用できます。公式の例は、次のような TTS のカテゴリに役立ちます。- 感情・口調のタグには
[happy]、[sad]、[angry]、[excited]、[curious]、[sarcastic]、[crying]、[annoyed]、[appalled]、[thoughtful]、[surprised]、[mischievously]があります。声の出し方や 非言語的な合図のタグには[whispers]、[laughs]、[sighs]、[exhales]、[inhales deeply]、[clears throat]、[snorts]、[swallows]、[wheezing]、[coughs]などがあります。 ペース・ポーズ・部分的な速度調整のタグには[slowly]、[pause]、[short pause]、[long pause]、[rushed]、[drawn out]があります。 アクセントや特殊な演技のタグには、[strong X accent](例:[strong French accent])、および[sings]、[singing]、[woo]、[pirate voice]などがあります。公式の例はすべてを網羅しているわけでは ありません。ユーザーがその話し方を明示的に求めており、タグが視覚的な動作 ではなく音声の聞こえ方を表す場合は、同様の音声タグも試すことができます。 タグはtextに直接記述し、影響させたい短いフレーズの近くに置きます。 タグは局所的な指示として扱い、段落全体に適用されるコントロールとしては 扱いません。 - ポーズやペース調整には、必要に応じて句読点、テキストの構成、生成セグメントの
短縮、または
[short pause]や[slowly]などの局所的な音声タグを使います。
Fish Audio のクローン音声に対するコントロール対応:
- 現在の
fish-audioルートでは Fish S2.1 を使用します。簡潔な自然言語のキューを角括弧で囲み、submit_voice.textに直接記述してください。たとえば[happy]、[calm]、[angry]、[excited]、[whisper]、[laugh]、[sigh]、[gasp]、[pause]、[emphasis]、[inhale]、[exhale]などです。S2.1 は固定のタグリストに限定されないため、[whispers sweetly]や[laughing nervously]のような特定の聴覚的な描写も有効です。 - キューは、それが影響を与えるべきフレーズや瞬間の直前に配置してください。Fish S2.1 はテキスト内のどこでもキューを受け付けるため、複数の短いキューでローカルな変化を作り出せます。たとえば
[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!やI thought it was over [gasp] but then the lights came back [relieved].です。 - キューは控えめに使用し、要求された話し方がそれによって改善される場合にのみ使用してください。相反する指示を積み重ねるよりも、変化点で 1 つの明確な指示を使用することを優先してください。結果は決定的な編集境界ではなくモデルへのガイダンスとして扱い、正確なクリップ単位のタイミングや独立した再試行が重要な場合は、別々の
submit_voice呼び出しに分割してください。 - このルートでは Fish S1 のレガシーな
(parenthesis)感情構文を使用しないでください。また、別途emotion引数を追加しないでください。S2.1 のキューはtextの内部に記述します。デフォルトのボイスクローニングプレビュー行はタグなしのままにしてください。ユーザーに代わってカスタムプレビューにキューを追加しないでください。ただし、ユーザーが 100 文字のプレビュー制限内で意図的に含めたキューは保持してください。
// English / multilingual via ElevenLabs
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "Hello world",
voiceId: "peter",
});
// Chinese via Doubao
mcp__skill__submit_voice({
provider: "doubao",
text: "你好世界",
voiceId: "liuchang",
});
// With speed adjustment (Doubao only)
mcp__skill__submit_voice({
provider: "doubao",
text: "这是一段稍快的中文旁白。",
voiceId: "liuchang",
speedRatio: 1.5,
});
// With expressive Doubao controls
mcp__skill__submit_voice({
provider: "doubao",
text: "这次事故提醒我们,安全永远不能侥幸。",
voiceId: "liuchang",
emotion: "sad",
emotionScale: 3,
performancePrompt: "痛心但克制,语速稍慢,像新闻专题旁白",
pitch: -1,
speedRatio: 0.92,
});
// With ElevenLabs delivery controls
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "The launch changed how teams plan their daily work.",
voiceId: "peter",
speed: 0.95,
stability: 0.4,
});
// With local Fish Audio S2.1 delivery cues on a ready cloned voice
mcp__skill__submit_voice({
provider: "fish-audio",
voiceId: "<confirmed custom voice id>",
text: "[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!",
name: "Expressive custom voiceover",
});
生成前のボイスオーディション
ネイティブクローンエントリは最終アクションとしてのみ出力する
<clone-voice/> は実行可能なエディターアクションであり、散文、コード、または内部プロセスのラベルではありません。これを引用したり、バッククォートで囲んだり、次のステップとして説明したり、進捗更新、ツール実行前の説明、計画、その他の中間的なアシスタントメッセージで出力したりしないでください。
まず必要なすべての検査とツール呼び出しを完了してください。その後もネイティブダイアログが正しいルートである場合は、以下の ネイティブ ChatCut エディター にある ダイアログエントリのシーケンス に従ってください。そのシーケンスは、その実行における最後のユーザー向けアシスタントメッセージでなければなりません。別のツールを呼び出したり、完了リマインダーの後に何かを追加したり、タグを再度出力したりしないでください。1 回の Agent 実行でレンダリングできるネイティブクローンエントリは最大 1 つです。
ホストと利用可能なリファレンスに応じたクローン作成ルート
widget-forms を読み込んだり、クローン作成に必要な入力を求めたりする前に、ホストに応じた経路を決めてください。
- ネイティブの ChatCut エディターでは、まずユーザーが読み取り可能な音声添付ファイルをすでに提供しているか、またはこのクローン作成リクエストに使える音声を含む ChatCut アセットを明示的に指定しているか確認します。タイムライン上の音声または動画アイテムも対象です。該当する場合、同じソースを選び直すようユーザーに求めたり、
<clone-voice/>を出力したりしないでください。その音声アセットを解決または導出し、作成前のチェックを実行して、不足している名前、プレビュー用テキスト、明示的な許可だけを集めたうえで、以下のエージェント主導のクローン作成フローを使用します。 - ネイティブの ChatCut エディターでは、使用可能なリファレンスがまだ提供されていない場合に限り、エディターダイアログを使用します。以下のカスタム音声クローン作成にあるネイティブダイアログの手順に従ってください。
- 外部の Codex/Claude ホストでは、
<clone-voice/>を決して出力しないでください。これらのホストでは、ネイティブのエディターアクションを表示したり、実行したりできません。以下のエージェント主導の添付ファイルフローを使用してください。
プロジェクト内にすでに存在する任意の音声は、同意でもクローン作成用のリファレンスでもありません。直接進む経路を使えるのは、ユーザーが今回のクローン作成リクエスト用の音声を提供または指定し、その後、以下で必要とされる完全な許可を与えた場合に限ります。
ユーザーが音声を含むタイムラインアイテムを明示的に選択した場合は、preview_timeline を使ってそのアイテムとソース範囲を解決します。10 秒以上 3 分以下の音声アセットは、そのまま再利用します。動画の場合は、pull_asset を使い、ffmpeg で選択範囲からサポート対象の音声を抽出してから、asset-import を読み込み、結果を push_asset します。ソースが 3 分を超える場合は、ノイズの少ない 30~60 秒の抜粋を使用します。10 秒未満の場合は、より長いリファレンスを求めてください。生成された音声アセット ID を使って続行し、<clone-voice/> は出力しないでください。ソースの選択は許可を意味しません。
ライブ状態に応じてやり取りを選択する
統合音声検索を必須の確認手順として扱います。ユーザーが具体的な公式音声またはカスタム音声を指定せずに TTS を依頼し、かつ音声クローン作成をすでに明示的に選択していない場合は、次の手順を実行してください。
manage_voiceがまだ読み込まれていない場合は、ToolSearchを使って読み込みます。- ナレーションの対象言語、会話のロケール、および有用な公式音声のフィルターを指定して、
manage_voice action="list" voiceType="all"を呼び出します。 - 返された正規化済みの
voicesリストだけを候補一覧として使用します。このリストでは、一致する公式音声より先にクローン音声が表示されます。
音声選択 UI を提案したり表示したりする前に、必ずこの手順を実行してください。チャット履歴や静的な Skill ファイルから、ユーザーが保存した音声や公式音声を推測してはいけません。
音声のクローン作成を明示的に依頼している場合は、具体的なソースをすでに選択しています。その場合、公式音声とクローン音声を選ばせる目的で統合リストを呼び出してはいけません。まず今回のリクエストですでに使用可能なリファレンスが提供されているかを確認し、manage_voice voiceType="custom" action="check-create-access" を実行してから、選択されたホストの経路に従ってください。ネイティブの単独エントリーを表示できるのは、上記の最終アクションに関する規則に従い、その作業がすべて完了した後に限ります。
ユーザー自身の声でナレーションする依頼(たとえば「自分の声」「自分のカスタム音声」、またはカスタム音声の準備ができていない場合にクローンを作成するワークフロー)も、具体的なソースの選択です。公式音声の候補を求める依頼ではありません。ユーザーのカスタム音声を確認し、準備済みの音声と Clone another voice だけを試聴してもらうか、準備済みの音声がなければ直接クローン作成の経路に進んでください。公式音声を提示するのは、ユーザーがクローン作成を断るか、公式音声を求めた場合に限ります。クローン音声のナレーションはテキストから合成され、話者が録音したことのない言語にも対応できます。そのため、ユーザーが話せない言語でのナレーションは、公式音声に切り替える理由ではなく、クローン音声を使う理由になります。
エージェントは、ナレーションのテキストから、役立つ声のトーン、雰囲気、話し方、ユースケースの提案を推測できます。これらは推奨の判断材料として扱い、ユーザーが選んだ音声ソースとして扱わないでください。妥当な推測であっても、以下の統合された試聴画面から、すぐに再生できるカスタム音声を除外してはいけません。
何かをレンダリングする前に、リクエストを分類してください。
- 自分の声をリクエスト: 上記の自分の声に関するルールに従い、公式音声の試聴で応答してはいけません。
- 具体的なカスタム音声: ユーザーが利用可能なカスタム音声を指定した場合、または名前の付いたカスタム音声の選択肢が1つだけあり、それを選んだ場合は、そのカスタム音声をそのまま使用してください。ユーザーが
Choose my cloned voiceを選び、利用可能な音声が複数ある場合は、続行する前に、利用可能なカスタム音声だけを再生可能な選択肢として表示してください。 - 具体的な公式プリセット: そのプリセットを使用または確認してください。音声ソースの選択画面に戻してはいけません。
- クローン作成アクションを選択: この場合に限り、次の返信で直ちに、上記のホスト固有のクローン作成フローに進んでください。ユーザーが再度尋ねるのを待ったり、メニューやパネルを開くよう伝えたり、選択肢を未処理のまま残したりしてはいけません。ネイティブエディターでは、ダイアログを開く前に必要な確認や事前チェックを完了してください。外部の Codex / Claude ホストでは、添付フローを開始してください。
- 利用可能なカスタム音声はあるが、具体的な音声が指定されていない: 再生可能な統合試聴画面を1つ表示してください。実際の
previewUrlがある利用可能なカスタム音声を先に並べ、再生可能なサンプルがある適切な公式音声を2~4件追加し、最後にClone another voiceを表示してください。保存済み音声か公式音声かを尋ねるテキストのみの選択肢は使わず、<choices/>も使わないでください。 - 利用可能なカスタム音声がなく、音声の希望もない: 幅広い用途に適した、バリエーションのある公式音声を2~4件推測し、再生可能なカードとして表示して、最後に
Clone my voiceを表示してください。テキストのみの音声ソース選択肢は使わないでください。 - 利用可能なカスタム音声はなく、音声要件がある: 「中年男性」「温かみのある女性」「プロフェッショナル」など、明示された要件を最優先してください。それ以外の場合は、ナレーションから妥当に推測できる特徴を推奨に反映してもかまいません。一致する公式音声の再生可能なカードを2~4件と、クローン作成アクションカード1件を、同じ選択画面に表示してください。この返信に単独の
<clone-voice/>ボタンを追加してはいけません。
分岐ラベルはローカライズし、実際の状態に合わせて調整してください。以下の意味に従ってください。
- 中国語:
- 名前付きカスタム:
使用「<name>」 - カスタム音声リスト:
选择我的克隆音色 - 公式カタログ:
选择官方音色 - 初回のクローン作成:
克隆我的音色 - 追加のクローン作成:
克隆新音色
- 名前付きカスタム:
- 英語:
- 名前付きカスタム:
Use “<name>” - カスタム音声リスト:
Choose my cloned voice - 公式カタログ:
Choose an official voice - 初回のクローン作成:
Clone my voice - 追加のクローン作成:
Clone another voice
- 名前付きカスタム:
- スペイン語:
- 名前付きカスタム:
Usar «<name>» - カスタム音声リスト:
Elegir mi voz clonada - 公式カタログ:
Elegir una voz oficial - 初回のクローン作成:
Clonar mi voz - 追加のクローン作成:
Clonar otra voz
- 名前付きカスタム:
使用可能な参照音声が提供されていない場合の、中国語ネイティブ環境の例:
<widget>
<form-visual id="voiceId" label="请选择并试听音色" media-kind="audio" required="true">
<visual-option value="<returned voiceId>" name="<returned localized name>" summary="<returned summary>" media="<returned sampleUrl>" media-kind="audio"/>
<visual-option value="clone_voice" name="克隆我的音色"/>
</form-visual>
</widget>
使用可能な参照音声が提供されていない場合、ダイアログのアクションは再生可能なグリッド内に配置してください。
<visual-option value="clone_voice" name="克隆我的音色" />
通常の音声選択では、クローン作成への適切な経路を必ず1つ提示してください。ただし、クローン作成アクションカードと、ネイティブの単独の <clone-voice/> 項目を同じ返信に表示してはいけません。プロバイダーの利用可否、プラン、クォータによって決まるのは、ユーザーがクローン作成を選んだ後の処理であり、選択肢を表示するかどうかではありません。選択肢を提示すること自体に同意は必要ありません。明示的な許可と対応する参照音声が必要になるのは、クローンツールを呼び出す前だけです。シナリオ用の参照では、意図的にクローン作成アクションを含めない試聴画面にし、プロジェクトから直接実行する代替手段を文章で説明してもかまいません。
TTS 音声オプションを推奨、表示、または送信する前に、最新の manage_voice action="list" voiceType="all" の結果を使用してください。これは ChatCut Web、Desktop、公開済みプラグインで共有される最新のカタログです。記憶、翻訳した名前、ファイル名、または大まかな説明をもとに、音声オプションを作成してはいけません。
まず、次の2つの言語をそれぞれ特定してください。
- ユーザーとの会話言語:ユーザーがあなたに話しかけた言語です。周辺のコピー、選択肢の名前、概要にはこの言語を使用してください。
- ナレーションの対象言語:合成するテキストの言語です。プロバイダーと音声カタログの選択にのみ使用してください。
入力の収集や選択肢の表示を行う前に、widget-forms を読み込んでください。このスキルは、現在のホストにおけるフォーム、添付ファイル、メディアカードの動作を管理します。このスキルは、音声候補、必須項目、安全ルール、音声ツールに渡すアセット ID を管理します。ホスト固有の UI 指示はここに埋め込まないでください。
「help me generate ... voice over in Chinese」は、英語での会話で中国語のナレーションを求めているため、オーディションウィジェットのコピーは英語のままにし、音声候補は Doubao から選んでください。
公式音声のオーディションでは、次の手順に従ってください。
- ナレーションの対象言語の
language、ユーザーとの会話言語のlocale、および明示された性別、年齢、トーン、用途の要件を指定して、manage_voice action="list" voiceType="all"を呼び出してください。明示的な要件がない場合は、簡潔に推定したトーンや用途のクエリを使って、公式候補を絞り込んでもかまいません。推定した特性は、ユーザーの希望として断定せず、提案として提示してください。公式の候補が見つからない場合は、任意のフィルターのみを広げ、対応している最も近い選択肢を明確に説明してください。公式カタログのタグがないという理由で、返された再生可能なカスタム音声を除外してはいけません。 - プレビュー付きの、返された使用可能なカスタム音声を最初に提示し、その後に返された公式音声を2~4件提示してください。
widget-formsを読み込み、必須のplayable_single_choiceを1つリクエストしてください。公式の各選択肢には、同じ返却タプルから取得したvoiceId、ローカライズされたname、summary、対応するsampleUrlを設定してください。sampleUrlはそのまま指定してください。推定した S3、CDN、エディター、localhost、本番環境のベース URL を先頭に付けたり、ファイル名のパターンから再構成したりしてはいけません。これは、manage_voiceが返す値をそのまま使う必要があるカスタム音声のpreviewUrlとは異なります。- 通常の推薦・選択画面には、値を
clone_voiceに固定した、メディアのないアクション選択肢を必ず最後のカードとして追加してください。使用可能なカスタム音声がない場合はClone my voice、ある場合はClone another voiceとラベルを付け、上記の意味に沿ってローカライズしてください。ネイティブの ChatCut では、mediaのないコンパクトな<visual-option>とし、別のボタンにはしません。外部ホストでは、ラベルのみの選択肢に相当します。シナリオ固有のリファレンスで、この通常の画面を明示的により限定された画面に置き換える場合は、その指示に従ってください。 - ユーザーが選択するまで待ってください。回答が
clone_voiceに対応する場合は、次のターンでホスト固有の音声クローニングの開始画面またはワークフローを表示してください。オーディションへの返信を受けた直後にクローニングを開始してはいけません。ネイティブエディターでは、クローンカードからクローニング用ダイアログが開き、保存した音声が同じ選択画面に戻るため、送信された回答は、添付された音声コンテキストを持つカスタム音声になります。 - 公式音声の場合、選択されたタプルの
providerとvoiceIdをそのまま指定してsubmit_voiceを呼び出してください。 - 既存のカスタム音声の場合は、完全な
customVoiceIdを指定してmanage_voice voiceType="custom" action="apply"を呼び出してください。最終的な音声の生成をリクエストされたら、同じ ID をvoiceIdとしてsubmit_voiceに渡し、provider: "fish-audio"を指定してください。
カスタム音声のみのオーディションでは、関連する ready 状態のカスタム音声のうち、previewUrl があるものをすべて含めてください。完全な customVoiceId を安定した値として使用し、保存された名前を表示ラベルに、存在する場合は previewText を概要に、ツールから返された previewUrl をそのまま音声メディアとして使用してください。その URL をコピー、ダウンロード、書き換え、ホスト名による検証をしたり、作り出したりしてはいけません。使用可能な音声でもプレビューがない場合は、再生できないテキストのみのカードを作成せず、オーディション画面から除外してください。
各オプションのタイプ、送信 ID、表示ラベル、プレビュー、概要、機能は、同じ manage_voice タプルに結び付けたままにしてください。対象のナレーション言語で公式エントリーを絞り込み、会話の言語に合わせて表示されるすべての文言を指定してください。ホストから表示ラベルが返された場合でも、追加確認なしで回答を対応付けられるよう、ラベルとタプルのマップをコンテキスト内に保持してください。
カスタム音声のクローン作成
音声のクローン作成は、個別の同意を得て行うフローです。音声選択時に積極的に提案する必要がありますが、クローン作成を開始することとは異なります。プロジェクトに音声クリップがあるというだけで、第三者の音声をクローンしてはいけません。
ChatCut ネイティブエディター
今回のクローン作成リクエストに使える参照音声の添付ファイルも ChatCut の音声アセットもユーザーがすでに提供していない場合は、既存のエディターダイアログに作成を委ね、以下のダイアログ起動手順に従ってください。Agent ウィジェットで音声名、言語、参照音声のアップロード、同意について先に尋ねてはいけません。新たな利用資格とスロットの確認、録音/アップロード、承認、永続的なソースの保存、Fish Audio への登録、プレビュー、再試行は、ダイアログが担当します。
今回のクローン作成リクエストに使える参照音声をユーザーがすでに提供している場合は、ダイアログに戻したり、ファイルを選び直すよう求めたりしないでください。以下の利用可能な参照音声からのエージェント主導のクローン作成に従ってください。作成前のチェックが成功したら、まだ確認できていない情報だけを収集します。明示的な承認、音声名、プレビュー用テキストです。その後、解決済みの ChatCut 音声アセット ID を使って manage_voice voiceType="custom" action="clone" を呼び出してください。
ダイアログを使う場合、エントリーの提示は Agent が担当します。ユーザーがクローン作成の分岐を選んだら、直ちに次の手順を行ってください。
- 下のボタンをクリックするとクローン作成を開始できることを伝える、短く自然な一文を送信します。
<clone-voice/>を単独の行に、正確に表示します。- 音声を保存するとエディターがそれをメッセージボックスに入れること、そのメッセージを送信すれば Agent がリクエストを続行できることを伝える、短くローカライズされた一文を追加します。
会話と言語に合わせて案内文とリマインダーを調整してください。この3部構成の手順は、必要なツールの処理がすべて完了した後、その実行におけるアシスタントの最後のメッセージにしてください。ツール呼び出し前や途中のメッセージには含めないでください。例:
- 中国語:
可以点击下方按钮开始克隆你的音色啦。\n<clone-voice/>\n保存后音色会放进输入框,直接发送,我就继续。 - 英語:
Click the button below to start cloning your voice.\n<clone-voice/>\nOnce you save it, the voice appears in the message box. Send it and I'll continue. - スペイン語:
Haz clic en el botón de abajo para empezar a clonar tu voz.\n<clone-voice/>\nCuando la guardes, aparecerá en el cuadro de mensaje. Envíalo y continuaré.
これらは例であり、定型文ではありません。「手順に従ってください」と言ったり、Agent がクローン作成に必要な情報を収集するかのように伝えたりしないでください。ユーザー自身でクローン作成を見つけるよう、エディターのメニューに誘導してはいけません。エントリーとリマインダーを送信したら、ユーザーが完了を報告するか、ダイアログの保存操作で作成された下書きを送信するまで待ってください。
ユーザーが音声を保存すると、エディターはクローン音声の添付ファイルと、Continue generating with this voice. に相当するローカライズ済みの文をプロンプトの下書きに挿入します。ユーザーがその下書きを送信するまで待ってください。この文はエディターの言語に従うため、クローン作成の完了を示すものとしては、文言ではなく添付された音声を確認してください。非表示の音声コンテキストの添付ファイルには、正確なカスタム音声 ID が含まれています。実際に音声の生成がリクエストされたら、submit_voice provider="fish-audio" を使って既存のリクエストを続行してください。生の <audio> HTML や、2つ目の Retry/Apply ウィジェットを出力してはいけません。
利用可能な参照音声からのエージェント主導のクローン作成
次のいずれかに該当する場合は、このフローを使ってください。
- ネイティブの ChatCut Agent が、今回のクローン作成リクエストのためにユーザーが提供した、読み取り可能な添付ファイルまたはアクセス可能な ChatCut 音声アセットをすでに利用できる場合。
- 外部の Codex/Claude ホストが、ネイティブのエディターダイアログを開けないため、会話の添付ファイルとして参照音声を収集している場合。 ユーザーが明示的に許可するまで、クローンアクションを決して呼び出さないでください。ChatCut は、送信されたクローン元の録音をすべて、Fish Audio に登録する前に、独自のユーザーファイルストレージに永続的にアーカイブします。プロジェクトのアセットが後で削除された場合も、このソースはプロバイダー移行に備えて保持されます。すでにアクセス可能なリファレンスを使って音声を作成するだけのために、ユーザーに再録音や再選択を求めないでください。
ユーザーが clone_voice を選択するか、すでに利用可能なリファレンスからクローンを作成するよう明示的に求めた場合、別のアップロードを求める前に、このクローンリクエストについてすでに提供されているリファレンスを確認してください。providerAvailable:false を理由に受付をブロックしないでください。選択肢の表示後にプロバイダー連携が有効になる場合があり、利用可否を確定するのはクローンアクションです。アカウントで別のクローンを作成できない場合は、不要な入力を求める前に、権限とスロットのフィールドを使ってアップグレードまたは上限到達について説明してください。クローンアクション自体が CUSTOM_VOICE_PROVIDER_NOT_CONFIGURED を返した場合は、クローンを一時的に利用できないことを説明し、後でフローを再試行できるよう、指定された名前とインポート済みのリファレンスアセットをコンテキストに保持してください。
名前、録音、アップロード、または同意を求める前に、manage_voice voiceType="custom" action="check-create-access" を呼び出し、その最新の結果を作成前の正式な判定として扱ってください。権限の確認に list だけを使わないでください。check-create-access は、対象外の無料アカウントに対して、ランタイムが機能制限付きアップグレードカードを意図的に表示します。
- 無料トライアルが利用できない(
freeTrialAvailable:false)無料アカウント:別のリファレンスを求めないでください。無料プランのカスタム音声スロットが使用済みであり、別の音声を作成するには既存の音声を削除するかアップグレードする必要があることを説明してください。ネイティブエディターでは、製品が料金ダイアログを開きます。エージェントとの会話では、既存の機能制限付きアップグレードカードが同等の操作にあたります。購入 URL をでっち上げたり、そのままクローン作成を続けたりしないでください。 activeVoiceCount >= voiceSlotLimitの Pro アカウント:別のリファレンスを求めないでください。現在有効な音声の数と、現在のプラン上限に達していることを正確に伝え、会話上の次の操作として、ランタイムのアップグレードカードからプランをアップグレードするか、閉じて既存の音声を使い続けるかを提示してください。ユーザーがアップグレードするか、スロットを空けるまでcloneを呼び出さないでください。- それ以外の場合:以下の受付手順に進んでください。古い事前判定でクローンエンドポイントの結果を覆すことはできません。
cloneがなおFEATURE_NOT_INCLUDEDまたはCUSTOM_VOICE_QUOTA_EXCEEDEDを返した場合は、同じ復旧手順に従い、自動的に再試行しないでください。
- 参照音声は安全に処理され、再利用可能なクローン音声が作成されることを説明します。基盤となるプロバイダーは特定しないでください。
- 名前、明示的な許可とリスクの確認、プレビュー用テキスト、有効な参照音声を1つ求めます。ユーザーがすでに参照音声を提供している場合はそれを再利用し、ほかに不足している項目だけを尋ねます。ユーザーは、話者が本人であるか、本人から許可を得ていること、また音声をなりすまし、詐欺、違法行為に使用しないことを確認する必要があります。アップロードされた音声の言語はChatCutが検出するため、ユーザーに言語を選択するよう求めないでください。ChatCutで安定してサポートされている形式はAAC、FLAC、M4A、MP3、OGG、WAV、WebMです。長さは10秒から3分までとし、音楽、残響、背景ノイズのない、話者1人の明瞭な音声を30~60秒用意するよう勧めます。
widget-formsを読み込み、ホストに依存しない次の受付契約について、不足している項目だけを求めます。voice_name:short_text、必須。voice_reference:audio_reference、利用可能な参照音声がまだ解決されていない場合に限り、録音または添付ファイルを正確に1つ必須とします。preview_text:short_text、編集可能で、Unicode文字数が100文字以下。以下のローカライズ済みデフォルトを初期入力しますが、クローン音声のプレビューで聞きたいテキストをユーザーが自由に入力できるようにします。voice_consent:explicit_consent、必須で、初期状態では未選択。ホストがメディア項目に対応している場合、アダプターに不足項目を1つの受付フォームにまとめるよう依頼します。ホストが会話への添付ファイルを別途収集する場合は、アダプターの添付フローに従い、ファイルを添付したことを同意として扱わないでください。ユーザーが今回のクローン作成依頼ですでに明確に提供した項目を、再度尋ねないでください。
許可と使用に関する誓約は、処理を続行するための必須条件です。受付結果が返されたら、ユーザーが上記と同じローカライズ済みの許可文を明確に送信したことを個別に確認してください。その確認が得られるまでは、処理を停止してください。添付された参照音声をインポートしたり、manage_voice voiceType="custom" action="clone" または action="preview" を呼び出したり、クローン作成が開始されたと伝えたりしてはいけません。名前、添付ファイル、一般的な「はい」という返答、今回とは無関係な過去の承認、その他の項目が完了済みであることを示すウィジェットの状態は、許可を意味しません。許可が不足している、または曖昧な場合は、許可の確認文全体だけを改めて尋ね、ユーザーの回答を待ってください。
クローン作成の前に、送信された結果を正規化します。
{
voiceName: "<submitted name>",
sourceAssetId: "<ChatCut audio assetId>",
previewText: "<submitted preview text or localized default>",
confirmedConsent: true,
}
画面に表示されるすべての文言を、ユーザーとの会話で使われている言語にローカライズします。許可のチェックボックスには言い換えを使わず、「音声を作成」ダイアログと同じ文言を使用してください。
- 中国語:
我确认拥有该音色或已获得克隆授权,并承诺不将其用于冒充他人、欺诈或其他违法用途。 - 英語:
I confirm that I own this voice or have permission to clone it, and will not use it for impersonation, fraud, or unlawful purposes. - スペイン語:
Confirmo que esta voz me pertenece o que tengo permiso para clonarla, y que no la utilizaré para suplantar identidades, cometer fraude ni otros fines ilícitos.
ユーザーに手動で言語を特定させず、ChatCutが検出した言語タグを使用してください。
受付結果からChatCutの音声 assetId を特定できる必要があります。ホストから代わりに読み込み可能な添付ファイルが返された場合は、asset-import を読み込み、対象プロジェクトにインポートし、返された音声 assetId を使用してください。ローカルパス、添付ファイルのURL、生のバイト列を manage_voice に渡してはいけません。読み込み可能な音声がない場合は処理を停止し、音声の提供を求めてください。ユーザーが送信した preview_text は、前後の空白を取り除いてから使用します。空欄の場合は、ローカライズ済みのデフォルトを使用してください。
- 中国語:
这是你的克隆音色,希望你喜欢这个效果。 - 英語:
This is your cloned voice. Hope you like it. - スペイン語:
Tu voz clonada. Espero que te guste.デフォルトはユーザーの会話言語に合わせて選択します。最終プレビューのテキストは、Unicode 文字数で 1~100 文字に収める必要があります。入力値がこれより長い場合は、クローンを作成する前に短くするようユーザーに求めてください。黙って切り詰めたり、デフォルトに置き換えたりしないでください。会話の文脈から書き換えず、ユーザーの表現をそのまま保ってください。
次に、以下を呼び出します。
mcp__skill__manage_voice({
voiceType: "custom",
action: "clone",
sourceAssetId: "<uploaded audio asset id>",
name: "<submitted voice name>",
confirmedConsent: true,
previewText: "<submitted preview text or localized default>",
});
このツールは、クローンの作成とプレビューの生成が両方完了するまで待機します。準備完了の音声と previewUrl が返されたら、読み込み済みの widget-forms アダプターに、customVoiceId 全体を安定した値として、入力された音声名を表示名として、入力された previewText を概要として、ツールから返された previewUrl をそのまま音声メディアとして使用し、playable_preview を 1 つ表示するよう依頼してください。これは表示専用のプレビューであり、追加の入力フォームや選択フォームではありません。URL を文章中に記載したり、生の <audio> 要素を出力したり、サポートされていない Markdown の音声/リンク構文に置き換えたりしてはいけません。
再生可能なプレビューの直後に、次の 1 つの分岐を選ぶよう求めてください。
Retry / 重试 / Reintentar、または Apply / 应用 / Aplicar。この分岐の選択には <choices/> を使い、別のフォームウィジェットは使わないでください。待機中は、customVoiceId 全体、入力された名前、入力された previewText、previewUrl をコンテキスト内に保持してください。
Retryは、同じ音声の録音またはアップロードを差し替えることを意味します。別のスロットを消費せず、差し替えが成功するまでは以前の準備完了済み音声を破棄しないでください。現在のツール環境でソースをその場で差し替えられない場合は、2 つ目の音声を作成せず、その制限を説明してください。Applyは、現在の AI の下書き/リクエストでクローン音声を選択することを意味します。選択したcustomVoiceIdを指定して、manage_voice voiceType="custom" action="apply"を呼び出してください。このアクションは、音声を生成したりクレジットを消費したりせずに、Pro の利用資格と準備状況を確定します。成功したら、カスタム音声 ID を選択済みの音声として保持し、会話を続けてください。最終音声の生成をユーザーが実際に求めた場合に限り、provider: "fish-audio"を指定してsubmit_voiceを呼び出します。FEATURE_NOT_INCLUDEDが返された場合は、音声が適用されたと案内したり、音声合成を行ったりしないでください。無料プランではクローンをプレビューできますが、生成ナレーションに適用するには Pro が必要であることを説明してください。ランタイムの機能ゲート付きアップグレードカードは、エディターのペイウォールに相当します。
無料プランでは、クローンの作成を 1 回試してプレビューを聴くことはできますが、クローン音声を最終 TTS に使用することはできません。Pro のカスタム音声スロット数は floor(monthly plan credits / 100) です。準備完了または処理中の音声は、それぞれ 1 スロットを占有します。スロットの利用権に無料生成は含まれません。クローン音声による最終 TTS には通常の音声生成クレジットが使われ、生成成功後にのみ差し引かれます。これら 3 つのルールはいずれも、バックエンドが最終的な判定元となります。
ユーザーがクローン音声で最終音声を生成するよう求めた場合は、ChatCut のカスタム音声 ID を指定して submit_voice を呼び出します。
mcp__skill__submit_voice({
provider: "fish-audio",
voiceId: "<confirmed custom voice id>",
text: "<final narration text>",
name: "Custom voiceover",
});
ツールが FEATURE_NOT_INCLUDED / feature_not_included を返した場合は、無料プランではカスタム音声のプレビュー枠を 1 つ利用できますが、クローン音声による最終 TTS には Pro が必要だと伝えてください。再試行したり、音声を切り替えたり、ゲートを回避するためにプロバイダー ID を別のツールに渡して送信したりしないでください。この問題に対してランタイムは標準の料金プラン案内用アップグレードカードを表示します。アップグレードしてから再試行するよう案内してください。
有料アカウントの場合は、activeVoiceCount 個の音声を作成済みで、現在のサブスクリプションプランの上限 voiceSlotLimit に達していると説明してください。アップグレードするアクションと、閉じる/続行するアクションを提示してください。クォータエラーに、無料アカウント向けのペイウォール文言を使用しないでください。
効果音
通常の編集用効果音(SFX)では、最初に生成しないでください。クレジットを消費する前に、組み込みの効果音ライブラリを使用してください。
browse_libraryをcategory:"sound-effects"と、"whoosh"、"camera shutter"、"notification"、"censor beep"、"record scratch"などのクエリで呼び出します。- 返された
library:sound:<id>を確認します。 edit_itemを使って配置します。その際、fromFrameには効果音のアンカーとなる編集上のタイミングのフレームを指定します。
mcp__core__browse_library({
category: "sound-effects",
query: "short whoosh transition",
});
mcp__core__edit_item({
adds: [
{
type: "audio",
assetId: "library:sound:whoosh-short",
fromFrame: 120,
trackId: "A1",
},
],
});
テキストの説明から効果音を生成するために submit_sound を使用するのは、次の場合に限ります。
- ユーザーが生成した効果音、オリジナルの効果音、またはカスタム効果音を明示的に求めている場合。
- 求められている効果音が既存の効果音ライブラリには具体的すぎる場合。
browse_library({ category:"sound-effects", query })で適切な候補が見つからない場合。
// Custom/generated sound effect after the library has no suitable match
mcp__skill__submit_sound({ prompt: "A dog barking in the distance" });
// With custom duration (0.5-22 seconds)
mcp__skill__submit_sound({
prompt: "Thunder and heavy rain",
durationSeconds: 15,
});
// High prompt adherence
mcp__skill__submit_sound({
prompt: "Sci-fi laser gun firing",
promptInfluence: 0.8,
});
より良い結果を得るためのヒント:
- 具体的に指定します。「犬」だけではなく「大きな声で吠える犬」のように指定します。
- 状況を含めます。「何もない部屋で、木の床を歩く足音」のように指定します。
- スタイルを指定します。「映画風の風切り音」や「8ビットゲームの効果音」のように指定します。
パラメーター
TTS
| フィールド | 説明 | 備考 |
|---|---|---|
provider | doubao、elevenlabs、または fish-audio | 必須 |
text | 合成するテキスト | 必須 |
voiceId | キュレーション済み ID、または ChatCut のカスタム音声 ID | 必須 |
speedRatio | 話速 | Doubao のみ |
modelId | ElevenLabs のモデル ID | ElevenLabs のみ |
stability | ElevenLabs の安定性 | ElevenLabs のみ |
speed | ElevenLabs の話速 | ElevenLabs のみ |
name | アセット名 | 任意 |
カスタム音声
| アクション | 必須フィールド | 結果 |
|---|---|---|
list | なし | 利用資格、スロット数、既存の音声 |
check-create-access | なし | 参照音声を収集する前に、作成可否を確実に確認 |
apply | customVoiceId | Pro/準備状況の確認。生成せずに音声を選択 |
clone | sourceAssetId、name、confirmedConsent、previewText | 再利用可能な Fish Audio 音声とプレビュー |
preview | customVoiceId、previewText | 更新された短い試聴用音声 |
rename | customVoiceId、name | 製品/プロバイダーの表示名を更新 |
delete | customVoiceId、confirmedDelete:true | プロバイダーの音声を完全に削除し、スロットを解放 |
別個の manage_fish_audio_voice ツールを使用したり、公開したりしないでください。Fish のモデル ID、公開/限定公開の設定、任意のタグ、カバー画像、プロバイダー側のカタログ管理は、内部統合の詳細です。削除するのはユーザーが明示的に確認した後に限り、名前だけを変更する場合は rename を使用してください。
効果音
| フィールド | 説明 | 備考 |
|---|---|---|
prompt | 効果音の説明 | 必須 |
durationSeconds | 長さ | 0.5~22 秒 |
promptInfluence | プロンプトへの準拠度 | 0~1 |
name | アセット名 | 任意 |
音声
現在の統合音声候補一覧、ローカライズされた表示名、プレビュー、送信 ID を取得するには、manage_voice action="list" voiceType="all" を使用してください。
音声プリセットはプロバイダー固有です — 混在させないでください
公式の音声 ID はプロバイダー固有です。返された provider と
voiceId は常にセットで使用してください。異なるカタログの組み合わせから値を混在させると、失敗します。
特定の音声と言語が必要な場合:
- ナレーションの言語にかかわらず、その
languageでカタログを検索し、 返されたプロバイダーと音声のペアを使用してください。プロバイダーの ID を推測しないでください。
厳守事項 — 絶対にしてはいけないこと
- 別のプロバイダーの音声プリセット名を使用しないでください。
- 具体的な音声が指定されていない場合、必須のカスタム音声の
listゲートを通過する前に、公式音声をおすすめしないでください。 - 明示された、または推測した音声の特徴を理由に、再生可能なプレビューがある準備済みのカスタム音声を 統合試聴画面から除外しないでください。
- 音声のおすすめ画面や選択画面に、最後のクローン操作カードを必ず含めてください。
- 音声が大まかにしか説明されておらず、ユーザーが具体的なプリセットを確認していない場合、TTS を送信しないでください。
- 現在のリクエストに対して
manage_voice action="list" voiceType="all"を呼び出す前に、TTS の音声オプションをおすすめしたり表示したりしないでください。 - 年齢、地域のアクセント、発音辞書、または正確な再生時間の制御が安定して利用できると主張しないでください。現在のツールでは、これらは信頼できるフィールドとして公開されていません。
- ユーザーから依頼されない限り、録音された元の音声を TTS に置き換えないでください。
- クローン作成時の受付で必要な所有権・許可および合法的な使用に関する誓約をユーザーが明確に送信する前に、参照音声をインポートしたりクローンしたりしないでください。この確認を、添付ファイル、別の入力項目の完了、一般的な承認、または過去の無関係なやり取りから推測しないでください。
- プロバイダーの音声 ID を
submit_voiceや他の生成ツールに渡して、クローン音声の Pro チェックを回避しないでください。 - ユーザーが現在のクローン作成リクエストに使用可能な参照音声をすでに提供している場合、ネイティブのクローンダイアログを強制したり、音声を選び直すよう求めたりしないでください。事前にアクセスを確認し、不足している許可、名前、プレビューテキストを収集してから、ChatCut の音声アセット ID を使ってクローンを作成してください。
- プロジェクト内にすでに存在する無関係な音声を、クローン作成用の参照音声やクローンの許可として扱わないでください。
- クローン音声のプレビューを、生の
<audio>HTML、Markdown リンク、または URL だけで表示しないでください。widget-formsのplayable_previewで、ツールが返した正確なpreviewUrlを使用してください。Retry / Apply は、現在のホストで必須の別ブランチのコントロールに配置してください。 - 中間メッセージで
<clone-voice/>を出力したり、1 回の Agent 実行で 2 回以上出力したりしないでください。必要なツールを先に実行し、ネイティブのダイアログが引き続き適切な経路である場合は、そのダイアログの起動手順に従ってから停止してください。 - Doubao、ElevenLabs、Fish Audio、プロバイダーのモデル名、プロバイダー固有の ID、またはプロバイダーの URL をユーザーに公開しないでください。製品用語として「公式音声」と「クローン音声」を使用し、表示されるエラーやステータスメッセージからプロバイダーの詳細を削除してください。