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

The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.

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.

Základná URL

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

All endpoints are relative to this base URL. For example, the TTS endpoint is:

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

Limity sadzieb

API rate limits vary by plan:

Plán Požiadavky / min Concurrent Max. dĺžka textu
Pre 60 5 5 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 kredit za 1 000 znakov
TTS (štandardné modely: Kokoro, CosyVoice 2, atď.) 2 kredity za 1 000 znakov
TTS (Premium modely: Tortoise, Chatterbox, atď.) 4 kredity za 1 000 znakov
Prevod reči na text 2 kredity za minútu zvuku
Klonovanie hlasu 4 kredity za 1 000 znakov
Menič hlasu 3 kredity za minútu zvuku
Vylepšenie zvuku 2 kredity za minútu zvuku
Vokálne odstránenie / kmeň rozdelenie. 3-4 kredity za minútu zvuku
Preklad reči 5 kreditov za minútu zvuku
Hlasový chat 3 kredity na ťah
Kľúč & BPM Finder Zadarmo --
Free Audio Converter Zadarmo --

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 konverziu na reč (max. 5 000 znakov pre Pro, 50 000 pre Enterprise)
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 rozprávania. 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 požiadavky

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ď

Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).

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 hovoriť 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 požiadavky

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 dáta.

Preklad reči

POST /v1/speech-translate/

Preložiť hovorený zvuk z jedného jazyka do druhého.Kombinuje reč na text, preklad a text 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. Pokus o zachovanie pôvodného reproduktora

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/

Transform speech style, emotion, or delivery while keeping the content. Useful for adjusting tone, pacing, and expressiveness.

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 dáta.

Zvukové nástroje

Audio processing endpoints for enhancement, vocal removal, stem splitting, and more.

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

Analyzujte zvuk na detekciu kľúča, BPM a taktového podpisu.

file fileZvukový 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 stringTarget format: 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ýzva 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
}

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 credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
Stav HTTPError CodePopis
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 kreditov. 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 Model sa načítava, skúste to znova o niekoľko sekúnd.

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 webhooku sú k dispozícii na stiahnutie 24 hodín po dokončení, preto si ich stiahnite čo najskôr.

Ste pripravení stavať?

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