Documentation / API

Speech & music

Three audio endpoints: Whisper for transcription, Piper for text to speech, and MiniMax Music 3 for full music tracks. Launch pricing: transcription €0.005 / minute, speech €2.95 / 1M characters, music €0.04 / 10 seconds.

Speech to text

POST /v1/audio/transcriptions, model whisper. A multipart file upload, not JSON:

curl https://api.axforge.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -F file=@meeting.wav \
  -F model=whisper
{"text": "Let's move the review to Tuesday morning."}

Text to speech

POST /v1/audio/speech, model piper. Send the text, receive the spoken audio as the response body:

curl https://api.axforge.ai/v1/audio/speech \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"piper","input":"Your order has shipped."}' \
  --output speech.wav

Music generation

POST /v1/audio/music: MiniMax Music 3, model name minimax-music3. Describe the music in prompt; optionally structure lyrics with [verse] and [chorus] tags, or omit lyrics entirely for an instrumental track.

ParameterMeaning
promptA musical description: genre, mood, tempo, instrumentation
lyricsOptional. Lyrics with [verse] / [chorus] tags. Omit for instrumental.
duration_sTrack length in seconds, up to 180. Making it takes about 4 seconds per second of music (30 s ≈ 2 minutes), so allow for that in your client's timeout.
seedOptional. Same seed + same inputs reproduces the track.
curl --max-time 300 https://api.axforge.ai/v1/audio/music \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-music3",
    "prompt": "Warm acoustic folk, fingerpicked guitar, 90 bpm, hopeful",
    "lyrics": "[verse]\nMorning light on the harbor line\n[chorus]\nWe sail at dawn",
    "duration_s": 30,
    "seed": 11
  }' \
  | sed -n 's/.*"b64_json":"\([^"]*\)".*/\1/p' | base64 -d > track.wav

The response carries the track in data[].b64_json as a WAV file, 32 kHz stereo, base64-encoded.

Generation takes ~2 to 3 minutes per track. Use generous client timeouts (the --max-time 300 above) and async patterns: fire the request from a background job, not a user-facing request handler.

Publishing the track? Label it as AI-generated (it was made by MiniMax Music 3) and check your jurisdiction's disclosure rules for generated media.

Ask on the forum Markdown For AI Updated 2026-11-06

Anything unclear on this page?

Ask on the forum. The answer helps the next person too.

Ask about this page