/audio/queue, and not text-to-speech or voice cloning.
Choose a voice-changer model, request a price quote, queue the conversion, then poll until Venice returns the converted audio.
A queued conversion is charged immediately. If the queue response is lost, poll
/audio/voice-changer/retrieve with the same queue_id. Do not queue the same recording again.Choose a model
Voice-changer models are returned byGET /models?type=music with model_spec.voice_changer set to true. There is no ?type=voice-changer filter. The examples below use elevenlabs-voice-changer.
Unsupported fields cause an HTTP
400 response. Recordings longer than max_source_audio_duration_seconds are rejected with HTTP 422 before any charge.
Conversion flow
1. Get a price quote
Voice Changer is billed from the length of the source recording, rounded up to the next whole minute. Quote the length you expect to send; the charge is computed from the length Venice measures when the recording is queued.2. Queue the conversion
Supply the source recording exactly one of two ways: as a multipartfile upload, or as an audio_url in a JSON body. Supplying both, or neither, is rejected.
When you pass a URL, Venice fetches and validates the bytes itself and forwards only those bytes to the provider — the URL is never handed onward.
remove_background_noise— strip background noise before conversionseed— integer ≥ 0 for a reproducible result
model and queue_id; the retrieve and complete endpoints require them. Compare duration_seconds to your quote if you need to reconcile the estimate against the billed length.
3. Poll and download
Call/audio/voice-changer/retrieve with the values from the queue response:
Content-Type:
A processing response looks like this:
x-venice-audio-format, x-venice-audio-duration, x-venice-inference-time, x-venice-model-id, and x-venice-model-name.
If the provider fails the conversion, the charge is refunded automatically and the error body includes credits_refunded. Polling again replays the same result rather than refunding twice.
To delete stored media in the same call that returns the audio, set delete_media_on_completion to true on retrieve. The audio cannot be retrieved again afterwards.
Complete example
This Python example quotes a conversion, uploads a source file, polls every five seconds, and saves the result as MP3.The quote endpoint does not require authentication, but queue, retrieve, and complete requests do.