Skip to content

Voice

Text-to-speech, dialogue, voice changing, dubbing, transcription, and cloning. Packs top up the key you already use.

On this page · 8 sections

Voice is the ScaleMax workspace and API for spoken audio. It covers text-to-speech, multi-speaker dialogue, a speech-to-speech voice changer, AI dubbing, speech-to-text, and voice cloning. Generation runs on three engines customers can pick: ElevenLabs, MiniMax, and CapCut.

Where it lives

Open the dashboard workspace at https://dashboard.scalemax.pro/voice. The same work is available on the public API at https://api.scalemax.pro/v1.

Who can use it

Voice spends only Voice credits. Every API key starts with 1,000 free Voice credits. Packs of 100K ($6) and 1M ($50) top up the key — real money, bought in Voice → Credits. API-credit dollar balances are not used for Voice. There is no dollar fallback. Auto-only keys are refused. Legacy keys with provider_scope='voice' still work.

Do not infer the URL from the key name. Match the billing surface as on Authentication: a credit key uses https://api.scalemax.pro/v1; a token key uses https://api.scalemax.pro/token/v1. Native Voice paths stay /voice/… under that base. OpenAI-compatible speech and transcription sit at /audio/speech and /audio/transcriptions on the same base.

Voice credits packs

A Voice pack tops up voice_units_budget on the key you already use. It does not mint a new key. Every key starts with 1,000 free Voice credits. Units are the same unit estimateVoiceCredits produces. One unit is one Voice credit on standard voices.

  • 100K Voice credits — $6 (100,000 credits — about 200,000 characters on Flash, 100,000 on v3)
  • 1M Voice credits — $50 (1,000,000 credits — about 2,000,000 characters on Flash, 1,000,000 on v3)

Buy packs inside Voice → Credits at https://dashboard.scalemax.pro/voice/credits— not on the public pricing page. Indian customers see ₹600 and ₹5,000 at the fixed checkout rate of $1 = ₹100.

Pricing

Billing unit is one Voice credit. Character work multiplies characters by the model rate below. Audio work bills by duration. Exporting a transcript adds +15% to the character estimate. A job the remaining credits cannot cover is refused — buy a pack rather than falling back to API-credit dollars.

FamilyCredits
ElevenLabs v3 / Multilingual v21 / character
ElevenLabs Flash / Turbo0.5 / character
MiniMax HD1 / character
MiniMax Turbo0.6 / character
CapCut1 / character
Voice changer (temporarily unavailable)1,000 / minute
Dubbing3,000 / minute
Speech-to-text~21 / minute
Voice clone1,000 flat

Pack rate is per Voice credit, not per character: $0.06 / 1k credits on the 100K pack, $0.05 / 1k on the 1M pack. Flash and Turbo use 0.5 credits per character (~2× the characters of v3 / multilingual at 1 credit per character).

Full field reference: Voice API.

Speech to Text

Speech to Text turns a recording or an audio file into searchable text. Open it at https://dashboard.scalemax.pro/voice/transcribe— upload a file or record in the browser.

Files can be up to 90 MB and 90 minutes. Accepted formats: MP3, WAV, M4A, AAC, OGG, Opus, FLAC, WebM, AIFF. Optional extras: speaker labels, word timestamps, sound tags such as (laughter), and filler-word removal. Export TXT, Markdown, SRT, VTT, or JSON.

Cost is ceil(duration_seconds × 0.35) Voice credits — 0.35 credits per second, rounded up, which is 21 credits per minute.

Quickstart — OpenAI SDK

POST /v1/audio/speech is a synchronous wrap of native TTS: ScaleMax submits, polls, and returns audio/mpeg. Point the official OpenAI SDK at https://api.scalemax.pro/v1.

speech.py
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_SCALEMAX_KEY",
    base_url="https://api.scalemax.pro/v1",
)

speech = client.audio.speech.create(
    model="eleven_multilingual_v2",
    voice="<voice_id>",
    input="Hello",
    extra_body={"language": "en"},
)
speech.write_to_file("hello.mp3")

Quickstart — native TTS, poll, download

Native routes return 202 with a task object. Poll GET /v1/voice/tasks/{id} until completed or failed, then fetch the file. Auth is required on every call, including the download.

tts-poll-download.sh
export SCALEMAX_API_KEY="YOUR_SCALEMAX_KEY"
export SCALEMAX_BASE="https://api.scalemax.pro/v1"

TASK=$(curl -sS -X POST "$SCALEMAX_BASE/voice/tts" \
  -H "Authorization: Bearer $SCALEMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "eleven_multilingual_v2",
    "voice": "<voice_id>",
    "text": "Hello",
    "language": "en"
  }')
ID=$(printf '%s' "$TASK" | python3 -c "import json,sys; print(json.load(sys.stdin)['id'])")

while true; do
  BODY=$(curl -sS "$SCALEMAX_BASE/voice/tasks/$ID" \
    -H "Authorization: Bearer $SCALEMAX_API_KEY")
  STATUS=$(printf '%s' "$BODY" | python3 -c "import json,sys; print(json.load(sys.stdin)['status'])")
  case "$STATUS" in
    completed|failed|cancelled) break ;;
  esac
  sleep 1
done

curl -sS "$SCALEMAX_BASE/voice/files/$ID/audio" \
  -H "Authorization: Bearer $SCALEMAX_API_KEY" \
  -o hello.mp3

Next steps