Search the live ElevenLabs and Google voice catalogs before generating narration, and keep each returned voice ID paired with the model/provider that can use it.
Where: Designer Media page or a Designer video/audio task → assistant tools list_voices, then generate_audio_asset.
Key ideas
- Voice discovery is read-only: list_voices queries current provider catalogs, can filter by name or descriptive metadata, and never generates media or charges credits.
- A voice ID belongs to its provider: Voice identifiers are provider-owned. Use the matching model returned with the voice; crossing an ElevenLabs voice with a Google model (or the reverse) is rejected.
- Voice-over is a generation action: After choosing a voice, generate_audio_asset needs kind=voice, the script in prompt, voice_id, and the matching model. Music and sound effects use descriptions and do not require a voice_id.
Steps
- Ask Designer to list voices, optionally filtering by query, provider, model, page, and result limit.
- Review each result’s voice_id, provider, model, name, and any returned gender, age, use-case, or category metadata.
- Choose a voice whose style and intended use fit the project. Keep the exact voice_id and model from the same result together.
- Request a voice generation with kind=voice, the approved script in prompt, and both the selected voice_id and matching model.
- Review the quote/price shown for generation before sending the paid request; catalog lookup itself did not spend credits.
- Listen to the generated take in the project Media surface, then insert/place it where requested and review timing against the scene or page.
- If the voice is rejected, call list_voices again for the selected provider/model rather than substituting a similarly named ID.
- For music or sound effects, change kind and provide a sound description; do not pass a voice_id unless the voice-over path requires it.
Catalog search and paging
- The read-only list_voices tool queries ElevenLabs and Google catalogs; provider and model filters narrow the provider route.
- The optional text search can match voice name, gender, age, use case, or category.
- The tool returns a bounded page of current voices and may report provider catalog unavailability. An unavailable catalog means nothing was generated or charged.
- A returned model accompanies each voice so the next generation request stays on its owning route.
Voice generation contract
- Voice-over: kind=voice, prompt contains the exact approved spoken script, voice_id is selected from the catalog, and model must match the returned voice.
- Music and sound effects use kind=music or kind=sfx and a description; they do not use voice_id.
- The tool rejects missing voice IDs and mismatched provider/model combinations before generation.
- The generation action is separate from list_voices and may incur Sparks/credits according to its current quote.
Tips
- Save a short representative voice test before generating a long narration.
- Keep pronunciation notes in the script/context and verify names, timing, and pronunciation by listening to the actual result.
Limitations and important notes
- Voice availability and metadata depend on live provider catalogs and may change.
- A voice ID cannot be assumed compatible across providers or models.
- Listing voices is free/read-only; generating audio is a separate potentially billable action.
Troubleshooting
The selected voice is rejected during generation.
Pass the exact model returned beside that voice_id, or list voices filtered to the intended model/provider and choose a matching row.
No voices are returned.
Check query/provider/model filters and retry the provider catalog. A catalog outage does not mean a generation happened; try again when the provider catalog is available.