API-Referenz
Basis-URL https://api.vocallab.ai. Jede Anfrage benötigt Authorization: Bearer vl_live_... (siehe API-Schlüssel).
GET /api/v1/ping
Verbindungs- und Authentifizierungstest. Gibt dein Credit-Guthaben zurück.
{ "ok": true, "points": 12345, "unit": "points (1 pt ≈ 1 second of audio)" }
GET /api/v1/voices
Stimmen, die du verwenden kannst — der öffentliche Katalog plus deine eigenen geklonten und designten Stimmen. Verwende eine zurückgegebene id als voice für die Generierung. Katalogstimmen akzeptieren auch ihren slug.
{ "voices": [
{ "id": "Ashley", "slug": "warm-natural-female-explainer-voice-for-youtube-podcasts",
"name": "Warm Natural Female Explainer Voice for YouTube & Podcasts",
"type": "preset", "languages": ["en"], "category": "Narration" },
{ "id": "default-abc123__my-voice", "name": "My Narrator", "type": "clone", "languages": ["en"] }
] }
GET /api/v1/models
Die auswählbaren Sprachmodelle. Übergib einen key als model an POST /api/v1/tts (Standard v-pro). API-Schlüssel können alle drei verwenden. Die Unterschiede findest du unter Sprachmodelle.
{ "default": "v-pro", "models": [
{ "key": "v-studio", "label": "VocalLab Studio", "steerable": true, "costMultiplier": 1 },
{ "key": "v-pro", "label": "VocalLab Pro", "steerable": false, "costMultiplier": 1 },
{ "key": "v-lite", "label": "VocalLab Lite", "steerable": false, "costMultiplier": 0.5 }
] }
POST /api/v1/tts
Sprache erzeugen.
| Feld | Erforderlich | Hinweise |
|---|---|---|
text | ja | Bis zu 2.000 Zeichen. Jeder Aufruf wird als einzelne Anfrage synthetisiert — teile längere Texte in mehrere Aufrufe auf |
voice | ja | Eine Stimmen-id aus /api/v1/voices |
model | nein | v-studio (neuestes, steuerbar, 200+ Sprachen), v-pro (Standard — höchste Wiedergabetreue, 15 Sprachen) oder v-lite (schnell, ½ Punkte). Siehe GET /api/v1/models |
speed | nein | Zahl 0.5–1.5 (Schritt 0.05). Standard: Stimmenwert |
temperature | nein | Zahl 0.7–1.5 (Schritt 0.05). Höher = ausdrucksstärker und variabler. Standard: Stimmenwert |
format | nein | Eines von MP3 (Standard), WAV, FLAC, OGG_OPUS, LINEAR16, PCM, ALAW, MULAW |
bit_rate | nein | Ganzzahl 32000–320000. Nur MP3 & OGG_OPUS; bei anderen Formaten ignoriert |
sample_rate | nein | Eines von 8000, 16000, 22050, 24000, 32000, 44100, 48000 (Hz) |
curl -X POST https://api.vocallab.ai/api/v1/tts \
-H "Authorization: Bearer vl_live_..." \
-H "Content-Type: application/json" \
-d '{"text":"Hello from VocalLab","voice":"Ashley"}'
Gibt das Audio inline (base64) plus eine id zurück. Die gehostete URL erscheint, sobald der Upload abgeschlossen ist — frage sie über GET /api/v1/tts/:id ab.
{ "id": "...", "status": "pending", "audio_base64": "data:audio/mp3;base64,...",
"audio_url": null, "format": "MP3", "model": "v-pro", "points_used": 12 }
Modell & Kosten.
v-liteberechnet die Hälfte der Punkte vonv-pro/v-studio(points = ⌈ Zeichen ÷ 30 ⌉statt÷ 15).v-studioist das einzige Modell, das Ausdrucks-/Steuerungsanweisungen befolgt — siehe Sprachmodelle und Voice Steering.
Pausen
Eine Stille exakter Länge fügst du mit einem selbstschließenden <break />-Tag direkt im text ein:
{ "text": "Lass mich überlegen <break time=\"1.5s\" /> Ja, ich habe darüber nachgedacht.", "voice": "Ashley" }
- Sekunden oder Millisekunden —
1.5s=1500ms. - Bis zu 20 Break-Tags pro Anfrage, in jeder unterstützten Sprache.
- Break-Tags zählen zum 2.000-Zeichen-Limit und werden aus Untertiteln/SRT entfernt.
GET /api/v1/tts/:id
Generierungsstatus und die gehostete Audio-URL, sobald sie bereit ist.
{ "id": "...", "status": "ready", "audio_url": "https://...", "format": "MP3" }
GET /api/v1/me
Dein Credit-Guthaben und dein Plan.
Fehler
| Status | Bedeutung |
|---|---|
401 | Fehlender oder ungültiger API-Schlüssel |
402 | Nicht genügend Credits |
403 | Plan ohne API-Zugriff (mindestens Pro erforderlich) |
413 | Text zu lang |
429 | Ratenlimit erreicht (60 / Minute pro Schlüssel) |
Fehler haben die Form { "error": { "code": "...", "message": "..." } }.


