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

Všetky požiadavky API vyžadujú autentifikáciu prostredníctvom nosičového tokenu 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 100 000 znakov
Pre 60 5 100 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 Áno Identifikácia modelu (napr. kokoro, chatterbox, piper)
text string Áno Text na prevod na reč (max. 100 000 znakov na požiadavku)
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á.
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

Odpoveď

Vráti zvukový súbor ako binárne dáta s príslušnou hlavičkou Content-Type (audio/mpeg, audio/wav, atď.).

Hlavičky odpovedí
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

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
}

Príklady kódu

Prevod textu na reč

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')}")

Prevod reči na text

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"])

Klonovanie hlasu

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)

Prevod textu na reč

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();

Prevod reči na text

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);

Prevod textu na reč

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

Prevod reči na text

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"

Klonovanie hlasu

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

Vylepšenie zvuku

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

Kódy chybových hlásení

Všetky chyby vrátia odpoveď JSON s error pole.

Formát odpovede na chybu
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
Stav HTTPKód chybového hláseniaPopis
400 bad_request Neplatné parametre požiadavky. Podrobnosti nájdete v chybovom hlásení.
401 unauthorized Chýbajúci alebo neplatný kľúč API.
402 insufficient_credits Nie je dostatok znakov. Kúpte viac na /pricing/.
403 forbidden Prístup k rozhraniu API nie je vo vašom pláne k dispozícii.
404 not_found Model alebo hlas sa nenašiel.
413 file_too_large Nahraný súbor prekračuje limit veľkosti.
429 rate_limited Príliš veľa požiadaviek. Skontrolujte hlavičky limitov rýchlosti.
500 internal_error Skúste to znova neskôr.
503 model_loading Skúste to znova za pár sekúnd alebo pokračujte na úvodnú stránku.

Webhook

Pri dlhotrvajúcich úlohách (rozdelenie kmeňa, dávkové TTS) môžete zadať parameter webhook_url Po dokončení úlohy postujeme výsledok na vašu URL adresu.

Užitočné zaťaženie webhooku
{
  "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"
}
Výsledky webhookov sú k dispozícii na stiahnutie 24 hodín po dokončení, preto si ich stiahnite čo najskôr.

Pripravení na stavbu?

Získajte API kľúč a začnite integrovať TTS.ai do svojich aplikácií.