Voice providers and API keys
Audio Estudio generates audio with text-to-speech (TTS) engines. Pick the provider you prefer, configure it in Settings and assign a voice to each character.
Available providers
Kokoro: in-browser TTS
Kokoro generates voice in the browser itself, sending nothing to the server. It's free, private and works offline once downloaded. It's multilingual: it offers voices in English, Spanish, French, Italian, Portuguese and Hindi (an espeak-ng phonemizer turns the text into sounds for each language). It needs a modern browser: with WebGPU it's fast; without WebGPU it falls back to WASM (slower). The first time it downloads the model (~90 MB on WASM, ~330 MB with WebGPU for best quality) plus the phonemizer (~18.5 MB), which are then cached for later uses.
Kokoro Chinese: in-browser TTS
Kokoro Chinese generates Mandarin voice directly in the browser, sending nothing to the server. It's free, private and works offline once downloaded. It needs a modern browser and runs in compatibility mode, with no graphics acceleration, so it generates more slowly than Kokoro. The first time it downloads the model (~339 MB, at full precision: the only way this model sounds right in the browser) plus the espeak phonemizer (~18.5 MB, shared with Kokoro), which are then cached for later uses.
Assign a voice and provider to each character
In the project settings, each character has an assigned voice and provider. This lets you mix engines within a single podcast: one character on Gemini and another on ElevenLabs, for example.
Project language and interface language
The project language is chosen when you create it and guides voice generation. The interface language is independent and is changed in Settings; it only affects the app's text, not the audio.
Emotion tags
When assigning voices you can insert emotion tags like [whispers] or [excited] into the voice description. They’re style hints that expressive models interpret when generating.
Custom prompt template
Each provider has a prompt template you can customize with the {text} and {voiceDescription} placeholders. Use it if you want exact control over how the request is built; if you leave it, the default is used.
Switching the voice backend
You can change the provider used to generate each character from the project’s voice settings, without losing text you’ve already written.
The free plan generates audio with AI voices — no card, nothing to install.