manage_voice
Cloned voices currently expose no numeric speech-speed, pause-length or target-duration controls in submit_voice. Use only declared supportedControls; do not infer controls from other voices or underlying services. Text cues are not guaranteed timing controls. Use one unified voice surface for official ChatCut voices and the current user's cloned voices. Account management and previews need no project; cloning from sourceAssetId does. For voice selection, call action="list" with voiceType="all". It returns one normalized candidate list: custom voices first, followed by filtered official voices. Build one playable audition UI from these returned tuples; never merge a static Skill catalog with a separate custom-voice lookup. Official voices support only action="list". Custom voices support list, check-create-access, apply, clone, preview, rename, and delete. Pass the returned voiceRef to submit_voice or submit_avatar_video according to supportedUses; apply is optional because generation rechecks access. A cloned voice name, preview text, or recency does not identify the speaker in the current source. Use sourceAssetId/sourceProjectId as provenance facts, not voice recognition. Missing provenance is unknown, never a match. Reuse for the current speaker only with a verified source association or a user selection resolved to one candidate by attached reference, ID, unique name or picker choice. A preference for saved voices alone is not a selection; ask when ambiguous. Otherwise clone the authorized current source or ask the user to select. Keep provider names and provider-specific identifiers internal. Clone only after explicit ownership/permission confirmation, and delete only after explicit permanent-delete confirmation. Custom cloning accepts a project audio asset; ChatCut Desktop also accepts a video asset and uses its complete default audio track, extracted locally without creating another project asset. The reference audio must be 10–180 seconds and at most 25 MiB; a Desktop video file itself may be larger.
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": {
"action": "<action>",
"voiceType": "<voiceType>"
},
"name": "manage_voice"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | For official/all list: optional age bucket. | |
| use | No | Voice discovery destination. Defaults to tts. Use avatar for avatar-video speech, including avatar-only voices. Check each returned supportedUses. | |
| name | No | Required for custom clone and rename. | |
| tags | No | For official/all list: optional exact tags. | |
| limit | No | For official/all list: optional maximum official results. Omit it to return the complete matching official catalog. Custom voices are not counted against this limit. | |
| query | No | For list: optional name, tone, use-case, tag, or custom voice search. | |
| token | No | Avatar discovery only: nextToken returned by a previous page. | |
| action | Yes | clone needs a free custom voice slot. If clone or check-create-access returns CUSTOM_VOICE_QUOTA_EXCEEDED, all custom voice slots are in use: use an existing voice from list, or have the user free a slot first. Buying credits does not add slots. Do not retry clone until a slot is freed. | |
| gender | No | For official/all list: optional requested gender. | |
| locale | No | For official/all list: visible name and summary language; supported translations are en/es/ja/zh/zh-Hant, with English fallback. | |
| language | No | Target narration language, independent from locale. Accepts language codes such as en, es, ja, zh-CN, vi, or th. en/es/ja/zh retain curated tags; other codes search the multilingual bucket. Japanese ja selects its matching audition audio. Read returned modelGuidance: catalog tags do not guarantee model language support. Avatar discovery accepts its language filter. | |
| provider | No | For official/all list: optional internal provider filter. Usually omit. | |
| 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. | |
| voiceType | Yes | Use "all" for the normal combined audition list, "official" for the read-only curated catalog, or "custom" for cloned voices. | |
| timelineId | No | ||
| previewText | No | Required for custom clone and preview. | |
| languageCode | No | For custom clone: reference audio's spoken language code, e.g. en, zh, or es. Supply it when known; otherwise the backend uses the asset's transcript language. Independent from list language/locale and preview text language. | |
| customVoiceId | No | Required for custom apply, preview, rename, and delete. | |
| sourceAssetId | No | Required for custom clone. A local ChatCut audio or video asset id. For detached timeline audio, use its original video asset id. The complete default audio track is used; timeline trims are not applied. | |
| confirmedDelete | No | Custom delete only. True only after explicit permanent-delete confirmation. | |
| confirmedConsent | No | Custom clone only. True only after explicit ownership or permission confirmation. |