submit_voice
Submit a final TTS generation job. This tool creates an audio asset only; it does not place or replace timeline items. Before using this tool, load/read the voice Skill if you have not already. The voice Skill contains the current TTS contract, voice audition/selection flow, reuse rules, and timeline replacement workflow. manage_voice action="list" is the live source for official and cloned voice candidates. Call this only after the user has selected or confirmed a concrete voiceRef from manage_voice (or a legacy provider + voiceId pair), or after the voice Skill says direct submission is appropriate.
External MCP spend rule: this tool costs ChatCut credits and starts an async generation job. Only call it when the user's request or confirmation clearly covers this exact generation; do not silently create extra variants, longer durations, higher quality, or additional outputs.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"text": "<text>"
},
"name": "submit_voice"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| text | Yes | Text to synthesize. ElevenLabs per-request limits: v2/v4 10000 characters, v3 5000. Preserve the full script when splitting at sentence boundaries. | |
| pitch | No | Doubao only. Post-process pitch shift in semitones, -12–12. | |
| speed | No | ElevenLabs only. 0.7–1.2. Not supported by eleven_v4 or eleven_v4_turbo; omit for those models. | |
| emotion | No | Doubao only. Provider emotion label such as happy, sad, angry, surprised, tender, storytelling, or ASMR. Only use voices whose guide says emotion is supported. | |
| modelId | No | ElevenLabs only. Defaults to "eleven_multilingual_v2". Read catalog modelGuidance and capabilities.controls.models before choosing. v2 does not support Vietnamese/Thai or audio tags. Ignored for doubao. | |
| voiceId | No | Provider-specific voice id. For fish-audio, pass the ChatCut customVoiceId from manage_voice, never a Fish model id. For official voices, pass voiceId returned by manage_voice action=list. | |
| provider | No | TTS engine. Use fish-audio only with a ChatCut customVoiceId returned by manage_voice. | |
| voiceRef | No | Preferred: exact voiceRef from manage_voice with supportedUses containing tts. Omit provider and voiceId. Redundant legacy fields are accepted only when they identify the same voice; conflicting fields are rejected. Avatar-only voices cannot generate standalone speech. | |
| projectId | No | Project for this call (full ID or unambiguous prefix). Explicit-timeline calls never change the target of later calls; legacy project selection applies otherwise. | |
| requestId | No | Omit normally: the same project, text, resolved voice, model and speech controls reuse the existing job. For an explicitly requested fresh performance, create one UUID and keep it unchanged on retries. Never change it to recover from a timeout; inspect the existing job first. | |
| stability | No | ElevenLabs only. 0–1, default 0.5. Lower = more expressive, higher = more consistent. | |
| speedRatio | No | Doubao only. 0.5–2.0, default 1.0. Mapped to Doubao's percentage delta server-side. | |
| timelineId | No | ||
| emotionScale | No | Doubao only. 1–5 emotion intensity; requires emotion. Official scale is nonlinear and support/ranges vary by voice. | |
| loudnessRatio | No | Doubao only. 0.5–2.0, default 1.0. Mapped to Doubao loudness_rate percentage delta. | |
| explicitDialect | No | Doubao only. Explicit dialect control; currently only supported by the Vivi preset/raw voice. | |
| explicitLanguage | No | Doubao only. Target narration language; use ja for Japanese. Must be supported by the selected voice. Cannot combine ja with explicitDialect. | |
| performancePrompt | No | Doubao only. Natural-language voice direction for voices with instruction support, e.g. '语速稍慢,痛心但克制' or '欢乐一点,像朋友介绍'. |