Nahlásiť chybu / požiadavku na funkciu

Dokumentácia rozhrania API

Integrujte TTS.ai do svojich aplikácií pomocou nášho REST API.Formát kompatibilný s OpenAI pre jednoduchú migráciu.

REST API Kompatibilné s OpenAI Odpovede JSON Podpora pre streaming

Prehľad

Rozhranie TTS.ai API poskytuje programový prístup ku všetkým funkciám platformy: syntéza textu na reč, prepis reči na text, klonovanie hlasu, vylepšenie zvuku atď. Rozhranie API používa štandardné konvencie REST s telami požiadaviek a odpovedí JSON.

Kľúč API

Získajte svoj API kľúč od Nastavenia účtu. K dispozícii v plánoch Pro a Enterprise.

Základná URL

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

Autorizácia

Token na doručiteľa cez Authorization hlavička

Overenie pravosti

Bezplatná úroveň – nevyžaduje sa žiadny kľúč. Anonymné POSTy na /v1/tts/ pracovať bez akejkoľvek autorizácie, až 5000 znakov/deň na IP, pomocou niektorého z našich bezplatných modelov (piper, vits, melotts, kokoro). Zaregistrujte sa na bezplatný účet a získajte 15 000 bonusových znakov a prístup k prémiovým modelom.

V prípade prémiových modelov a vyšších limitov sa overte pomocou tokenu nosiča v Authorization hlavička.

Hlavička HTTP
Authorization: Bearer sk-tts-your-api-key-here
Udržujte svoj API kľúč v tajnosti. Nezdieľajte ho v kóde na strane klienta, vo verejných úložiskách ani v denníkoch.Kľúče pravidelne rotujte v nastaveniach svojho účtu.

SDK

Oficiálne SDK umožňujú jednoduchú integráciu TTS.ai do vašej aplikácie, obe sú open source a dostupné na GitHub.

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

Základná URL

Základná URL: https://api.tts.ai/v1/

Všetky koncové body sú relatívne k tejto základnej URL adrese.Koncový bod TTS je napríklad:

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

Limity sadzieb

Limity rýchlosti rozhrania API sa líšia podľa plánu:

Plán Požiadavky / min Súbežne Max. dĺžka textu
Voľný 10 2 500 znakov
Štart 30 3 1 000 000 znakov
Pre 60 5 1 000 000 znakov
Podnik 300 20 50 000 znakov

Hlavičky limitu rýchlosti sú zahrnuté v každej odpovedi: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Náklady na úver

Služba Náklady Jednotka
TTS (Bezplatné modely: Piper, VITS, MeloTTS) 1 000 znakov za 1 000 znakov
TTS (štandardné modely: Kokoro, CosyVoice 2, atď.) 2 000 znakov za 1 000 znakov
TTS (Premium modely: Tortoise, Chatterbox, atď.) 4 000 znakov za 1 000 znakov
Prevod reči na text 2 000 znakov za minútu zvuku
Klonovanie hlasu 4 000 znakov za 1 000 znakov
Menič hlasu 3 000 znakov za minútu zvuku
Vylepšenie zvuku 2 000 znakov za minútu zvuku
Vokálne odstránenie / kmeň rozdelenie. 3 000 – 4 000 znakov za minútu zvuku
Preklad reči 5 000 znakov za minútu zvuku
Hlasový chat 3 000 znakov na ťah
Kľúč & BPM Finder Voľný --
Free Audio Converter Voľný --

Prevod textu na reč

POST /v1/tts/

Konvertuje text na reč. Vráti zvukový súbor v požadovanom formáte.

Telo žiadosti

ParameterTypPovinnéPopis
model string Nie ID modelu (napr. kokoro, chatterbox, piper). Ak sa vynechá, automaticky vyberieme model, ktorý podporuje požadovaný jazykkokoro pre en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper pre ostatné podporované jazyky (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/atď.).
text string Áno Text na konverziu na reč. Maximálny počet znakov na požiadavku: 500 znakov (anonymný), 5 000 znakov (bezplatný účet), 1 000 000 znakov (platený plán).
voice string Áno Hlasové ID (použite /v1/voices/ pre zobrazenie dostupných hlasov)
format string Nie Výstupný formát: mp3 (predvolený), wav, flac, ogg
speed float Nie Násobiteľ rýchlosti hovorenia. Predvolené: 1.0. Rozsah: 0.52.0
language string Nie Kód jazyka (napr. sk, sk). Automatická detekcia, ak sa vynechá.
instructions string Nie Konanie / doručovanie signálov (≤500 znakov). napr. \
pronunciations object | array Nie Per-request pronunciation overrides. Either {"GIF": "jiff", "Anthropic": "ann THROP ick"} or [{"word": "GIF", "replacement": "jiff", "case_sensitive": false}]. Stacks on top of saved entries from /api/v1/pronunciations/. Applied as a pre-tokenizer pass — every TTS model honors them.
stream boolean Nie Povoliť odozvu na streamovanie. Predvolené: false

Príklad žiadosti

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

Značky SSML

Zalomenie čísel, dátumov, meny, telefónnych čísel a skratiek do

Interpretovať ichVstupHovorí sa ako
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

Formát dátumu je predvolený na mdy pre angličtinu a dmy inde; prepíšte ho pomocou format=\

Príklad
{
  "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."
}

Odpoveď

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.

Prevod reči na text

POST /v1/stt/

Prepis zvuku do textu. Podporuje 99 jazykov s automatickou detekciou.

Telo žiadosti (multipart/form-data)

ParameterTypPovinnéPopis
file file Áno Zvukový súbor (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string Nie STT model: whisper (predvolené), faster-whisper, sensevoice
language string Nie Kód jazyka. auto pre automatickú detekciu (predvolené).
timestamps boolean Nie Zahrnúť časové pečiatky na úrovni slov. Predvolené: false
diarize boolean Nie Povoliť diarizáciu reproduktorov. Predvolené: false

Odpoveď

Odpoveď JSON
{
  "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"
    }
  ]
}

Klonovanie hlasu

POST /v1/tts/clone/

Vygenerujte reč v klonovanom hlasu. Nahrajte referenčné audio a text.

Telo žiadosti (multipart/form-data)

ParameterTypPovinnéPopis
reference_audio file Áno Referenčný hlasový zvuk (odporúča sa 10-30 sekúnd). Max 20MB.
text string Áno Text na reč v klonovanom hlase.
model string Nie Model klonu: chatterbox (predvolené), cosyvoice2, gpt-sovits
format string Nie Výstupný formát: mp3 (predvolený), wav, flac
language string Nie Cieľový jazykový kód. Musí byť podporovaný zvoleným modelom.

Odpoveď

Vráti zvukový súbor ako binárne dáta, rovnaké ako koncový bod TTS.

Menič hlasu

POST /v1/voice-convert/

Konvertujte zvuk tak, aby znel ako iný hlas. Nahrajte zdrojový zvuk a vyberte cieľový hlas.

Telo žiadosti (multipart/form-data)

ParameterTypPovinnéPopis
file file Áno Zdrojový zvukový súbor (MP3, WAV, FLAC). Max 50MB.
target_voice string Áno Cieľové hlasové ID na konverziu (použite /v1/voices/ na zobrazenie dostupných hlasov)
model string Nie Model konverzie hlasu: openvoice (predvolené), knn-vc
format string Nie Výstupný formát: wav (predvolený), mp3, flac

Príklad žiadosti

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

Odpoveď

Vráti skonvertovaný zvukový súbor ako binárne údaje.

Preklad reči

POST /v1/speech-translate/

Preklad hovoreného zvuku z jedného jazyka do druhého Kombinuje preklad reči na text, preklad a preklad textu na reč v jednom hovore.

Telo žiadosti (multipart/form-data)

ParameterTypPovinnéPopis
file file Áno Zdrojový audio súbor v pôvodnom jazyku. Max 100MB.
target_language string Áno Kód cieľového jazyka (napr. sk, sk, sk, sk)
voice string Nie Hlas pre preložený výstup. Automaticky vybraný, ak je vynechaný.
preserve_voice boolean Nie Snaží sa zachovať charakteristiky hlasu pôvodného rečníka. Predvolené: false

Odpoveď

Odpoveď JSON
{
  "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
}

Reč na reč

POST /v1/speech-to-speech/

Transformujte štýl reči, emócie alebo prezentáciu pri zachovaní obsahu.Užitočné na úpravu tónu, tempa a expresivity.

Telo žiadosti (multipart/form-data)

ParameterTypPovinnéPopis
file file Áno Zdrojový zvukový súbor reči. Max 50MB.
voice string Áno Cieľové hlasové ID pre výstupnú reč
model string Nie Model: openvoice (predvolené), chatterbox
emotion string Nie Cieľová emócia: neutrálna, šťastná, smutná, nahnevaná, vzrušená
speed float Nie Nastavenie rýchlosti. Predvolené: 1.0. Rozsah: 0.52.0

Odpoveď

Vráti transformovaný zvukový súbor ako binárne údaje.

Zvukové nástroje

Koncové body spracovania zvuku na vylepšenie, odstránenie hlasu, rozdelenie stonky a ďalšie.

POST /v1/audio/enhance/

Zlepšenie kvality zvuku: odstránenie šumu, zlepšenie jasnosti, super rozlíšenie.

file fileZvukový súbor na vylepšenie
denoise booleanPovoliť odstránenie šumu (predvolené: true)
enhance_clarity booleanZlepšiť zrozumiteľnosť reči (predvolené: true)
super_resolution booleanZvýšenie kvality zvuku (predvolené: false)
strength integer1-3 (ľahký, stredný, silný). Predvolené: 2
POST /v1/audio/separate/

Oddeľte vokály od inštrumentálov (odstránenie vokálu) alebo rozdeľte na stonky.

file fileZvukový súbor na oddelenie
model stringdemucs (predvolené) alebo spleeter
stems integerPočet stoniek: 2, 4, 5 alebo 6 (predvolené: 2)
format stringVýstupný formát: wav, mp3, flac
POST /v1/audio/dereverb/

Odstráňte echo a reverb zo zvukových nahrávok.

file fileZvukový súbor na spracovanie
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Zadarmo

Analyzovať zvuk na detekciu kľúča, BPM a takt podpisu.

file fileAudio súbor na analýzu
Odpoveď
{
  "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/ Zadarmo

Prevod zvuku medzi formátmi.

file fileAudio súbor na konverziu
format stringCieľový formát: mp3, wav, flac, ogg, m4a, aac
bitrate integerVýstupná bitová rýchlosť v kbps: 64, 128, 192, 256, 320
sample_rate integerVzorkovacia frekvencia: 22050, 44100, 48000
channels stringmono alebo stereo

Hlasový chat

POST /v1/voice-chat/

Odoslať zvuk alebo text a prijímať AI odpoveď so syntetizovanou rečou.

Telo žiadosti (multipart/form-data alebo JSON)

ParameterTypPovinnéPopis
audio file Nie* Zvukový vstup (vyžaduje sa audio alebo text)
text string Nie* Zadávanie textu (vyžaduje sa audio alebo text)
voice string Nie Hlas pre odpoveď AI. Predvolené: af_bella
tts_model string Nie Model TTS pre odpoveď. Predvolené: kokoro
system_prompt string Nie Vlastné systémové výzvy pre AI
conversation_id string Nie Pokračovanie v existujúcej konverzácii

Odpoveď

Odpoveď JSON
{
  "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
}

Dávkový TTS

POST /v1/tts/batch/

Odoslať viacero textov pre paralelnú generáciu TTS.Voliteľne dostať spätné volanie webhook, keď sú všetky úlohy dokončené.

Parametre

ParameterTypOpis
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Odpoveď

Odpoveď JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Priebeh hlasovania pomocou GET /v1/tts/batch/result/?batch_id=abc123

Vloženie hlasu

POST /v1/voice-embed/

Použite vrátené embed_id v nasledujúcich požiadavkách na klonovanie hlasu na takmer okamžité generovanie.Use the returned embed_id in subsequent voice cloning requests for almost instant generation.

Parametre

ParameterTypOpis
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Odpoveď

Odpoveď JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Kontrola zdravotného stavu

GET /v1/health/

Skontrolujte stav servera GPU, načítané modely a veľkosť frontu. Nevyžaduje sa žiadne overenie. Vyrovnávacia pamäť na 30 sekúnd.

Odpoveď

Odpoveď JSON
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Zoznam modelov

GET /v1/models/

Vráti zoznam všetkých dostupných modelov s ich schopnosťami.

Odpoveď

Odpoveď JSON
{
  "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
    }
  ]
}

Zoznam hlasov

GET /v1/voices/

Vráti zoznam všetkých dostupných hlasov, voliteľne filtrovaných podľa modelu alebo jazyka.

Parametre dotazu

ParameterTypPopis
model string Filtrovať podľa ID modelu (napr. kokoro)
language string Filtrovať podľa kódu jazyka (napr. sk)
gender string Filtrovať podľa pohlavia: mužský, ženský, neutrálny

Odpoveď

Odpoveď JSON
{
  "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
}

Titulky (SRT / VTT) nové

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

Generuje synchronizované titulky pre každú dokončenú úlohu TTS. Spustí zarovnanie Whisper cez audio a vráti SRT alebo WebVTT. Výsledok je uložený na disku, takže druhé volanie pre rovnaké uuid je čítanie disku.

Parametre dotazu

ParameterPovinnéPopis
uuidÁnoUUID úlohy vrátené /v1/tts/ alebo /v1/voice-clone/.
formatNiesrt (predvolené) alebo vtt.
downloadNie1 na odoslanie Content-Disposition: attachment, aby prehliadač ukladal namiesto zobrazovania.
languageNieNápoveda k modelu zarovnania (automaticky detekovaná, ak je vynechaná).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Slovník výslovnosti nové

GET POST DELETE /api/v1/pronunciations/

Uložené položky sa automaticky použijú pri každej žiadosti o prevod textu na reč, ktorú zadáte. Limit 200 položiek na účet.

Telo žiadosti (POST)

ParameterTypPopis
wordstringSlovo, ktoré sa má prepísať (napr. GIF, Anthropic). Zhoda s hranicou slova.
replacementstringAko sa to píše pre model (napr. jiff, ann THROP ick).
languagestringVoliteľný ISO kód. Prázdny = platí pre všetky jazyky.
case_sensitivebooleanPredvolené false. Presne zhodovať veľkosť písmen, keď 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-..."

Môžete tiež odovzdať prepísanie na požiadanie bez uloženia — zahrňte pronunciations na akékoľvek /v1/tts/ volanie ako buď objekt alebo pole (pozri parametre koncového bodu TTS).

Článok Moderátor nové

Na ľubovoľnú stránku článku umiestnite jeden