Skip to main content
POST /v1/audio/speech converts text to 24 kHz mono audio with Qwen 3 TTS (qwen3-tts).

Request

  • model (string, required) — qwen3-tts.
  • voice (string, required) — Voice id from List voices.
  • input (string, required) — Text to speak, up to 1000 characters.
  • response_format (string, optional, default wav) — wav, or pcm for headerless signed 16-bit little-endian samples at 24 kHz.
  • stream (boolean, optional, default false) — Writes the audio bytes as they are generated.
qwen3-tts rejects any other generation parameter, including speed, with 400 unsupported_parameter. The response body is audio/wav or audio/pcm. This example picks a featured voice that is ready for qwen3-tts and writes the streamed audio to speech.wav.

List voices

GET /voices returns the voices your key can use, newest first.
  • scope (string, optional, default all) — featured for the voices Hopper publishes, mine for the voices your organization created.
  • limit (integer, optional, default 50) — Between 1 and 200.
  • cursor (string, optional) — next_cursor from the previous page.
The response is {"voices": [...], "next_cursor": ...}, where each voice carries:
  • id (string) — Pass this as voice on /v1/audio/speech.
  • name (string) — Display name.
  • language (string) — Language of the voice.
  • profiles (array) — One {model_id, status} per model the voice is prepared for; the voice works with that model once status is ready.
GET /voices/{id} returns one voice. DELETE /voices/{id} deletes a voice your organization created.

Clone a voice

POST /voices/clone creates a voice from a single clip and returns 201 with the voice object. The request is multipart/form-data.
  • name (string, required) — Name for the new voice.
  • clip (file, required) — One file, wav, mp3, or flac, 5 to 30 seconds of one speaker. Clips with under 3 seconds of speech return 400 reference_audio_too_short.
  • transcript (string, optional) — What is said in the clip.
  • model_id (string, optional, default qwen3-tts) — Model to prepare the voice for.
Pass the returned id as voice on /v1/audio/speech. Error codes are listed in Errors.