API dokumentācija

Iekļaut TTS.ai jūsu lietotnēs ar mūsu REST API. OpenAI saderīgu formātu vieglai migrācijai.

REST API OpenAI savietojama JSON atbildes Straumēšanas atbalsts

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

C0010 – C0020/R0310 Anonimizētās ziņas uz /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.

HTTP galvene
Authorization: Bearer sk-tts-your-api-key-here
Saglabājiet savu API atslēgas noslēpumu. Nedaliet to klienta puses kodā, publiskajos repozitorijos vai apaļkokos. Pagrieziet taustiņus regulāri no sava konta iestatījumiem.

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")
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

Pamata URL

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

Visi mērķa kritēriji ir relatīvi pret šo bāzes URL. Piemēram, TTS mērķa kritērijs ir:

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

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

POST /v1/tts/

Konvertēt tekstu uz runu audio. Atgriež audio failu pieprasītajā formātā.

Pieprasījuma iesniedzēja iestāde

ParametrsVeidsVajadzīgsApraksts
model string Paraugs ID (piem., kokoro , chatterbox , Piper ). Ja neņem vērā, mēs automātiski piestiprinaam modeli, kas atbalsta pieprasīto en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper citām atbalstītajām valodām (ar/pl/nl/cs/da/fi/el/tr/uk/vi/etc.)
text string 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 Balss ID (izmantojiet /v1/balss/ pieejamo balsu sarakstam)
format string Izvades formāts: mp3 (noklusētais), wav , flac ,
speed float Runa par ātruma reizinātāju. Noklusētais: 1.0 . Diapazons: 0.5 līdz < kodam> 2.0
language string Valodas kods (piem., en , es ). Automātiski nosakāms, ja nav.
instructions string Rīkojas / piegādes cues (≤500 chars). piem.,
pronunciations object | array Pēc pieprasījuma izruna aizveras. Vai nu < code> {\
stream boolean Ieslēgt straumēšanas atbildi. Noklusētais: < code> false

Piemēru pieprasījums

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

VUML tagi

Aplauzt numurus, datumus, valūtu, tālruņa numurus, un akronīmus

interpretē kāIevadeSpoken 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

Datuma formāta noklusējumi uz mdy angļu un < code> dmy citur; atslēgšanās ar < code>format=\

Piemērs
{
  "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

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.

Pilns piemērs

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.

Uzruna tekstam

POST /v1/stt/

Atzīmēt audio uz tekstu. Atbalsta 99 valodas ar automātisku detektēšanu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
file file Audio fails (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks. 100MB.
model string STT modelis: whisper (noklusētais), speater-whisper , sensevoice
language string Valodas kods. Auto auto-noklusējuma noteikšanai.
timestamps boolean Iekļaut vārda līmeņa zīmogus. Noklusētais: < code> false
diarize boolean Ieslēgt skaļruni. Noklusētais: < code> false

Atbildes reakcija

JSON atbilde
{
  "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

POST /v1/tts/clone/

Ģenerēt runu klonētā balsī. Ielādējiet atsauces audio un tekstu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
reference_audio file References balss audio (10-30 sekundes ieteicamas). Maks. 20MB.
text string Teksts runāt klonētā balsī.
model string Klona modelis: chatterbox (noklusētais), korespondence2, gpt-sovi
format string Izvades formāts: mp3 (noklusētais), wav , flac
language string 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

POST /v1/voice-convert/

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)

ParametrsVeidsVajadzīgsApraksts
file file Avots audio fails (MP3, WAV, FLAC). Max 50MB.
target_voice string Mērķa balss ID konvertēt uz (izmantot /v1/balss/ , lai uzskaitītu pieejamās balsis)
model string Balss konvertēšanas modelis: openvoice (noklusētais), knn-vc
format string Izvades formāts: wav (noklusētais), < kods>mp3, flac

Piemēru pieprasījums

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

Atbildes reakcija

Atgriež konvertēto audio failu kā bināros datus.

Valodas tulkojums

POST /v1/speech-translate/

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)

ParametrsVeidsVajadzīgsApraksts
file file Avots audio fails oriģinālvalodā. Max 100MB.
target_language string Mērķa valodas kods (piem., es , fr , de , ja )
voice string Balss iztulkotai izvadei. Atlasīts automātiski, ja izlaists.
preserve_voice boolean Mēģinājums saglabāt oriģinālā skaļruna balss īpašības. Noklusētais: < code> false

Atbildes reakcija

JSON atbilde
{
  "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ā

POST /v1/speech-to-speech/

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)

ParametrsVeidsVajadzīgsApraksts
file file Avots runas audio fails. Max 50MB.
voice string Mērķa balss ID izvades runai
model string Modelis: openvoice (noklusētais), chatterbox
emotion string Mērķa emocijas: neitrāls , happy , sad ,
speed float Ātruma regulēšana. Noklusētais: 1.0 . Diapazons: 0.5 līdz < kodam> 2.0

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.

POST /v1/audio/enhance/

Uzlabot audio kvalitāti: denoise, uzlabot skaidrību, super izšķirtspēju.

file fileAudio fails, ko uzlabot
denoise booleanIeslēgt denoizāciju (noklusētā: true)
enhance_clarity booleanPalielināt runas skaidrību (noklusētais: patiess)
super_resolution booleanAudio kvalitātes celšana (noklusētā: viltus)
strength integer1-3 (viegls, vidējs, spēcīgs). Noklusētais: 2
POST /v1/audio/separate/

Atsevišķi vokāli no instrumentiem (voda noņemšana) vai sadalīt kātiem.

file fileAudio fails, lai atdalītu
model stringdemucs (noklusētais) vai spleeter
stems integerKātu skaits: 2, 4, 5 vai 6 (noklusējums: 2)
format stringIzvades formāts: wav , mp3, flac
POST /v1/audio/dereverb/

Noņemiet atbalsi un atgriezieties no audio ierakstiem.

file fileAudio fails, ko apstrādāt
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Bezmaksas

Analizēt audio, lai atklātu atslēgu, BPM, un laika parakstu.

file fileAnalizējamais audio fails
Atbildes reakcija
{
  "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/ Bezmaksas

Konvertēt audio starp formātiem.

file fileKonvertējamais audio fails
format stringMērķa formāts: mp3, wav , flac , gg , m4a , aac
bitrate integerIzejas bitātrums kbps: 64, 128, 192, 256, 320
sample_rate integerParaugu ņemšanas ātrums: 22050, 44100, 48000
channels stringmono vai stereo

Balss tērzēšana

POST /v1/voice-chat/

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)

ParametrsVeidsVajadzīgsApraksts
audio file Nē* Audio ievade (vajadzīga vai nu audio , vai teksts )
text string Nē* Teksta ievade (nepieciešams vai teksts )
voice string Balss AI atbildei. Noklusētais: af_ bella
tts_model string TTS modelis atbildei. Noklusētais: kokoro
system_prompt string Pielāgota sistēma, kas paredzēta AI
conversation_id string Turpināt esošo sarunu

Atbildes reakcija

JSON atbilde
{
  "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

POST /v1/tts/batch/

Iesniegt vairākus tekstus paralēlai TTS ģenerēšanai. Pēc izvēles saņemt webhook zvanu atpakaļ, kad visi darbi pabeigti.

Parametri

ParametrsVeidsApraksts
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringNeobligāts URL pēc rezultātiem, kad partija ir pabeigta.

Atbildes reakcija

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

Aptuvenais progress ar GET /v1/tts/partija/rezultāts/?partch_id=abc123

Balss iegulšana

POST /v1/voice-embed/

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

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

Atbildes reakcija

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

Veselības pārbaude

GET /v1/health/

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

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

Sarakstēt modeļus

GET /v1/models/

Atgriež sarakstu ar visiem pieejamajiem modeļiem ar savām iespējām.

Atbildes reakcija

JSON atbilde
{
  "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

GET /v1/voices/

Atgriež visu pieejamo balsu sarakstu, pēc izvēles filtrējot pēc parauga vai valodas.

Vaicājuma parametri

ParametrsVeidsApraksts
model string Filtrs pēc modeļa ID (piem., kokoro )
language string Filtrēt pēc valodas koda (piem., en )
gender string Filtrēt pēc dzimuma: vīrieša , sieviešu , neitrāls

Atbildes reakcija

JSON atbilde
{
  "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

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

Ģ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

ParametrsVajadzīgsApraksts
uuidDarba UUID atgriezās / v1/ tts/ vai / v1/ vell- clone/.
formatsrt (noklusētais) vai vt .
download 1 nosūtīt Content- Dispositation: addition tā pārlūkprogramma saglabā nevis displejus, bet pārlūku.
languagePielāgošanas modelis (automātiski nosakāms, ja nav norādīts).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Izrunas vārdnīca jauni

GET POST DELETE /api/v1/pronunciations/

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)

ParametrsVeidsApraksts
wordstringVārds, ko aizvērt (piemēram, < koda> GIF , < koda> Antropiska ). Vārda robežas saskaņots.
replacementstringKā to rakstīt modelim (piemēram, Jiff , ann THROP ick ).
languagestringFakultatīvs ISO kods. Tukšs = attiecas uz visām valodām.
case_sensitivebooleanNoklusētais false . Sakrīt tieši tad, kad Patiess .
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-..."

Jūs varat arī iziet pēc pieprasījuma aizvēršanas, nesaglabājot tos — iekļaut < koda> izrunas jebkurā / v1/ tts/ zvans kā objekts vai masīvs (skatīt TTS galapunkta params).

Narators jauni

Nometiet vienu