API dokumentācija
Iekļaut TTS.ai jūsu lietotnēs ar mūsu REST API. OpenAI saderīgu formātu vieglai migrācijai.
Pārskats
TTS.ai API nodrošina programmatisku piekļuvi visām platformas funkcijām: tekstu-to-speech sintēze, runas-teksta transkripcija, balss klonēšana, audio uzlabošana un vēl vairāk. API izmanto standarta REST konvencijas ar JSON pieprasījumu/atbildes iestādēm.
API atslēga
Iegūstiet API atslēgu no Konta iestatījumi. Pieejams Pro un Enterprise plānos.
Pamata URL
https://api.tts.ai/v1/
Auth
Pārnēsājams žetons via Authorization galvene
Autentificēšana
/v1/tts/ strādāt bez auth, līdz 5000 rakstzīmes/dienā IP, izmantojot jebkuru no mūsu bezmaksas modeļiem (piper, vits, melotts, kokoro). Pierakstīties bezmaksas kontu, lai saņemtu 15 000 bonusa rakstzīmes un piekļuvi premium modeļiem.
Piemaksu modeļiem un augstākas likmes ierobežojumiem autentificējiet ar Authorization galvene.
Authorization: Bearer sk-tts-your-api-key-here
SDK
Oficiālās SDKs ļauj viegli integrēt TTS.ai jūsu pieteikumā. Abi ir atvērts avots un ir pieejami 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');
Pamata URL
Visi mērķa kritēriji ir relatīvi pret šo bāzes URL. Piemēram, TTS mērķa kritērijs ir:
Likmju robežvērtības
API likmes ierobežojumi atšķiras atkarībā no plāna:
| Plāns | Pieprasījumi/min | Vienlaicīga | Maks. teksta garums |
|---|---|---|---|
| Bezmaksas | 10 | 2 | 500 rakstzīmes |
| Palaist | 30 | 3 | 1000 000 rakstzīmju |
| Pro | 60 | 5 | 1000 000 rakstzīmju |
| Uzņēmums | 300 | 20 | 50 000 rakstzīmju |
Rādītāju limitu galvenes ir iekļautas katrā atbildē: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Kredītizmaksas
| Pakalpojums | Izmaksas | Vienība |
|---|---|---|
| TTS (Bezmaksas modeļi: Piper, VITS, MeloTTS) | 1000 rakstzīmes | uz 1000 rakstzīmēm |
| TTS (standarta modeļi: Kokoro, CosyVoice 2, utt.) | 2 000 rakstzīmju | uz 1000 rakstzīmēm |
| TTS (premija modeļi: tortoise, Chatterbox u.c.) | 4000 rakstzīmju | uz 1000 rakstzīmēm |
| Uzruna tekstam | 2 000 rakstzīmju | audio minūtē |
| Balss klonēšana | 4000 rakstzīmju | uz 1000 rakstzīmēm |
| Balss mainītājs | 3000 rakstzīmju | audio minūtē |
| Audio uzlabojums | 2 000 rakstzīmju | audio minūtē |
| Voka noņemšana / Stem Sadalīšana | 3000–4 000 zīmju | audio minūtē |
| Valodas tulkojums | 5 000 rakstzīmju | audio minūtē |
| Balss tērzēšana | 3000 rakstzīmju | Režīmā |
| Atslēgu un BPM meklētājs | Bezmaksas | -- |
| Audio pārveidotājs | Bezmaksas | -- |
Teksts uz runu
Konvertēt tekstu uz runu audio. Atgriež audio failu pieprasītajā formātā.
Pieprasījuma iesniedzēja iestāde
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| model | string | Nē | Paraugs ID (piem., |
| text | string | Jā | Teksts, lai konvertētu uz runu. Viena pieprasījuma vāciņu: 500 chars (anonīmi), 5000 (bezmaksas konts), 1000,000 (apmaksāts plāns). Long ieejas ir auto-chunked servera pusē. |
| voice | string | Jā | Balss ID (izmantojiet |
| format | string | Nē | Izvades formāts: |
| speed | float | Nē | Runa par ātruma reizinātāju. Noklusētais: |
| language | string | Nē | Valodas kods (piem., |
| instructions | string | Nē | Rīkojas / piegādes cues (≤500 chars). piem., |
| pronunciations | object | array | Nē | Pēc pieprasījuma izruna aizveras. Vai nu < code> {\ |
| stream | boolean | Nē | Ieslēgt straumēšanas atbildi. Noklusētais: < code> false code> |
Piemēru pieprasījums
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
VUML tagi
Aplauzt numurus, datumus, valūtu, tālruņa numurus, un akronīmus Datuma formāta noklusējumi uz 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
interpretē kā Ievade Spoken kā cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31Decembris trīsdesmit pirmais, deviņpadsmit deviņdesmit deviņi 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 angļu un < code> dmy citur; atslēgšanās ar < code>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."
}Atbildes reakcija
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.Pilns piemērs
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.
Uzruna tekstam
Atzīmēt audio uz tekstu. Atbalsta 99 valodas ar automātisku detektēšanu.
Pieprasījuma iesniedzēja iestāde (multipart/form-data)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| file | file | Jā | Audio fails (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks. 100MB. |
| model | string | Nē | STT modelis: |
| language | string | Nē | Valodas kods. Auto auto-noklusējuma noteikšanai. |
| timestamps | boolean | Nē | Iekļaut vārda līmeņa zīmogus. Noklusētais: < code> false code> |
| diarize | boolean | Nē | Ieslēgt skaļruni. Noklusētais: < code> false code> |
Atbildes reakcija
{
"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"
}
]
}
Balss klonēšana
Ģenerēt runu klonētā balsī. Ielādējiet atsauces audio un tekstu.
Pieprasījuma iesniedzēja iestāde (multipart/form-data)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| reference_audio | file | Jā | References balss audio (10-30 sekundes ieteicamas). Maks. 20MB. |
| text | string | Jā | Teksts runāt klonētā balsī. |
| model | string | Nē | Klona modelis: |
| format | string | Nē | Izvades formāts: |
| language | string | Nē | Mērķa valodas kods. Jāatbalsta izvēlētais modelis. |
Atbildes reakcija
Atgriež audio failu kā bināros datus, tāpat kā TTS galapunkts.
Balss mainītājs
Pārveidot audio kā citu balsi. Ielādējiet avota audio un izvēlieties mērķa balsi.
Pieprasījuma iesniedzēja iestāde (multipart/form-data)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| file | file | Jā | Avots audio fails (MP3, WAV, FLAC). Max 50MB. |
| target_voice | string | Jā | Mērķa balss ID konvertēt uz (izmantot |
| model | string | Nē | Balss konvertēšanas modelis: |
| format | string | Nē | Izvades formāts: |
Piemēru pieprasījums
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
Atbildes reakcija
Atgriež konvertēto audio failu kā bināros datus.
Valodas tulkojums
Tulkot runā audio no vienas valodas uz citu. Apvieno runas uz tekstu, tulkojums, un teksts-to-speech vienā uzaicinājumā.
Pieprasījuma iesniedzēja iestāde (multipart/form-data)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| file | file | Jā | Avots audio fails oriģinālvalodā. Max 100MB. |
| target_language | string | Jā | Mērķa valodas kods (piem., |
| voice | string | Nē | Balss iztulkotai izvadei. Atlasīts automātiski, ja izlaists. |
| preserve_voice | boolean | Nē | Mēģinājums saglabāt oriģinālā skaļruna balss īpašības. Noklusētais: < code> false code> |
Atbildes reakcija
{
"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
}
Uzruna runā
Pārveidot runas stilu, emocijas, vai piegādes saglabājot saturu. Noderīgs, lai pielāgotu toni, pacing, un izteiksmīgumu.
Pieprasījuma iesniedzēja iestāde (multipart/form-data)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| file | file | Jā | Avots runas audio fails. Max 50MB. |
| voice | string | Jā | Mērķa balss ID izvades runai |
| model | string | Nē | Modelis: |
| emotion | string | Nē | Mērķa emocijas: |
| speed | float | Nē | Ātruma regulēšana. Noklusētais: |
Atbildes reakcija
Atgriež pārveidoto audio failu kā bināros datus.
Audio rīki
Audio apstrādes galamērķi, lai uzlabotu, balss noņemšana, stumbra sadalīšanu, un vairāk.
Uzlabot audio kvalitāti: denoise, uzlabot skaidrību, super izšķirtspēju.
| file file | Audio fails, ko uzlabot |
| denoise boolean | Ieslēgt denoizāciju (noklusētā: true) |
| enhance_clarity boolean | Palielināt runas skaidrību (noklusētais: patiess) |
| super_resolution boolean | Audio kvalitātes celšana (noklusētā: viltus) |
| strength integer | 1-3 (viegls, vidējs, spēcīgs). Noklusētais: 2 |
Atsevišķi vokāli no instrumentiem (voda noņemšana) vai sadalīt kātiem.
| file file | Audio fails, lai atdalītu |
| model string | demucs (noklusētais) vai spleeter |
| stems integer | Kātu skaits: 2, 4, 5 vai 6 (noklusējums: 2) |
| format string | Izvades formāts: |
Noņemiet atbalsi un atgriezieties no audio ierakstiem.
| file file | Audio fails, ko apstrādāt |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analizēt audio, lai atklātu atslēgu, BPM, un laika parakstu.
| file file | Analizējamais audio fails |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Konvertēt audio starp formātiem.
| file file | Konvertējamais audio fails |
| format string | Mērķa formāts: |
| bitrate integer | Izejas bitātrums kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Paraugu ņemšanas ātrums: 22050, 44100, 48000 |
| channels string | mono vai stereo |
Balss tērzēšana
Sūtīt audio vai tekstu un saņemt AI atbildi ar sintezētu runu.
Pieprasījuma iesniedzēja iestāde (multipart/form-data vai JSON)
| Parametrs | Veids | Vajadzīgs | Apraksts |
|---|---|---|---|
| audio | file | Nē* | Audio ievade (vajadzīga vai nu |
| text | string | Nē* | Teksta ievade (nepieciešams |
| voice | string | Nē | Balss AI atbildei. Noklusētais: |
| tts_model | string | Nē | TTS modelis atbildei. Noklusētais: kokoro code> |
| system_prompt | string | Nē | Pielāgota sistēma, kas paredzēta AI |
| conversation_id | string | Nē | Turpināt esošo sarunu |
Atbildes reakcija
{
"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
}
Sērijas TTS
Iesniegt vairākus tekstus paralēlai TTS ģenerēšanai. Pēc izvēles saņemt webhook zvanu atpakaļ, kad visi darbi pabeigti.
Parametri
| Parametrs | Veids | Apraksts |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Neobligāts URL pēc rezultātiem, kad partija ir pabeigta. |
Atbildes reakcija
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Aptuvenais progress ar GET /v1/tts/partija/rezultāts/?partch_id=abc123
Balss iegulšana
Priekšapvienot balsi, kas iegulta no atsauces audio. Izmantojiet atgriezto iegult_ id turpmākajos balss klonēšanas pieprasījumos gandrīz iekšējai paaudzei.
Parametri
| Parametrs | Veids | Apraksts |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Atbildes reakcija
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Veselības pārbaude
Pārbaudiet GPU servera statusu, ielādētos modeļus un rindas izmērus. Autentificēšana nav nepieciešama. Cached uz 30 sekundēm.
Atbildes reakcija
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Sarakstēt modeļus
Atgriež sarakstu ar visiem pieejamajiem modeļiem ar savām iespējām.
Atbildes reakcija
{
"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
}
]
}
Rādīt balsis
Atgriež visu pieejamo balsu sarakstu, pēc izvēles filtrējot pēc parauga vai valodas.
Vaicājuma parametri
| Parametrs | Veids | Apraksts |
|---|---|---|
| model | string | Filtrs pēc modeļa ID (piem., |
| language | string | Filtrēt pēc valodas koda (piem., |
| gender | string | Filtrēt pēc dzimuma: |
Atbildes reakcija
{
"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
}
Apakšvirsraksti (SRT / VTT) jauni
Ģenerēt sinhronizētus subtitrus jebkuram pabeigtam TTS darbam. Palaist Whisper atbilstību pār audio un atgriezties SRT vai WebVTT. Rezultāts ir kešatmiņā uz diska, tāpēc otrais zvans par to pašu uuid ir diska nolasījums.
Vaicājuma parametri
| Parametrs | Vajadzīgs | Apraksts |
|---|---|---|
| uuid | Jā | Darba UUID atgriezās / v1/ tts/ vai / v1/ vell- clone/. |
| format | Nē | |
| download | Nē | |
| language | Nē | Pielāgošanas modelis (automātiski nosakāms, ja nav norādīts). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Izrunas vārdnīca jauni
Pastāstiet TTS dzinējam, kā izrunāt konkrētus vārdus. Saglabāti ieraksti automātiski pie katra TTS pieprasījuma. 200- ieraksta uz kontu limits.
Pieprasījuma iesniedzēja iestāde (POST)
| Parametrs | Veids | Apraksts |
|---|---|---|
| word | string | Vārds, ko aizvērt (piemēram, < koda> GIF koda>, < koda> Antropiska koda>). Vārda robežas saskaņots. |
| replacement | string | Kā to rakstīt modelim (piemēram, |
| language | string | Fakultatīvs ISO kods. Tukšs = attiecas uz visām valodām. |
| case_sensitive | boolean | Noklusētais |
# 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 varat arī iziet pēc pieprasījuma aizvēršanas, nesaglabājot tos — iekļaut < koda> izrunas koda> jebkurā / v1/ tts/ zvans kā objekts vai masīvs (skatīt TTS galapunkta params).
Narators jauni
Nometiet vienu