Set voice
set_voiceSet the voiceover voice for every clip in a project, or only for the clips in clip_ids.
Use this to apply a clueprint's voice (read voiceover.voice.name and voiceover.voice.engine from the clueprint source data), or to switch all clips to a specific voice in one call. When the user names specific clips, pass their ids in clip_ids so the other clips keep their voice. The voice is looked up by name (case-insensitive; a saved voice's code also works), preferring voice_engine.
Never guess a name: a name that matches nothing applies the workspace default and returns matched: false with a note. Then pick a real voice with find(type='voices'), re-apply, and tell the user. engine_substituted: true means the named voice exists only on another engine and was applied there.
Common engines: 'eleven' (ElevenLabs), 'cartesia', 'google'.
ElevenLabs voices use the latest voice generation unless voice_version says otherwise; a voice the workspace saved keeps its saved version. Leave it unset; pass "legacy" ONLY when the user explicitly asks for the legacy/older voice generation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| clip_ids | No | Clip ids to change the voice on. Omit to change EVERY clip in the project. | |
| project_id | Yes | The project (guide) ID | |
| voice_name | Yes | Voice name exactly as find(type='voices') lists it (e.g. 'Alex'). | |
| voice_engine | Yes | Voice engine — 'eleven', 'cartesia', 'google', etc. | |
| voice_version | No | ElevenLabs voice generation. Leave unset: latest, except a voice the workspace saved keeps its saved version. Use 'legacy' ONLY when the user explicitly asks for the legacy/older voice generation; never choose it yourself. Ignored for non-ElevenLabs voices. |