Dokumentace API

Integrovat TTS.ai do vašich aplikací s naší REST API. OpenAI kompatibilní formát pro snadnou migraci.

REST API Kompatibilní OpenAI JSON reakce Podpora streamování

Přehled

API TTS.ai poskytuje programový přístup ke všem funkcím platformy: syntéza text-to-speechu, přepis řeči-textu, hlas klonování, audio vylepšení a další. API používá standardní REST konvence s JSON request/response body.

API klíč

Získejte svůj API klíč od Nastavení účtu. K dispozici na Pro a Enterprise plány.

Základní URL

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

AuthCity in California USA

Průvodce nositelem žetonu prostřednictvím Authorization hlavička

Ověření

Bezplatná úroveň, není nutný žádný klíč. Anonymní POSTy do /v1/tts/ práce bez auth, až 5000 znaků/den za IP, pomocí některého z našich bezplatných modelů (piper, vits, melotts, kokoro). Zaregistrujte se zdarma účet získat 15,000 bonusových znaků a přístup k prémiovým modelům.

V případě prémiových modelů a vyšších úrokových limitů, autentizujte pomocí žetonu Bearer v Authorization hlavička.

HTTP hlavička
Authorization: Bearer sk-tts-your-api-key-here
Udržujte svůj API klíč v tajnosti. Nesdílejte jej v kódu na straně klienta, veřejných úložištích nebo logech. Pravidelně otáčejte klíče z nastavení svého účtu.

SDK

Oficiální SDKs usnadňuje integraci TTS.ai do vaší aplikace. Oba jsou open source a k dispozici na GitHubu.

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šechny koncové body jsou vzhledem k této základní URL. Například cíl TTS je:

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

Limity sazeb

Limity sazeb API se liší podle plánu:

Plán Žádosti/min Současné Maximální délka textu
Volné 10 2 500 znaků
Starter 30 3 1,000,000 charů
Pro 60 5 1,000,000 charů
Podnik 300 20 50 000 znaků

Limitní hlavičky rychlosti jsou zahrnuty v každé odpovědi: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Úvěrové náklady

Služba Náklady Jednotka
TTS (Zdarma modely: Piper, VITS, Melotts) 1000 znaků na 1000 znaků
TTS (Standardní modely: Kokoro, CosyVoice 2, atd.) 2 000 znaků na 1000 znaků
TTS (Premiové modely: Tortoise, Chatterbox, atd.) 4000 znaků na 1000 znaků
Proslov k textu 2 000 znaků za minutu zvuku
Klonování hlasu 4000 znaků na 1000 znaků
Měnič hlasu 3 000 znaků za minutu zvuku
Audio Enhancement 2 000 znaků za minutu zvuku
Vocal Removal / Stem Splitting 3 000-4 000 znaků za minutu zvuku
Překlad řeči 5,000 znaků za minutu zvuku
Hlasový chat 3 000 znaků na otočku
Hledač klíčů a BPM Volné --
Audio převodník Volné --

Text proslovu

POST /v1/tts/

Převést text na zvuk řeči. Vrací audio soubor v požadovaném formátu.

Požadovaný subjekt

ParametrTypPožadovanéPopis zboží
model string Ne. Vzor ID (např., kokoro , chatterbox , piper ). Pokud se vynechá, automaticky vybereme model, který podporuje požadovaný jazyk [*] kokoro pro en/ja/zh/ko/fr/det/pt/es/hi/ru, piper pro ostatní podporované jazyky (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Ano. Text pro převod do řeči. Na vyžádání víčko: 500 znaků (anonymní), 5 000 (free account), 1 000 000 (platný plán). Dlouhé vstupy jsou automatické serverové straně.
voice string Ano. Voice ID (use /v1/voices/ to list available voices)
format string Ne. Výstupní formát: mp3 (přednastaveno), wav , flac , ogg
speed float Ne. Výchozí hodnota: 1.0 . Rozsah: < kód>0.5 do < kód>2.0
language string Ne. Kód jazyka (např. < kód>en , < kód>es ).
instructions string Ne. Acting / delivery cues (≤500 chars). např. \
pronunciations object | array Ne. Per-request výslovnost přepíše. Buď < kód > {\
stream boolean Ne. Povolit streamovací odezvu. Výchozí: < kód>false

Příklad Poptávka

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 < say-as> značky

Zabalit čísla, data, měnu, telefonní čísla a zkratky v

interpretovat jakoVstupMluví jako
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31Prosinec třicet-první, devadesát devadesát-devět
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 atherways; override with format=\

Pří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."
}

Odpověď

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.

Úplný příklad

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.

Proslov k textu

POST /v1/stt/

Transcribe audio to text. Podporuje 99 jazyků s auto-detekce.

Požadovaný subjekt (multipart/form-data)

ParametrTypPožadovanéPopis zboží
file file Ano. Audio soubor (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string Ne. Model STT: šeptal (přednastaveno), rychlý-šeptale , sensevoice
language string Ne. Kód jazyka. auto pro autodetekci (výchozí).
timestamps boolean Ne. Zahrnout časové značky úrovně slov. Výchozí: < kód>false
diarize boolean Ne. Povolit diarizaci reproduktoru. Výchozí: < kód>false

Odpověď

JSONova odpověď
{
  "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"
    }
  ]
}

Klonování hlasu

POST /v1/tts/clone/

Generovat řeč v klonovaném hlase. Nahrát referenční audio a text.

Požadovaný subjekt (multipart/form-data)

ParametrTypPožadovanéPopis zboží
reference_audio file Ano. Referenční hlasový zvuk (10-30 sekund doporučujeme). Max 20MB.
text string Ano. Text mluvit klonovaným hlasem.
model string Ne. Klonový model: chatterbox (přednastaveno), kosyvoice2 , gpt-sovits
format string Ne. Formát výstupu: < kód>mp3 (přednastaveno), < kód>wav , < kód>flac
language string Ne. Cílový jazykový kód. Musí být podporován zvoleným modelem.

Odpověď

Vrací zvukový soubor jako binární data, stejně jako cílový bod TTS.

Měnič hlasu

POST /v1/voice-convert/

Převést zvuk zní jako jiný hlas. Nahrát zdrojový zvuk a vybrat cílový hlas.

Požadovaný subjekt (multipart/form-data)

ParametrTypPožadovanéPopis zboží
file file Ano. Zdrojový audio soubor (MP3, WAV, FLAC). Max 50MB.
target_voice string Ano. ID cílového hlasu pro převod na (use /v1/voices/ na seznam dostupných hlasů)
model string Ne. Voice conversion model: openvoice (přednastaveno), knn-vc
format string Ne. Formát výstupu: wav (přednastaveno), mp3 , flac

Příklad Poptávka

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

Odpověď

Vrací konvertovaný zvukový soubor jako binární data.

Překlad řeči

POST /v1/speech-translate/

Překládejte mluvený zvuk z jednoho jazyka do druhého. Kombinuje řeč-text, překlad, a text-to-speech v jednom hovoru.

Požadovaný subjekt (multipart/form-data)

ParametrTypPožadovanéPopis zboží
file file Ano. Zdrojový audio soubor v původním jazyce. Max 100MB.
target_language string Ano. Kód cílového jazyka (např. < kód>es , < kód>fr , < kód>de , < kód>ja )
voice string Ne. Hlas pro přeložený výstup. Automaticky vybráno, pokud je vynecháno.
preserve_voice boolean Ne. Pokuste se zachovat hlasové vlastnosti původního reproduktoru. Výchozí: false

Odpověď

JSONova odpověď
{
  "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
}

Proslov ke slovu

POST /v1/speech-to-speech/

Transformovat styl řeči, emoce, nebo dodání při zachování obsahu. Užitečné pro přizpůsobení tónu, pochod, a expresivita.

Požadovaný subjekt (multipart/form-data)

ParametrTypPožadovanéPopis zboží
file file Ano. Zdrojový zvukový soubor. Max 50MB.
voice string Ano. Cílové hlasové ID pro výstupní řeč
model string Ne. Vzor: openvoice (přednastaveno), chatterbox
emotion string Ne. Cílová emoce: neutrální , happy , sad , angry , excitovaný
speed float Ne. Výchozí hodnota: 1.0 . Rozsah: 0.5 do 2.0

Odpověď

Vrací transformovaný zvukový soubor jako binární data.

Audio nástroje

Audio zpracování koncové body pro vylepšení, odstranění hlasu, dělení stonků, a další.

POST /v1/audio/enhance/

Zvýšit kvalitu zvuku: denoise, zlepšit jasnost, super rozlišení.

file fileAudio soubor pro vylepšení
denoise booleanPovolit denoising (výchozí: true)
enhance_clarity booleanZvýšit srozumitelnost řeči (výchozí: true)
super_resolution booleanUpscale kvalita zvuku (výchozí: false)
strength integer1-3 (light, medium, strong). Výchozí: 2
POST /v1/audio/separate/

Oddělené vokály od instrumentálů (odstranění zpěvu) nebo rozdělené na stonky.

file fileZvukový soubor k oddělení
model stringdemucs (výchozí) nebo spleeter
stems integerPočet stonek: 2, 4, 5 nebo 6 (výchozí: 2)
format stringVýstupní formát: wav , mp3 , flac
POST /v1/audio/dereverb/

Odstraňte ozvěnu a reverb z audio nahrávek.

file fileZvukový soubor k zpracování
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Volné

Analyzujte zvuk pro detekci klávesy, BPM, a čas signatury.

file fileAudio soubor k analýze
Odpověď
{
  "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/ Volné

Převést zvuk mezi formáty.

file fileAudio soubor převést
format stringCílový formát: < kód > MP3 , < kód > wav , < kód> flac , < kód > ogg , < kód> m4a , < kód>aac
bitrate integerVýstupní datový tok v kbps: 64, 128, 192, 256, 320
sample_rate integerPočet vzorků: 22050, 44100, 48000
channels stringmono nebo stereo

Hlasový chat

POST /v1/voice-chat/

Pošlete audio nebo text a obdržíte odpověď AI se syntetizovaným projevem.

Požadovaný subjekt (multipart/form-data nebo JSON)

ParametrTypPožadovanéPopis zboží
audio file Ne.* Audio input (buď < kód >audio nebo < kód > text požadované)
text string Ne.* Textový vstup (požadovaný buď audio nebo text )
voice string Ne. Voice for AI response. Default: af_bella
tts_model string Ne. TTS model pro odezvu. Výchozí: kokoro
system_prompt string Ne. Pohotovost pro vlastní systém pro AI
conversation_id string Ne. Pokračovat ve stávající konverzaci

Odpověď

JSONova odpověď
{
  "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
}

č. š.: TTS

POST /v1/tts/batch/

Odešlete více textů pro paralelní TTS generování. Volitelně obdržíte webhook callback po dokončení všech pracovních míst.

Parametry

ParametrTypPopis zboží
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringVolitelné URL pro výsledky POST po dokončení šarže.

Odpověď

JSONova odpověď
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Postup zkoušky pomocí GET /v1/tts/batch/result/?batch_id=abc123

Vkládání hlasu

POST /v1/voice-embed/

Předpočítat hlas vkládání z referenčního zvuku. Použijte vrácený embed_id v následných požadavek na klonování hlasu pro téměř okamžitou generaci.

Parametry

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

Odpověď

JSONova odpověď
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Kontrola stavu

GET /v1/health/

Zkontrolujte stav GPU serveru, načtené modely a velikost fronty. Nevyžaduje se žádná autentizace. Dosahováno po dobu 30 sekund.

Odpověď

JSONova odpověď
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Seznam modelů

GET /v1/models/

Vrací seznam všech dostupných modelů s jejich schopnostmi.

Odpověď

JSONova odpověď
{
  "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
    }
  ]
}

Seznam hlasů

GET /v1/voices/

Vrací seznam všech dostupných hlasů, volitelně filtrovaných podle modelu nebo jazyka.

Parametry dotazu

ParametrTypPopis zboží
model string Filtr podle vzoru ID (např. kokoro )
language string Filtr podle jazykového kódu (např. < kód>en )
gender string Filtr podle pohlaví: , ,

Odpověď

JSONova odpověď
{
  "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
}

Subtitles (SRT / VTT) nový

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

Generovat synchronizované titulky pro každou dokončenou práci TTS. Spustí nastavení Whisper přes audio a vrací SRT nebo WebVTT. Výsledek je cachován na disku, takže druhý hovor pro stejný uuid je čtení disku.

Parametry dotazu

ParametrPožadovanéPopis zboží
uuidAno.Job UUID vrátil /v1/tts/ nebo /v1/voice-clone/.
formatNe.srt (přednastaveno) nebo vtt .
downloadNe.1 odeslat < kód>Content-dispozice: příloha takže prohlížeč ukládá spíše než displeje.
languageNe.Nápověda k seřizovacímu modelu (autodetekováno, pokud je vynecháno).
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/

Řekněte TTS motoru, jak vyslovit konkrétní slova. Uložené položky automaticky aplikovat na každý TTS požadavek, který děláte. 200-vstup na účet limit.

Požadovaný subjekt (POST)

ParametrTypPopis zboží
wordstringWord to override (např. GIF , Anthropic ). Word-boundary approached.
replacementstringJak jej vyhláskovat pro model (např. jiff , ann THROP ick ).
languagestringVolitelný kód ISO. Prázdný = platí pro všechny jazyky.
case_sensitivebooleanDefault < code>false . Match case exactly 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-..."

Můžete také projít přes jednotlivé požadavky, aniž byste je ušetřili, včetně < kód > výslovnosti na libovolném /v1/tts/ volání jako objekt nebo pole (viz parametry TTS endpoint).

Článek Vypravěč nový

Drop a single