Dokumentacija API
Vključite TTS.ai v vaše aplikacije z našim REST API. OpenAI kompatibilen format za enostavno migracijo.
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
/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.
Authorization: Bearer sk-tts-your-api-key-here
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")
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');
Osnovni URL
Vsi opazovani dogodki so v primerjavi s tem osnovnim URL-jem. Na primer, dogodek TTS je:
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
Pretvori besedilo v zvok govora. Vrne zvočno datoteko v zahtevanem formatu.
Telo zahtevka
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| model | string | Ne | Vzorec ID (npr. < koda>kokoro , < koda>chatterbox , < koda>piper . Če izpustimo, samodejno izberemo model, ki podpira zahtevani |
| 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 koda>. 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 koda> |
Zahtevek za primer
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 Privzeto datumsko obliko je The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
tolmačenje kot Vnos Izgovorjeno 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 mdy za angleško in dmy drugje; prevzemi z format=\{
"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
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.Celoten primer
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)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
Govor na besedilo
Transcribe audio na besedilo. Podpira 99 jezikov z avto-detekcijo.
Telo zahtevka (multipart/form-data)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| 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 koda> |
Odziv
{
"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
Ustvari govor v kloniranem glasu. Naloži referenčni zvok in besedilo.
Telo zahtevka (multipart/form-data)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| 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
Pretvori zvok v zvok kot drugačen glas. Pošlji zvok vira in izberi tarčo glasu.
Telo zahtevka (multipart/form-data)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| 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 -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
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)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| file | file | Da, da. | Izvorna zvočna datoteka v izvirnem jeziku. Max 100MB. |
| target_language | string | Da, da. | Koda ciljnega jezika (npr. |
| 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
{
"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
Preoblikovanje govora, čustva, ali dostava ob ohranjanju vsebine. Koristno za prilagoditev tona, hodljenje in izrazitost.
Telo zahtevka (multipart/form-data)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| 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>, |
| speed | float | Ne | Nastavitev hitrosti. Privzeto: < koda>1.0 koda>. 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č.
Izboljšati kakovost zvoka: denoize, izboljšati jasnost, super ločljivost.
| file file | Zvočna datoteka za izboljšanje |
| denoise boolean | Omogoči denoziranje (privzeto: true) |
| enhance_clarity boolean | Izboljšaj jasnost govora (privzeto: true) |
| super_resolution boolean | Povišana kakovost zvoka (privzeto: napačno) |
| strength integer | 1-3 (lahka, srednja, močna). Privzeto: 2 |
ločevanje vokalov od instrumentov (glasovno odstranjevanje) ali razdeljeno v stebla.
| file file | Zvočna datoteka za ločitev |
| model string | demucs (privzeto) ali spleeter |
| stems integer | Število stebel: 2, 4, 5 ali 6 (privzeto: 2) |
| format string | Izhodna oblika: < koda>wav, < koda>>mp3, < koda>flac |
Odstrani odmev in odmev iz zvočnih posnetkov.
| file file | Zvočna datoteka za obdelavo |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analizirajte zvok za odkrivanje ključa, BPM in časovnega podpisa.
| file file | Zvočna datoteka za analizo |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Pretvori zvok med formati.
| file file | Zvočna datoteka za pretvorbo |
| format string | Ciljna oblika: < koda> mp3 , < koda>wav, < koda>flac, < koda>, < koda>m4a, < koda>aac |
| bitrate integer | Izhodna hitrost v kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Stopnja vzorčenja: 22050, 44100, 48000 |
| channels string | mono ali stereo |
Glasovni pogovor
Pošljite zvok ali besedilo in prejmite odgovor AI z sintetiziranim govorom.
Telo zahtevka (multipart/form-data ali JSON)
| Parameter | Vrsta | Zahtevana | Opis |
|---|---|---|---|
| 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 koda> |
| system_prompt | string | Ne | Porabljeni sistemski pogon za AI |
| conversation_id | string | Ne | Nadaljuj obstoječi pogovor |
Odziv
{
"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
Predložite več besedil za vzporedno TTS generacijo. Izbirno prejmete povratni klic na spletni strani, ko so vsa delovna mesta končana.
Parametri
| Parameter | Vrsta | Opis |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Dodatni URL za rezultate POST, ko se serija konča. |
Odziv
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Raziskava napredka z GET /v1/tts/batch/rezult/?batch_id=abc123
Glasovno vgrajevanje
Predračunajte glasovno vgradnjo iz referenčnega zvoka. Uporabite vrnjeno embed_id v poznejših glasovnih zahtevah za kloniranje za skoraj instant generacijo.
Parametri
| Parameter | Vrsta | Opis |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Odziv
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Preverjanje zdravstvenega stanja
Preverite status strežnika GPU, naložene modele in velikost vrstice. Overitev ni potrebna. Odstranjen je 30 sekund.
Odziv
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Seznam modelov
Vrne seznam vseh razpoložljivih modelov z njihovimi zmožnostmi.
Odziv
{
"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
Vrne seznam vseh razpoložljivih glasov, neobvezno filtriranih po modelu ali jeziku.
Parametri poizvedbe
| Parameter | Vrsta | Opis |
|---|---|---|
| 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
{
"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
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
| Parameter | Zahtevana | Opis |
|---|---|---|
| uuid | Da, da. | Job UUID je vrnil /v1/tts/ ali /v1/voice-klon/. |
| format | Ne | < koda>Srt (privzeto) ali < koda>vt . |
| download | Ne | < koda>1 koda> za pošiljanje < koda>Content- Disposition: pritrditev koda> tako da brskalnik shrani namesto zaslonov. |
| language | Ne | Nasvet modelu poravnave (samodejno zaznano, če je izpuščeno). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Izgovorni slovar novo
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)
| Parameter | Vrsta | Opis |
|---|---|---|
| word | string | Beseda, ki jo je treba premostiti (npr. < koda>GIF , < koda>Antropična ). |
| replacement | string | Kako ga črkovati za model (npr. jiff , an THROP ick ). |
| language | string | Izbirna koda ISO. Prazen = velja za vse jezike. |
| case_sensitive | boolean | Privzeto < koda>ponarejeno . Ponastavi se natančno, ko < koda>true . |
# 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