API dokumentáció

Beépíteni TTS.ai az alkalmazások a REST API. OpenAI-kompatibilis formátum könnyű migráció.

REST API OpenAI Kompatibilis JSON válaszok A támogatás közvetítése

Áttekintés

A TTS.ai API programmatikus hozzáférést biztosít az összes platform funkcióhoz: szöveg-nyelv szintézis, beszéd-szöveg átírás, hang klónozás, audio erősítés, és így tovább. Az API a JSON kérés/válasz testületeivel standard REST egyezményeket használ.

API kulcs

Szerezd meg az API kulcsot Fiókbeállítások. Elérhető a Pro és Enterprise terveken.

Alap URL

https://api.tts.ai/v1/

@ info: whatsthis

Bearer token via Authorization fejléc

Hitelesítés

Minden API kérés hitelesítést igényel a Beaver token a Authorization fejléc.

HTTP fejléc
Authorization: Bearer sk-tts-your-api-key-here
Tartsd titokban az API kulcsodat. Ne ossza meg a kliens-oldal kód, nyilvános adattárak, vagy naplók. Változtassa a kulcsok rendszeresen a fiók beállításait.

SDK-k

Hivatalos SDK-k megkönnyítik a TTS.ai integrálását az alkalmazásba. Mindkettő nyílt forráskódú és elérhető a GitHub-on.

Python

pip install ttsai
from tts_ai import TTSClient

client = TTSClient(api_key="sk-tts-...")
audio = client.generate(
    text="Hello world!",
    model="kokoro"
)
client.save(audio, "output.wav")
GitHub

JavaScript / Node.js

npm install @ttsainpm/ttsai
const { TTSClient } = require('@ttsainpm/ttsai');

const client = new TTSClient({
  apiKey: 'sk-tts-...'
});
const audio = await client.generate({
  input: 'Hello world!',
  model: 'kokoro'
});
await client.saveToFile(audio, 'output.wav');
GitHub

Alap URL

Alap URL: https://api.tts.ai/v1/

Az összes végpont ezen alap URL- hez viszonyítva van. Például a TTS végpont:

POST https://api.tts.ai/v1/tts/

Rate limitek

Az API-kamatláb-korlátok tervenként változnak:

Terv Kérelmek/perc Egyidejű A szöveg maximális hossza
Ingyenes 10 2 500 char
Indító 30 3 100,000 chars
Pro 60 5 100,000 chars
Enterprise 300 20 50,000 chars

Minden válaszban szerepelnek az értékhatár fejlécei: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Hitelköltségek

Szolgáltatás Költség Egység
TTS (Ingyenes modellek: Piper, VITS, MelotTS) 1000 karakter 1000 karakterenként
TTS (Standard modellek: Kokoro, CosyVoice 2 stb.) 2000 karakter 1000 karakterenként
TTS (Premium modellek: Tortoise, Chatterbox, stb.) 4000 karakter 1000 karakterenként
Beszéd szövegre 2000 karakter per perc audio
Hang klónozása 4000 karakter 1000 karakterenként
Hangváltó 3000 karakter per perc audio
Hangjavítás 2000 karakter per perc audio
Vocal Removal / Stem Splitting 3000-4000 karakter per perc audio
Beszédfordítás 5000 karakter per perc audio
Hangcsevegés 3000 karakter fordulatonként
Kulcsfontosságú & BPM- kereső Ingyenes --
HangátalakítóName Ingyenes --

Szöveg a beszédhez

POST /v1/tts/

Szöveg konvertálása beszéd audio. Visszaadja a hangfájlt a kért formátumban.

Kérelmező szerv

ParaméterTípusSzükségesLeírás
model string Igen. Modellazonosító (pl. kokoro , chatterbox , piper )
text string Igen. Szöveg a beszédformáláshoz (kérésenként maximum 100 000 karakter)
voice string Igen. Hangazonosító (használata /v1/hangok/ a rendelkezésre álló hangok felsorolásához)
format string Nem. Kimeneti formátum: mp3 (alapértelmezett), wav , flac , ogg
speed float Nem. Alapértelmezés: 1.0 . Távolság: 0.5 - >2.0
language string Nem. Nyelvkód (pl. en , es ).
stream boolean Nem. A streaming válasz engedélyezése. Alapértelmezett: false

Példa kérés

cURL
curl -X POST https://api.tts.ai/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kokoro",
    "text": "Hello from TTS.ai! This is a test.",
    "voice": "af_bella",
    "format": "mp3"
  }' \
  --output output.mp3

Válasz

Visszaadja az audiófájlt bináris adatként megfelelő Content-Type fejléc (audio/mpeg , audio/wav , stb.).

Válaszfejlécek
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Beszéd szövegre

POST /v1/stt/

Audio átírása szövegre. 99 nyelv támogatása auto-detection használatával.

Kérelmező szerv (multipart/form-data)

ParaméterTípusSzükségesLeírás
file file Igen. Hangfájl (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string Nem. STT modell: whisper (alapértelmezett), faster-whisper , sensevoice
language string Nem. Nyelvkód: auto auto-detection (alapértelmezett).
timestamps boolean Nem. Alapértelmezett: false
diarize boolean Nem. Kihangosítódiarizálás engedélyezése. Alapértelmezett: false

Válasz

JSON- válasz
{
  "text": "Hello, this is a transcription test.",
  "language": "en",
  "duration": 3.5,
  "segments": [
    {
      "start": 0.0,
      "end": 1.8,
      "text": "Hello, this is",
      "speaker": "SPEAKER_00"
    },
    {
      "start": 1.8,
      "end": 3.5,
      "text": "a transcription test.",
      "speaker": "SPEAKER_00"
    }
  ]
}

Hang klónozása

POST /v1/tts/clone/

A beszéd generálása klónozott hangban. Referenciális hang és szöveg feltöltése.

Kérelmező szerv (multipart/form-data)

ParaméterTípusSzükségesLeírás
reference_audio file Igen. Reference voice audio (10-30 másodperc ajánlott). Max 20MB.
text string Igen. SMS-t a klónozott hangra.
model string Nem. Klónmodell: chatterbox (alapértelmezett), cosyvoice2 , gpt-sovits
format string Nem. Kimeneti formátum: mp3 (alapértelmezett), wav , flac
language string Nem. Célnyelvi kód. A kiválasztott modellnek támogatnia kell.

Válasz

Visszaadja a hangfájlt bináris adatként, ugyanaz, mint a TTS végpont.

Hangváltó

POST /v1/voice-convert/

Konvertálni audio, hogy hang, mint egy másik hang. Feltöltés forrás audio és válassza ki a cél hang.

Kérelmező szerv (multipart/form-data)

ParaméterTípusSzükségesLeírás
file file Igen. Source audio file (MP3, WAV, FLAC). Max 50MB.
target_voice string Igen. Cél hangazonosító konvertálni (használja a /v1/voices/ listára a rendelkezésre álló hangokat)
model string Nem. Hangkonverziós modell: openvoice (alapértelmezett), knn-vc
format string Nem. Kimeneti formátum: wav (alapértelmezett), mp3 , flac

Példa kérés

cURL
curl -X POST https://api.tts.ai/v1/voice-convert/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@source_audio.mp3" \
  -F "target_voice=af_bella" \
  -F "model=openvoice" \
  -o converted.wav

Válasz

Visszaadja az átalakított audio fájlt bináris adatként.

Beszédfordítás

POST /v1/speech-translate/

Fordítsa a beszélt audio egyik nyelvről a másikra. Kombinálja a beszéd-szöveg, fordítás, és szöveg-beszélgetés egyetlen hívás.

Kérelmező szerv (multipart/form-data)

ParaméterTípusSzükségesLeírás
file file Igen. Source audio fájl az eredeti nyelven. Max 100MB.
target_language string Igen. Célnyelvi kód (pl. es , fr , de , ja )
voice string Nem. Voice for translated output. Automatikusan kiválasztott, ha kihagyták.
preserve_voice boolean Nem. Az eredeti hangszóró hangjellemzőinek megőrzése. Alapértelmezett: false

Válasz

JSON- válasz
{
  "original_text": "Hello, how are you?",
  "translated_text": "Hola, como estas?",
  "source_language": "en",
  "target_language": "es",
  "audio_url": "https://api.tts.ai/v1/results/translate_abc123.mp3",
  "credits_used": 5
}

Beszéd a beszédhez

POST /v1/speech-to-speech/

A beszédstílust, érzelmeket vagy szülést alakítsuk át, miközben megtartjuk a tartalmat. Hasznos a hangbeállításhoz, a járkáláshoz és a kifejezőképességhez.

Kérelmező szerv (multipart/form-data)

ParaméterTípusSzükségesLeírás
file file Igen. Source beszéd audio fájl. Max 50MB.
voice string Igen. Cél hangazonosító a kimeneti beszédhez
model string Nem. Modell: openvoice (alapértelmezett), chatterbox
emotion string Nem. Target emotion: neutral , happy , sad , >angry , excited
speed float Nem. Alapértelmezés: 1.0 . Tartomány: 0.5 - 2.0

Válasz

Visszaadja az átalakított audio fájlt bináris adatként.

Hangeszközök

Hangfeldolgozási végpontok javítása, vokális eltávolítása, szárhasadás, és így tovább.

POST /v1/audio/enhance/

Növelje a hangminőséget: denoise, javítja az egyértelműséget, szuperfelbontás.

file fileHangfájl növelése
denoise booleanA denoising engedélyezése (alapértelmezett: true)
enhance_clarity booleanA beszéd egyértelműségének javítása (alapértelmezett: true)
super_resolution booleanGyors hangminőség (alapértelmezett: hamis)
strength integer1-3 (light, medium, strong). Alapértelmezett: 2
POST /v1/audio/separate/

Külön vokálok az instrumentális (vokális eltávolítás) vagy osztott szárak.

file fileAudio fájlt külön kell választani
model stringdemucs (alapértelmezés) vagy spleeter
stems integerSzárak száma: 2, 4, 5, vagy 6 (alapértelmezett: 2)
format stringKimeneti formátum: wav , mp3 , flac
POST /v1/audio/dereverb/

Távolítsa el az echo-t és a reverb-t a hangfelvételekről.

file fileA feldolgozáshoz szükséges hangfájl
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Ingyenes

Hangelemzés a kulcsok, a BPM és az időjelek érzékelésére.

file fileAudio fájl az elemzéshez
Válasz
{
  "key": "C",
  "scale": "Major",
  "bpm": 120.0,
  "time_signature": "4/4",
  "camelot": "8B",
  "compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
POST /v1/audio/convert/ Ingyenes

Audió konvertálása formátumok között.

file fileHangfájl konvertálni
format stringCélformátum: mp3 , wav , flac , ogg , m4a , aac
bitrate integerKimeneti bitráta kbps-ben: 64, 128, 192, 256, 320
sample_rate integerMintaarány: 22050, 44100, 48000
channels stringmono vagy stereo

Hangcsevegés

POST /v1/voice-chat/

Küldjön hang vagy szöveg, és kap egy MI válasz szintetizált beszéd.

Kérelmező szerv (multipart/form-data vagy JSON)

ParaméterTípusSzükségesLeírás
audio file Nem.* Audio input (vagy audio vagy text szükséges)
text string Nem.* Szövegbemenet (vagy audio vagy text szükséges)
voice string Nem. Voice for AI response. Default: af_bella
tts_model string Nem. A válasz TTS-modellje. Alapértelmezett: kokoro
system_prompt string Nem. Egyéni rendszer gyors az MI-hez
conversation_id string Nem. Folytassa a meglévő beszélgetést

Válasz

JSON- válasz
{
  "conversation_id": "conv_abc123",
  "user_text": "What is the capital of France?",
  "ai_text": "The capital of France is Paris.",
  "audio_url": "https://api.tts.ai/v1/audio/tmp/resp_xyz.mp3",
  "credits_used": 3
}

Gy. sz.: TTS

POST /v1/tts/batch/

Küldj több szöveget párhuzamos TTS generáció. Opcionálisan kap egy webhook visszahívás, ha minden munka befejeződött.

Paraméterek

ParaméterTípusLeírás
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Válasz

JSON- válasz
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

A GET /v1/tts/batch/result/?batch_id=abc123 szavazási folyamat

Hangbeágyazás

POST /v1/voice-embed/

Elő-komputál egy hang beágyazódik a referencia audio. Használja a visszatért beágyazódott_id későbbi hang klónozás kéréseket közel instant generáció.

Paraméterek

ParaméterTípusLeírás
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Válasz

JSON- válasz
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Egészségügyi ellenőrzés

GET /v1/health/

Ellenőrizze a GPU szerver állapotát, a betöltött modelleket és a sorméretet. Nincs szükség hitelesítésre.

Válasz

JSON- válasz
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Listamodellek

GET /v1/models/

Visszaadja az összes rendelkezésre álló modell listáját képességeikkel.

Válasz

JSON- válasz
{
  "models": [
    {
      "id": "kokoro",
      "name": "Kokoro",
      "type": "tts",
      "tier": "standard",
      "languages": ["en", "ja", "ko", "zh", "fr"],
      "supports_cloning": false,
      "supports_streaming": true,
      "credits_per_1k_chars": 2
    },
    {
      "id": "chatterbox",
      "name": "Chatterbox",
      "type": "tts",
      "tier": "premium",
      "languages": ["en"],
      "supports_cloning": true,
      "supports_streaming": true,
      "credits_per_1k_chars": 4
    }
  ]
}

Hangok listája

GET /v1/voices/

Visszaadja a rendelkezésre álló hangok listáját, opcionálisan modell vagy nyelv szerint szűrve.

Lekérdezési paraméterek

ParaméterTípusLeírás
model string Szűrés modellazonosító szerint (pl. kokoro )
language string Szűrés nyelvi kód szerint (pl. en )
gender string Szűrés nemenként: male , női , neutral

Válasz

JSON- válasz
{
  "voices": [
    {
      "id": "af_bella",
      "name": "Bella",
      "model": "kokoro",
      "language": "en",
      "gender": "female",
      "preview_url": "https://api.tts.ai/v1/voices/preview/af_bella.mp3"
    }
  ],
  "total": 142
}

Kód Példák

Szöveg a beszédhez

Python - requests
import requests

API_KEY = "sk-tts-your-key"

# Text to Speech
response = requests.post(
    "https://api.tts.ai/v1/tts/",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "kokoro",
        "text": "Hello from TTS.ai!",
        "voice": "af_bella",
        "format": "mp3"
    }
)

with open("output.mp3", "wb") as f:
    f.write(response.content)

print(f"Credits used: {response.headers.get('X-Credits-Used')}")

Beszéd szövegre

Python - requests
# Speech to Text
with open("recording.mp3", "rb") as f:
    response = requests.post(
        "https://api.tts.ai/v1/stt/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f},
        data={"model": "faster-whisper", "timestamps": "true"}
    )

result = response.json()
print(result["text"])

Hang klónozása

Python - requests
# Voice Cloning
with open("reference.wav", "rb") as ref:
    response = requests.post(
        "https://api.tts.ai/v1/tts/clone/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"reference_audio": ref},
        data={
            "text": "This speech uses a cloned voice.",
            "model": "chatterbox"
        }
    )

with open("cloned_output.mp3", "wb") as f:
    f.write(response.content)

Szöveg a beszédhez

JavaScript - fetch
const API_KEY = 'sk-tts-your-key';

// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'kokoro',
    text: 'Hello from TTS.ai!',
    voice: 'af_bella',
    format: 'mp3'
  })
});

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

Beszéd szövegre

JavaScript - fetch
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');

const response = await fetch('https://api.tts.ai/v1/stt/', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${API_KEY}` },
  body: formData
});

const result = await response.json();
console.log(result.text);

Szöveg a beszédhez

cURL
# Text to Speech
curl -X POST https://api.tts.ai/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"kokoro","text":"Hello!","voice":"af_bella","format":"mp3"}' \
  -o output.mp3

Beszéd szövegre

cURL
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@recording.mp3" \
  -F "model=faster-whisper" \
  -F "timestamps=true"

Hang klónozása

cURL
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "reference_audio=@reference.wav" \
  -F "text=This uses a cloned voice." \
  -F "model=chatterbox" \
  -o cloned.mp3

Hangjavítás

cURL
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@noisy_audio.mp3" \
  -F "denoise=true" \
  -F "enhance_clarity=true" \
  -o enhanced.mp3

Hibakódok

Minden hiba JSON választ ad vissza egy error Field.

Hibaelhárítási formátum
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP állapotHibakódLeírás
400 bad_request Érvénytelen kérési paraméterek. Ellenőrizze a hibaüzenetet a részletekért.
401 unauthorized Hiányzó vagy érvénytelen API kulcs.
402 insufficient_credits Nem elég karakter. Vásárolj többet /áron /.
403 forbidden API hozzáférés nem áll rendelkezésre a tervedben.
404 not_found Modell vagy hang nem található.
413 file_too_large Feltöltött fájl meghaladja a mérethatárt.
429 rate_limited Túl sok a kérés, ellenőrizd a fejléceket.
500 internal_error Kiszolgáló hiba. Próbálja meg később.
503 model_loading Modell töltődik, pár másodperc múlva újra próbálkozunk.

WebhookCity name (optional, probably does not need a translation)

A hosszú távú feladatok (törzshasadás, tétel TTS), akkor egy webhook_url paraméter. Ha a feladat befejeződött, akkor az eredményt az URL.

Webhook Payload
{
  "event": "task.completed",
  "task_id": "task_abc123",
  "status": "success",
  "result_url": "https://api.tts.ai/v1/results/task_abc123",
  "credits_used": 12,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:45Z"
}
Webhook eredmények letölthetők 24 órával a befejezés után. Győződjön meg róla, hogy töltse le őket azonnal.

Készen állsz az építésre?

Szerezd meg az API kulcsot, és kezdd el a TTS.ai-et integrálni az alkalmazásodba.