Audio Models

Generate speech, compose music, and transcribe recordings through one Atlas Cloud endpoint. Covers Seed Audio, ElevenLabs, MiniMax, Gemini TTS, Suno, Seed ASR, and xAI STT.

Atlas Cloud exposes three different audio capabilities — text-to-speech, music generation, and speech-to-text — through a single endpoint. Which one you get is determined by the model you choose, not by the URL.

POST https://api.atlascloud.ai/api/v1/model/generateAudio

There is no /v1/audio/speech or /v1/audio/transcriptions endpoint. If you are porting code from the OpenAI SDK, audio calls do not map one-to-one — they go through the asynchronous prediction flow described below.

How it works

Audio requests are asynchronous, like image and video generation:

Submit a job. POST to generateAudio with a model and the model's own parameters flattened at the top level.

Get a prediction ID. The response returns data.id and data.status.

Poll for the result. GET /api/v1/model/prediction/{id} until status reaches a terminal state, or register a webhook and receive the audio.task.terminal event instead.

See Predictions for the full status machine and Webhooks for callback setup.

Transcription and lyric results are text, not URLs. For most audio models outputs[0] is a link to a generated file. For speech-to-text and lyric-generation models, outputs[0] contains the text itself — which can occasionally look like a URL. Never blindly treat outputs[0] as something to download; branch on the model type.

Text-to-speech

Synthesize speech from text. Available models include Seed Audio, ElevenLabs, MiniMax Speech, Gemini TTS, and xAI TTS.

Example: Seed Audio 1.0

curl -X POST https://api.atlascloud.ai/api/v1/model/generateAudio \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bytedance/seed-audio-1.0",
    "text": "Welcome to Atlas Cloud.",
    "format": "mp3",
    "sample_rate": 24000
  }'
ParameterRequiredDefaultNotes
textYesThe text to synthesize
referencesNoUp to 3 voice references, or a single image reference. Each entry uses exactly one source, and audio and image references cannot be mixed
formatNomp3mp3, wav, pcm, ogg_opus
sample_rateNo240008000, 16000, 24000, 32000, 44100, 48000
pitch_rateNo0−12 to 12
speech_rateNo0−50 to 100 (100 = 2.0x, −50 = 0.5x)
loudness_rateNo0−50 to 100

To clone or reference a voice, attach a reference clip and point at it from the text:

{
  "model": "bytedance/seed-audio-1.0",
  "text": "Use the voice of @audio1 and say: your order has shipped.",
  "references": [{ "audio_url": "https://example.com/sample-voice.mp3" }]
}

Reference clips must be 30 seconds or less and under 10 MB.

Music generation

Compose full tracks, with or without vocals. Suno Chirp and MiniMax Music are available, plus a dedicated lyric-writing model.

Example: Suno Chirp v5

curl -X POST https://api.atlascloud.ai/api/v1/model/generateAudio \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno/chirp-v5",
    "prompt": "an upbeat indie pop song about summer road trips",
    "vocal_gender": "Female"
  }'
ParameterRequiredDefaultNotes
promptUsuallyWith custom: false this is a description of the song. With custom: true it is the lyrics
customNofalsefalse = describe the song, true = supply your own lyrics
instrumentalNofalseGenerate without vocals
vocal_genderNoMale or Female. Applies in both modes
title, style, negative_tags, style_weight, and related fieldsNoOnly take effect when custom: true — otherwise they are silently ignored

Chirp v5 returns two tracks per request, plus a generated cover image in thumbnail. prompt is required unless you set both custom: true and instrumental: true.

To write lyrics first and compose second, call a lyric model such as minimax/lyrics-generation, then pass its output into the music model's lyrics field.

Speech-to-text

Transcribe recordings, with optional speaker separation and word-level timestamps.

The two transcription models use different field names for the audio input: Seed ASR takes audio_url, xAI STT takes audio. Passing the wrong one fails validation.

Example: Seed ASR 2.0

curl -X POST https://api.atlascloud.ai/api/v1/model/generateAudio \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bytedance/seed-asr-2.0",
    "audio_url": "https://example.com/interview.mp3",
    "enable_punc": true,
    "enable_speaker_info": true,
    "show_utterances": true
  }'
ParameterRequiredDefaultNotes
audio_urlYesPublic URL or Base64. wav/mp3/ogg/raw
formatNomp3mp3, wav, ogg, raw
languageNoautoLeave empty to auto-detect. Supports 51 languages
enable_itnNotrueInverse text normalization ("one hundred" becomes "100")
enable_puncNofalseAdd punctuation
enable_ddcNofalseSmooth out filler words and repetitions
enable_speaker_infoNofalseSpeaker separation, up to 10 speakers
show_utterancesNofalseReturn timestamped segments
contextNoInline hotwords. Must be a JSON string: {"hotwords":[{"word":"Atlas"}]}. Plain text here fails the job

Example: xAI STT v1

curl -X POST https://api.atlascloud.ai/api/v1/model/generateAudio \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "xai/stt-v1",
    "audio": "https://example.com/interview.mp3",
    "diarize": true,
    "text_normalization": true
  }'
ParameterRequiredDefaultNotes
audioYesPublic URL or Base64. Container formats are auto-detected
languageNoautoISO 639-1. Supports 24 languages
text_normalizationNofalse"one hundred dollars" becomes "$100"
keytermNo[]Up to 100 bias terms, 50 characters each
diarizeNofalseSpeaker separation, adds speaker_id per word
filler_wordsNofalseKeep "um" and "uh" (removed by default)
multichannelNofalseTranscribe each channel separately

Reading the result

{
  "code": 200,
  "data": {
    "id": "…",
    "status": "completed",
    "outputs": ["Thanks for joining the call today…"],
    "stt_result": {
      "text": "Thanks for joining the call today…",
      "duration": 184.2,
      "words": [
        { "text": "Thanks", "start": 0.12, "end": 0.41, "speaker_id": "1" }
      ]
    }
  }
}

outputs[0] holds the plain transcript. Structured output — timings, speakers, detected language — lives in stt_result.

Providing audio input

Audio input fields accept either a public HTTPS URL or a Base64 data URI. Base64 inputs are stored automatically and replaced with a URL before the request reaches the model.

For local files, upload them first and use the returned URL:

curl -X POST https://api.atlascloud.ai/api/v1/model/uploadMedia \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -F "[email protected]"

See Upload Files for limits and details.

Billing

Audio models are billed in one of three ways, depending on the model:

MethodApplies toBasis
Per 1,000 charactersMost text-to-speech modelsLength of the input text
Per second of outputSome speech models, including Seed Audio 1.0Actual generated duration, rounded up
Per minute of inputSpeech-to-text modelsDuration of the submitted audio

Failed jobs are not billed. For models billed by output duration, an amount is held when the job is submitted and settled against the real duration on completion.

Use the pricing endpoint to get an exact quote before generating, and see Model Billing for worked examples.

Finding audio models

The model catalog changes frequently. Rather than hard-coding a list, filter the catalog by type:

  • Browse the Model Library and filter by Text-to-Audio or Audio-to-Text
  • Or list them from an agent with the MCP Server using atlas_list_models with type="Audio"

Every model's exact parameters are published in its own API reference page under Model endpoints.

Last updated on

On this page