Dokumentacija API

Vključite TTS.ai v vaše aplikacije z našim REST API. OpenAI kompatibilen format za enostavno migracijo.

RESTARNI API Združljiv z OpenAI Odzivi JSON Tekoča podpora

Pregled

TTS.ai API zagotavlja programski dostop do vseh funkcij platforme: sinteza besedila-to-speech, transkripcija govora-to-tekst, kloniranje glasu, izboljšanje avdio in več. API uporablja standardne konvencije REST z JSON zahteve/odziv teles.

Ključ API

Vzemi svoj API ključ od Nastavitve računa. Na voljo na Pro in Enterprise načrtih.

Osnovni URL

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

Auth

Nosilec tokena preko Authorization Glava

Avtentifikacija

Brezplačna stopnja – ključ ni potreben. Anonimni POST-ji /v1/tts/ delo brez avt., do 5000 znakov/dan na IP, z uporabo katerega koli od naših brezplačnih modelov (piper, vits, melotts, kokoro). Prijavite se za brezplačni račun, da dobite 15.000 bonus znakov in dostop do premium modelov.

Za premijske modele in višje meje stopenj, overiti z nosilcem žetona v Authorization Glava.

Glava HTTP
Authorization: Bearer sk-tts-your-api-key-here
Obdrži svojo API ključno skrivnost. Ne delite ga s kodo stranke, javnimi repozitoriji ali dnevniki. Ključev redno vrtite iz nastavitev vašega računa.

SDKs

Uradni SDK-ji olajšajo vključitev TTS.ai v vašo aplikacijo. Oba sta odprta in na voljo 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

Osnovni URL

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

Vsi opazovani dogodki so v primerjavi s tem osnovnim URL-jem. Na primer, dogodek TTS je:

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

Mejne vrednosti

Omejitve stopenj API se razlikujejo glede na načrt:

Načrt Zahtevki/min Sočasno Največja dolžina besedila
Prosto 10 2 500 znakov
Začetek 30 3 1 000 000 znakov
Prof. 60 5 1 000 000 znakov
Podjetje 300 20 50.000 znakov

V vsak odgovor so vključena mejna glava hitrosti: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Kreditni stroški

Storitev Stroški Enota
TTS (Prosti modeli: Piper, VITS, Melotts) 1000 znakov na 1.000 znakov
TTS (Standardni modeli: Kokoro, CosyVoice 2, itd.) 2.000 znakov na 1.000 znakov
TTS (Premijski modeli: Tortoise, Chatterbox itd.) 4000 znakov na 1.000 znakov
Govor na besedilo 2.000 znakov na minuto zvoka
Kloniranje glasu 4000 znakov na 1.000 znakov
Spreminjevalec glasu 3000 znakov na minuto zvoka
Izboljšanje zvoka 2.000 znakov na minuto zvoka
Odstranjevanje glasbe / razdeljevanje stena 3000-4.000 znakov na minuto zvoka
Prevod govora 5000 znakov na minuto zvoka
Glasovni pogovor 3000 znakov na zavoj
Iskalnik ključev & BPM Prosto --
Avdio pretvornik Prosto --

Besedilo v govor

POST /v1/tts/

Pretvori besedilo v zvok govora. Vrne zvočno datoteko v zahtevanem formatu.

Telo zahtevka

ParameterVrstaZahtevanaOpis
model string Ne Vzorec ID (npr. < koda>kokoro , < koda>chatterbox , < koda>piper . Če izpustimo, samodejno izberemo model, ki podpira zahtevani jezik -- < koda>kokoro za en/ja/zh/ko/fr/de/it/pt/es/hi/ru, < koda>piper za druge podprte jezike (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Da, da. Besedilo za pretvorbo v govor. Pokrovček na zahtevo: 500 znakov (anonimno), 5000 (prost račun), 1 000 000 (plačan načrt). Dolgi vhodi so samodejno izčrpani strežniki.
voice string Da, da. Glasovni ID (koristi /v1/voices/ za seznam razpoložljivih glasov)
format string Ne Izhodna oblika: < koda> mp3 (privzeto), < koda>wav, < koda>flac , < koda>
speed float Ne Privzeto: < koda>1.0. Razpon: < koda>0.5 do < koda>2.0
language string Ne Jezikovna koda (npr. en , es ). Samodejno zaznano, če je izpuščeno.
instructions string Ne Delovanje / dobavne sledi (≤500 znakov). npr. \
pronunciations object | array Ne Na zahtevo preprečuje izgovor. Ali < koda> {\
stream boolean Ne Omogoči streaming odziv. Privzeto: < koda> false

Zahtevek za primer

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 oznake

Prelomne številke, datumi, valuta, telefonske številke in akronimi v

tolmačenje kotVnosIzgovorjeno kot
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-3131. december, 19. devedeset.
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

Privzeto datumsko obliko je mdy za angleško in dmy drugje; prevzemi z format=\

Primer
{
  "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."
}

Odziv

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.

Celoten primer

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.

Govor na besedilo

POST /v1/stt/

Transcribe audio na besedilo. Podpira 99 jezikov z avto-detekcijo.

Telo zahtevka (multipart/form-data)

ParameterVrstaZahtevanaOpis
file file Da, da. Zvočna datoteka (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string Ne Model STT: < koda>Whisper (privzeto), < koda>, < koda> hitrejša-Whisper , < koda>smisel
language string Ne Koda jezika. avto za samodejno odkrivanje (privzeto).
timestamps boolean Ne Vključi časovne oznake na ravni besed. Privzeto: false
diarize boolean Ne Omogoči diarizacijo zvočnika. Privzeto: < koda> false

Odziv

Odziv 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"
    }
  ]
}

Kloniranje glasu

POST /v1/tts/clone/

Ustvari govor v kloniranem glasu. Naloži referenčni zvok in besedilo.

Telo zahtevka (multipart/form-data)

ParameterVrstaZahtevanaOpis
reference_audio file Da, da. Referenčni glas (10-30 sekund priporočeno). Max 20MB.
text string Da, da. Besedilo za govor v kloniranem glasu.
model string Ne Klonov model: < koda>chatterbox (privzeto), < koda>kosivoice2, < koda>gpt-sovits
format string Ne Izhodna oblika: < koda> mp3 (privzeto), < koda>wav , < koda>flac
language string Ne Koda ciljnega jezika. Podpora mora biti izbrana z izbranim modelom.

Odziv

Vrne zvočno datoteko kot binarne podatke, enako kot dogodek TTS.

Spreminjevalec glasu

POST /v1/voice-convert/

Pretvori zvok v zvok kot drugačen glas. Pošlji zvok vira in izberi tarčo glasu.

Telo zahtevka (multipart/form-data)

ParameterVrstaZahtevanaOpis
file file Da, da. Izvorna zvočna datoteka (MP3, WAV, FLAC). Max 50MB.
target_voice string Da, da. Ciljna identifikacijska številka za pretvorbo v (koristi /v1/voices/ za seznam razpoložljivih glasov)
model string Ne Model konverzije glasu: openvoice (privzeto), knn-vc
format string Ne Izhodna oblika: < koda>wav (privzeto), < koda>mp3, < koda>flac

Zahtevek za primer

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

Odziv

Vrne konvertirano zvočno datoteko kot binarne podatke.

Prevod govora

POST /v1/speech-translate/

Prevaja govorjen zvok iz enega jezika v drugega. Združuje govor-to-tekst, prevod, in besedilo-to-speech v enem klicu.

Telo zahtevka (multipart/form-data)

ParameterVrstaZahtevanaOpis
file file Da, da. Izvorna zvočna datoteka v izvirnem jeziku. Max 100MB.
target_language string Da, da. Koda ciljnega jezika (npr. es , fr, de, , ja)
voice string Ne Glas za preveden izhod. Samodejno izbrano, če je izpuščeno.
preserve_voice boolean Ne Poskusi ohraniti glasovne značilnosti prvotnega govornika. Privzeto: false

Odziv

Odziv 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
}

Govor govoru

POST /v1/speech-to-speech/

Preoblikovanje govora, čustva, ali dostava ob ohranjanju vsebine. Koristno za prilagoditev tona, hodljenje in izrazitost.

Telo zahtevka (multipart/form-data)

ParameterVrstaZahtevanaOpis
file file Da, da. Izvorna zvočna datoteka. Max 50MB.
voice string Da, da. Ciljna identifikacija glasu za izhodni govor
model string Ne Model: < koda>openvoice (privzeto), < koda>chatterbox
emotion string Ne Ciljna čustva: < koda>nevtralna , < koda>srečna , < koda>sad , < koda>, < koda>, razburjena
speed float Ne Nastavitev hitrosti. Privzeto: < koda>1.0. Razpon: < koda>0.5 do < koda>2.0

Odziv

Vrne spremenjeno zvočno datoteko kot binarne podatke.

Zvočna orodja

Končni dogodki za obdelavo zvoka za izboljšanje, odstranjevanje glasu, ločevanje stebel in več.

POST /v1/audio/enhance/

Izboljšati kakovost zvoka: denoize, izboljšati jasnost, super ločljivost.

file fileZvočna datoteka za izboljšanje
denoise booleanOmogoči denoziranje (privzeto: true)
enhance_clarity booleanIzboljšaj jasnost govora (privzeto: true)
super_resolution booleanPovišana kakovost zvoka (privzeto: napačno)
strength integer1-3 (lahka, srednja, močna). Privzeto: 2
POST /v1/audio/separate/

ločevanje vokalov od instrumentov (glasovno odstranjevanje) ali razdeljeno v stebla.

file fileZvočna datoteka za ločitev
model stringdemucs (privzeto) ali spleeter
stems integerŠtevilo stebel: 2, 4, 5 ali 6 (privzeto: 2)
format stringIzhodna oblika: < koda>wav, < koda>>mp3, < koda>flac
POST /v1/audio/dereverb/

Odstrani odmev in odmev iz zvočnih posnetkov.

file fileZvočna datoteka za obdelavo
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Prosto

Analizirajte zvok za odkrivanje ključa, BPM in časovnega podpisa.

file fileZvočna datoteka za analizo
Odziv
{
  "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/ Prosto

Pretvori zvok med formati.

file fileZvočna datoteka za pretvorbo
format stringCiljna oblika: < koda> mp3 , < koda>wav, < koda>flac, < koda>, < koda>m4a, < koda>aac
bitrate integerIzhodna hitrost v kbps: 64, 128, 192, 256, 320
sample_rate integerStopnja vzorčenja: 22050, 44100, 48000
channels stringmono ali stereo

Glasovni pogovor

POST /v1/voice-chat/

Pošljite zvok ali besedilo in prejmite odgovor AI z sintetiziranim govorom.

Telo zahtevka (multipart/form-data ali JSON)

ParameterVrstaZahtevanaOpis
audio file Ne* Vnos zvoka (ali audio ali tekst je potreben)
text string Ne* Vnos besedila (ali audio ali text zahtevan)
voice string Ne Glas za odziv AI. Privzeto: af_bella
tts_model string Ne Model TTS za odziv. Privzeto: < koda>kokoro
system_prompt string Ne Porabljeni sistemski pogon za AI
conversation_id string Ne Nadaljuj obstoječi pogovor

Odziv

Odziv 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
}

Serija TTS

POST /v1/tts/batch/

Predložite več besedil za vzporedno TTS generacijo. Izbirno prejmete povratni klic na spletni strani, ko so vsa delovna mesta končana.

Parametri

ParameterVrstaOpis
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringDodatni URL za rezultate POST, ko se serija konča.

Odziv

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

Raziskava napredka z GET /v1/tts/batch/rezult/?batch_id=abc123

Glasovno vgrajevanje

POST /v1/voice-embed/

Predračunajte glasovno vgradnjo iz referenčnega zvoka. Uporabite vrnjeno embed_id v poznejših glasovnih zahtevah za kloniranje za skoraj instant generacijo.

Parametri

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

Odziv

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

Preverjanje zdravstvenega stanja

GET /v1/health/

Preverite status strežnika GPU, naložene modele in velikost vrstice. Overitev ni potrebna. Odstranjen je 30 sekund.

Odziv

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

Seznam modelov

GET /v1/models/

Vrne seznam vseh razpoložljivih modelov z njihovimi zmožnostmi.

Odziv

Odziv 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
    }
  ]
}

Seznam glasov

GET /v1/voices/

Vrne seznam vseh razpoložljivih glasov, neobvezno filtriranih po modelu ali jeziku.

Parametri poizvedbe

ParameterVrstaOpis
model string Filtriraj po vzorcu (npr. kokoro )
language string Filtriraj po jezikovni kodi (npr. en )
gender string Filtriraj po spolu: < koda>male , < koda>žena , < koda>nevtral

Odziv

Odziv 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
}

Podnaslovi (SRT / VTT) novo

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

Ustvarjanje sinhroniziranih podnaslovov za vsako opravljeno nalogo TTS. Pogoni Whisper poravnavo preko zvoka in vrne SRT ali WebVTT. Rezultat je shranjevanje na disku, tako da je drugi klic za isti uuid je branje na disku.

Parametri poizvedbe

ParameterZahtevanaOpis
uuidDa, da.Job UUID je vrnil /v1/tts/ ali /v1/voice-klon/.
formatNe< koda>Srt (privzeto) ali < koda>vt .
downloadNe< koda>1 za pošiljanje < koda>Content- Disposition: pritrditev tako da brskalnik shrani namesto zaslonov.
languageNeNasvet modelu poravnave (samodejno zaznano, če je izpuščeno).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Izgovorni slovar novo

GET POST DELETE /api/v1/pronunciations/

Povejte motorju TTS, kako izgovoriti specifične besede. Shranjeni vnosi samodejno uporabite na vsak zahtevek TTS, ki ga naredite. 200-vhodna meja na račun.

Telo zahtevka (POST)

ParameterVrstaOpis
wordstringBeseda, ki jo je treba premostiti (npr. < koda>GIF , < koda>Antropična ).
replacementstringKako ga črkovati za model (npr. jiff , an THROP ick ).
languagestringIzbirna koda ISO. Prazen = velja za vse jezike.
case_sensitivebooleanPrivzeto < koda>ponarejeno . Ponastavi se natančno, ko < koda>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-..."

Prav tako lahko prenesete premostitve na zahtevo, ne da bi jih shranili – vključujejo odpovedi na vsakem /v1/tts/ klic kot objekt ali niz (glej parametre opazovanega dogodka TTS).

Člen Narator novo

Odvrzite en sam