Skip to main content
Voice Remix changes how an existing voice sounds while keeping its language. Use your own voice or an available official voice; favoriting another creator’s voice does not grant Remix access. Saving a candidate creates a separate private voice and leaves the source unchanged. For a different language, use Voice Localize.

Generate a candidate

Provide a voice_id and either a prompt or preset_id. Each request creates one candidate. Custom descriptions are automatically enhanced into a performance instruction and a matching audition script in the source voice’s language.
Replace voc_example with your source voice ID. An API submission returns 202 with generation_job_id and status. Each successful candidate costs 100 credits. Failed generation releases its reservation; browsing presets, preparing input, auditioning, and saving do not add a generation charge.

Use a preset

GET /v1/voice-previews/remix/presets lists presets for age, gender, pitch, pacing, energy, emotion, role-play, and delivery. Each includes an ID, instruction, script, suggested strength, and sample audio URL. The sample demonstrates the style; it is not a remix of your chosen voice. Use voices.list_remix_presets() in Python, voices.listRemixPresets() in TypeScript, or:
A preset uses its curated instruction and script without Enhance. If the source speaks another language, both are translated faithfully. Supplying an edited prompt makes it custom input and runs Enhance, even if preset_id is present.

Compare strengths

guidance_scale accepts 1–10 and defaults to 4. The CLI flag is --guidance. To compare candidates with the same instruction and script, call POST /v1/voice-previews/remix/prepare with the same voice_id, prompt, and preset_id you plan to generate. The response includes instruction, text, language_code, source_voice, and a preparation_token valid for 24 hours. Pass that token to each create request. It is bound to your account, source voice, language, prompt, and preset; changing them requires another preparation. Omitting the token prepares input as part of submission. Web’s Auto comparison corresponds to three separate candidates at 4, 6, and 8, using one preparation. Submit and poll within your account’s generation concurrency limit. Three successful candidates cost 300 credits. Keep the candidate IDs you like and regenerate only the others; selection itself does not create a saved voice or spend credits.

Audition and save

Poll GET /v1/voice-previews/remix/{generation_job_id} until status is ready. Stop polling on failed or cancelled and read error. SDK methods are voices.get_remix_preview(id) and voices.getRemixPreview(id); the CLI command is breeze voice remix status <generation_job_id> --agent. The result contains:
  • generated_voice_id: available when ready; use it to audition or save.
  • text and instruction: the candidate’s audition script and prepared direction.
  • guidance_scale: the strength used for this candidate.
  • comparison_audio_url and comparison_text: the source recording and its own transcript. It may speak different words from the candidate.
  • source_voice: source ID, name, and description captured for the request.
Download audio with GET /v1/voice-previews/{generated_voice_id}/stream. Save with POST /v1/voice-previews/{generated_voice_id}/save, supplying the returned language_code. SDK methods are stream_preview / save_preview (streamPreview / savePreview in TypeScript).
Replace gvi_example and en with the returned preview ID and language. Name and description default to the source voice’s values; override them with voice_name / voice_description in the API or --name / --description in the CLI. Save only ready candidates. Use the saved voice_id for Text to Speech.

Retry without duplicating a candidate

Retain the job ID as soon as submission succeeds. A polling timeout does not cancel generation; query the same job again. If submission timed out before you received an ID, retry with the same Idempotency-Key and input. Changed input with that key returns CONFLICT; a concurrent submission can also return CONFLICT until the first request finishes. Use a new key for each intentionally new candidate. The source needs usable audio, a matching transcript, and a comparison sample of 2–500 characters. Source validation and input preparation happen before generation credits are reserved. A failed or expired preparation must be corrected before submitting again.