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/

Auth

Bearer token via Authorization fejléc

Hitelesítés

Nincs szükség kulcsra. Névtelen hozzászólások /v1/tts/ munka nélkül bármilyen szél, akár 5000 karakter / nap / IP, bármely szabad modell (piper, vits, melotts, kokoro). Jelentkezz ingyenes fiókra, hogy 15 000 bónusz karaktert kapj és hozzáférj a prémium modellekhez.

Prémium modellek és magasabb díjkorlátok esetén a Beaver token-nel hitelesíteni kell 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 1 millió chars
Pro 60 5 1 millió 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 Nem. Modellazonosító (pl. kokoro , > chatterbox , >> piperer ). Ha kihagytuk, automatikusan kiválasztunk egy olyan modellt, amely támogatja a kért language html kokoro en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper egyéb támogatott nyelvekre (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.)
text string Igen. Szöveg konvertálni beszédre. Kérelem-sapka: 500 karakter (névtelen), 5000 (szabad számla), 1 000 000 (fizetett terv). Hosszú bemenetek auto-csukott szerver oldalán.
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 ).
instructions string Nem. Cselekvő/szállítási dákók (≤500 karakter). pl. \
pronunciations object | array Nem. Kiejtési felülbírálás kérése esetén. vagy {\
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

SSML címkék

Csomagszámok, dátumok, pénznem, telefonszámok és betűszavak

interpretációkéntBemenetKimondottan:
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31December thirty-first, nineteen ninety-nine
time14:30two thirty PM
telephone+1-555-867-5309plus one five five five eight six seven…
currency$1,234.56one thousand two hundred thirty-four dollars and fifty-six cents
spell-outNASAN A S A

Date format defaults to mdy for English and dmy others; override with format=\

Példa
{
  "model": "kokoro",
  "voice": "af_bella",
  "text": "Your appointment is on <say-as interpret-as=\"date\">2026-04-26</say-as> at <say-as interpret-as=\"time\">14:30</say-as>. Please call <say-as interpret-as=\"telephone\">+1-555-867-5309</say-as> if you need to reschedule."
}

Válasz

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Full example

Python
import requests, time

API_KEY = "sk-tts-your-key"
BASE = "https://api.tts.ai"

# 1. Submit TTS request
resp = requests.post(f"{BASE}/v1/tts/", json={
    "model": "kokoro",
    "text": "Hello from TTS.ai!",
    "voice": "af_bella"
}, headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()
uuid = data["uuid"]

# 2. Poll for result
while True:
    result = requests.get(f"{BASE}/v1/speech/results/",
        params={"uuid": uuid}).json()
    if result["status"] == "completed":
        # 3. Download audio
        audio = requests.get(result["result_url"])
        with open("output.mp3", "wb") as f:
            f.write(audio.content)
        break
    elif result["status"] == "failed":
        raise Exception(result.get("error", "Generation failed"))
    time.sleep(1.5)

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

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
}

Felirat (SRT / VTT) új

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

Összehangolt feliratok generálása bármilyen befejezett TTS feladathoz. Futtatás Whisper beállítás az audio és visszatér SRT vagy WebVTT. Az eredmény a lemezen van cache-ben, így egy második hívás ugyanazon uid egy lemez olvasása.

Lekérdezési paraméterek

ParaméterSzükségesLeírás
uuidIgen.Job UUID returned by /v1/tts/ or /v1/voice-clone/.
formatNem.srt (alapértelmezett) vagy vtt .
downloadNem.1 küldése Content-Disposition: attachment így a böngésző inkább ment, mint megjeleníti.
languageNem.Tipp a beállítási modellhez (automatikusan felismerve, ha kihagyták).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Kiejtési szótár új

GET POST DELETE /api/v1/pronunciations/

Mondja el a TTS motornak, hogyan kell kimondani az adott szavakat. Mentett bejegyzések automatikus alkalmazás minden TTS kéréshez. 200-belépés számlahatáronként.

Kérelmező szerv (POST)

ParaméterTípusLeírás
wordstringWord to override (pl. GIF , Anthropic ). Word-boundary matched.
replacementstringHogyan kell betűzni a modellt (pl. jiff , ann Hthrop ick ).
languagestringOpcionális ISO-kód. Üres = minden nyelvre vonatkozik.
case_sensitivebooleanAlapértelmezett false . Match case actly when true .
cURL
# Save an entry
curl -X POST https://tts.ai/api/v1/pronunciations/ \
  -H "Authorization: Bearer sk-tts-..." \
  -H "Content-Type: application/json" \
  -d '{"word": "GIF", "replacement": "jiff"}'

# List your entries
curl https://tts.ai/api/v1/pronunciations/ -H "Authorization: Bearer sk-tts-..."

# Delete entry by id
curl -X DELETE "https://tts.ai/api/v1/pronunciations/?id=42" -H "Authorization: Bearer sk-tts-..."

A kérésenkénti felülbírálásokat is átadhatod anélkül, hogy megmentenéd őket. A kiejtések bármely /v1/tts/ híváson objektumként vagy tömbként (lásd a TTS végpont params- ot).

cikk Narrátor új

Dobj le egy