API dokumentacija
Į jūsų programas integruoti TTS.ai su mūsų REST API. OpenAI suderinama forma lengva migracija.
Apžvalga
TTS.ai API užtikrina programinę prieigą prie visų platformos funkcijų: teksto-į-speech sintezės, kalbos-teksto transkripcijos, balso klonavimo, garso stiprinimo ir kt. API naudoja standartines REST konvencijas su JSON užklausų/atsakymo organais.
API raktas
Gauti API raktą iš Paskyros nustatymai. Galima rasti Pro ir Enterprise planuose.
Pagrindinis URL
https://api.tts.ai/v1/
Auth
Meškerio simbolis per Authorization antraštė
Autentikacija
/v1/tts/ dirbti be jokio Auth, iki 5000 simbolių/dieną per IP, naudojant bet kurį iš mūsų nemokamų modelių (piper, vits, melotts, kokoro). Užsiregistruoti nemokamai paskyrai gauti 15,000 premijų simbolių ir privilegijuotųjų modelių.
Priemokų modeliams ir aukštesnių normų riboms patvirtinti Authorization antraštė.
Authorization: Bearer sk-tts-your-api-key-here
SDKs
Oficialus SDKs leidžia lengvai integruoti TTS.ai į jūsų programą. Abu yra atviras šaltinis ir prieinama 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');
Pagrindinis URL
Visos vertinamosios baigtys yra santykinės šiam baziniam URL. Pavyzdžiui, TTS vertinamoji baigtis yra:
Norminės ribos
API normos ribos skiriasi pagal planą:
| Planas | Prašymai/min. | Kartu | Maksimalus teksto ilgis |
|---|---|---|---|
| Neapmuitinama | 10 | 2 | 500 chars |
| Pradžia | 30 | 3 | 1000 000 chars |
| Pro | 60 | 5 | 1000 000 chars |
| Įmonė | 300 | 20 | 50 000 chars |
Dažnio ribos antraštės yra įtrauktos į kiekvieną atsakymą: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Kredito išlaidos
| Dokumentų įteikimas | Išlaidos | Vienetas |
|---|---|---|
| TTS (nemokami modeliai: Piper, VITS, MeloTTS) | 1000 simbolių | 1 000 simbolių |
| TTS (standartiniai modeliai: Kokoro, CosyVoice 2 ir t. t.) | 2 000 simbolių | 1 000 simbolių |
| TTS (Premijos modeliai: Tortoise, Chatterbox ir t. t.) | 4000 simbolių | 1 000 simbolių |
| Kalba tekstui | 2 000 simbolių | per minutę garso |
| Balso klonavimas | 4000 simbolių | 1 000 simbolių |
| Balso keitėjas | 3000 simbolių | per minutę garso |
| Garso pagerinimas | 2 000 simbolių | per minutę garso |
| Vokalinis pašalinimas / suskaidymas | 3 000–4 000 simbolių | per minutę garso |
| Kalbų vertimas | 5 000 ženklų | per minutę garso |
| Balso pokalbis | 3000 simbolių | Posūkio metu |
| Raktų ir BPM ieškiklis | Neapmuitinama | -- |
| Garso konverteris | Neapmuitinama | -- |
Tekstas į kalbą
Konvertuoti tekstą į kalbos garso. Grąžina garso failą prašomu formatu.
Prašymą teikianti institucija
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| model | string | Nr. | Pavyzdys ID (pvz., |
| text | string | Taip | Tekstas konvertuoti į kalbą. Pagal užklausą dangtelis: 500 chars (anoniminis), 5000 (nemokama sąskaita), 1000,000 (mokamas planas). |
| voice | string | Taip | Balso ID (galimų balsų sąrašui naudoti |
| format | string | Nr. | Išvesties formatas: mp3 (numatyta), wav , flac , g |
| speed | float | Nr. | Kalba greičio daugiklis. Numatytasis: |
| language | string | Nr. | Kalbos kodas (pvz., en , es ). Automatiškai nustatomas, jei jis praleistas. |
| instructions | string | Nr. | Veikiantys / pristatymo cues (≤500 chars). pvz., \ |
| pronunciations | object | array | Nr. | Užklausa nutraukta. Arba < code> {\ |
| stream | boolean | Nr. | Įjungti srautinį atsaką. Numatytasis: < code> false code> |
Pavyzdžio užklausa
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
ŽVEJYBOS ŽEMĖS ŪKIO ŽUVININKYSTĖS ŽUVININKYSTĖ
Laužyti numerius, datas, valiutą, telefono numerius, ir santrumpas Data defaults to < code> mdy code> for English ir < code> dmy code> kitur; apsisukimas su < code>format=\ 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
interpretuoti kaip Įvestis Spoken kaip cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31Gruodžio trisdešimt pirmoji, devyniolika devyniasdešimt devyni 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 {
"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."
}Atsakas
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.Visas pavyzdys
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.
Kalba tekstui
Perrašyti garsą į tekstą. Palaiko 99 kalbas su automatiniu aptikimu.
Prašymą teikianti institucija (multipart/form-data)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| file | file | Taip | Garso failas (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks. 100MB. |
| model | string | Nr. | STT modelis: whisper (numatyta), fasher-whisper , sensessount |
| language | string | Nr. | Kalbos kodas. Auto automatiniam aptikimui (numatyta). |
| timestamps | boolean | Nr. | Įtraukti žodžio lygio žymeles. Numatytasis: < code> false code> |
| diarize | boolean | Nr. | Įjungti garsiakalbio diarizaciją. Numatytasis: < code> false code> |
Atsakas
{
"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"
}
]
}
Balso klonavimas
Generuoti kalbą klonuotu balsu. Įkelkite referencinį garsą ir tekstą.
Prašymą teikianti institucija (multipart/form-data)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| reference_audio | file | Taip | Atskaitos balso garsas (10-30 sekundžių rekomenduojama). Maks. 20MB. |
| text | string | Taip | Tekstas kalbėti klonuotame balse. |
| model | string | Nr. | Klono modelis: chatterbox (numatyta), cosyvoice2 , gpt-sovits |
| format | string | Nr. | Išvesties formatas: mp3 (numatyta), wav , flac |
| language | string | Nr. | Tikslinės kalbos kodas. Turi būti palaikomas pasirinktu modeliu. |
Atsakas
Grąžina garso failą kaip dvejetainius duomenis, tą patį kaip ir TTS vertinamoji baigtis.
Balso keitėjas
Konvertuoti garsą į kitą garsą. Įkelkite šaltinį ir pasirinkite tikslinį balsą.
Prašymą teikianti institucija (multipart/form-data)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| file | file | Taip | Pradinis garso failas (MP3, WAV, FLAC). |
| target_voice | string | Taip | Tikslinio balso ID konvertuoti į (naudoti / v1/balsai / sąrašą turimus balsus) |
| model | string | Nr. | Balso konvertavimo modelis: openvoice (numatyta), knn-vc |
| format | string | Nr. | Išvesties formatas: wav (numatyta), mp3, flac |
Pavyzdžio užklausa
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
Atsakas
Grąžina konvertuoto garso failą kaip dvejetainius duomenis.
Kalbų vertimas
Išversti garsą iš vienos kalbos į kitą. Sujungti kalbą į tekstą, vertimas, ir tekstas-į-speech į vieną skambutį.
Prašymą teikianti institucija (multipart/form-data)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| file | file | Taip | Pradinis garso failas originalo kalba. Max 100MB. |
| target_language | string | Taip | Tikslinės kalbos kodas (pvz., |
| voice | string | Nr. | Balsas išverstam išvedimui. Auto- parinkta, jei praleista. |
| preserve_voice | boolean | Nr. | Bandymas išsaugoti originalaus garsiakalbio balso savybes. Numatytasis: < code> false code> |
Atsakas
{
"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
}
Kalba pokalbiui
Transformuoti kalbos stilius, emocijos, ar pristatymas išlaikant turinį. Naudinga reguliuoti tonusą, pacing, ir išraiškingumą.
Prašymą teikianti institucija (multipart/form-data)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| file | file | Taip | Pradinės kalbos garso failas. Maks. 50MB. |
| voice | string | Taip | Tikslinio balso ID išvesties kalbai |
| model | string | Nr. | Modelis: chatterbox |
| emotion | string | Nr. | Tikslinė emocija: |
| speed | float | Nr. | Greičio reguliavimas. Numatytasis: |
Atsakas
Grąžina transformuotą garso failą kaip dvejetainius duomenis.
Garso įrankiai
Garso apdorojimo vertinamosios baigtys pagerinimui, vokaliniam pašalinimui, kamienų dalijimuisi, ir daugiau.
Gerinti garso kokybę: denoise, padidinti aiškumą, super raiška.
| file file | Garso failas stiprinimui |
| denoise boolean | Įjungti denoizavimą (numatyta: true) |
| enhance_clarity boolean | Padidinti kalbos aiškumą (numatyta: tiesa) |
| super_resolution boolean | Atnaujinta garso kokybė (numatyta: klaidinga) |
| strength integer | 1-3 (šviesa, vidutinis, stiprus). Numatytasis: 2 |
Atskiri vokalai nuo instrumentinių priemonių (vokų pašalinimas) arba padalinti į stiebus.
| file file | Garso failas atskiriamas |
| model string | demucs (įprastas) arba spleeter |
| stems integer | Kolonėlių skaičius: 2, 4, 5 arba 6 (numatyta: 2) |
| format string | Išvesties formatas: |
Pašalinti aidą ir atgal iš garso įrašų.
| file file | Garso failas apdorojamas |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analizuoti garso aptikti raktą, BPM, ir laiko parašas.
| file file | Analizuojamas garso failas |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Konvertuoti garsą tarp formatų.
| file file | Konvertuotinas garso failas |
| format string | Paskirties formatas: |
| bitrate integer | Išvedimo bitų dažnis kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Bandinių ėmimo greitis: 22050, 44100, 48000 |
| channels string | mono arba stereo |
Balso pokalbis
Siųsti garsą ar tekstą ir gauti AI atsakymą su sintezuota kalba.
Prašymą teikianti institucija (multipart/form-data arba JSON)
| Parametras | Tipas | Reikalinga | Aprašymas |
|---|---|---|---|
| audio | file | Nr.* | Garso įvestis (reikia arba audio , arba teksto ) |
| text | string | Nr.* | Teksto įvestis (reikalingas |
| voice | string | Nr. | Balsas AI atsakymui. Numatytasis: af_ bella code> |
| tts_model | string | Nr. | TTS modelis atsakymui. Numatytasis: kokoro code> |
| system_prompt | string | Nr. | Pasirinkta sistema greita AI |
| conversation_id | string | Nr. | Tęsti esamą pokalbį |
Atsakas
{
"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
}
Partijos TTS
Pateikite keletą tekstų lygiagrečiai TTS generacijai. Neprivalomai gausite Webhook skambutį, kai visi darbai baigti.
Parametrai
| Parametras | Tipas | Aprašymas |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Neprivalomas URL į post rezultatus, kai partija užbaigia. |
Atsakas
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Pažanga taikant GET /v1/tts/partija/rezultatas/?partija_id=abc123
Balso įterpimas
Iš anksto sukompiliuoti garsą, integruojantį iš referencinio garso. Naudokite grąžintą embed_id vėlesniuose balso klonavimo prašymuose, skirtuose netoliese generacijai.
Parametrai
| Parametras | Tipas | Aprašymas |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Atsakas
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Sveikatingumo patikrinimas
Patikrinkite GPU serverio būseną, įkeltus modelius ir eilės dydį. Autentifikavimas nereikalingas.
Atsakas
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Rodyti modelių sąrašą
Grąžina visų turimų modelių su savo galimybėmis sąrašą.
Atsakas
{
"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
}
]
}
Rodyti balsus
Grąžina visų turimų balsų sąrašą, filtruojant pagal modelį ar kalbą.
Užklausos parametrai
| Parametras | Tipas | Aprašymas |
|---|---|---|
| model | string | Filtruoti pagal modelį ID (pvz., kokoro ) |
| language | string | Filtruoti pagal kalbos kodą (pvz., en ) |
| gender | string | Filtruoti pagal lytį: |
Atsakas
{
"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
}
Subtitrai (SRT / VTT) naujas
Generuoti sinchronizuotus subtitrus bet kuriam atliktam TTS darbui. Paleidžia Whisper lygiavimą garso ir grąžina SRT arba WebVTT. Rezultatas yra konfigūruojamas diske, todėl antras skambutis tam pačiam uuid yra disko skaityti.
Užklausos parametrai
| Parametras | Reikalinga | Aprašymas |
|---|---|---|
| uuid | Taip | Darbo UUID grąžino /v1/tts/ or / v1/ voice- clone/. |
| format | Nr. | |
| download | Nr. | |
| language | Nr. | Susiejimas su derinimo modeliu (automatiškai nustatomas, jei jis praleistas). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Tarimo žodynas naujas
Praneškite TTS varikliui, kaip ištarti konkrečius žodžius. Įrašyti įrašus automatiškai prie kiekvieno TTS užklausos. 200- įrašo sąskaitos limitas.
Prašymą teikianti institucija (POST)
| Parametras | Tipas | Aprašymas |
|---|---|---|
| word | string | Įjungiamas žodis (pvz., < code> GIF code>, < code> Antropic code>). |
| replacement | string | Kaip jį įrašyti modeliui (pvz., |
| language | string | Neprivalomas ISO kodas. Tuščias = taikomas visoms kalboms. |
| case_sensitive | boolean | Numatytasis |
# 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-..."
Jūs taip pat galite perduoti užklausos perjungimus neišsaugant jų — įtraukti užtarimai bet /v1/tts/ skambutį kaip objektas ar masyvas (žr. TTS vertinamosios baigties params).
Straipsnis Naratorius naujas
Numeskite vieną