Dokumentimi i API

Integro TTS.ai në aplikacionet tuaja me API-në tonë REST. Format i përshtatshëm OpenAI për migrimin e lehtë.

REST API OpenAI i përshtatshëm Përgjigjet JSON Suporti i streaming

Përmbledhje

API TTS.ai ofron akses programatik tek të gjitha funksionet e platformës: sintezë tekst-në-folje, transkriptim fjalë-në-tekst, klonim zëri, përmirësim audio, etj. API përdor konventat standarde REST me trupat e kërkesave/përgjigjeve JSON.

Kyçi API

Merr çelësin e API nga Rregullimet e llogarisë. Në dispozicion në Pro dhe Enterprise plane.

URL e bazë

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

Autorizimi

Token i mbajtësit nëpërmjet Authorization kreu

Autentifikim

Niveli i lirë — nuk kërkohet kyç. Anonymous POST to /v1/tts/ punon pa asnjë autorizim, deri në 5,000 karaktere në ditë për IP, duke përdorur ndonjë nga modelet tona falas (piper, vits, melotts, kokoro). Regjistrohu për një llogari falas për të marrë 15,000 karaktere bonus dhe akses ndaj modeleve premium.

Për modele premium dhe kufizime më të larta të normës, autentifikimi me një token të mbajtësit në Authorization kreu.

HTTP Header
Authorization: Bearer sk-tts-your-api-key-here
Mbaje sekret çelësin tënd të API. Mos e shpërnda në kodin në anën e klientit, depozitat publike, apo logs. Rrotullo kyçet rregullisht nga rregullimet e llogarisë suaj.

SDK

SDK-të zyrtare e bëjnë të lehtë integrimin e TTS.ai në aplikimin tuaj. Të dyja janë me burim të hapur dhe në dispozicion në 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

URL e bazë

URL e bazë: https://api.tts.ai/v1/

Të gjitha pikat përfundimtare janë relative ndaj kësaj URL baze. Për shembull, pika përfundimtare e TTS është:

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

Kufizime

Kufizimet e API ndryshojnë sipas planit:

Plani Kërkesa/min Njëkohësisht Gjatësia maksimale e tekstit
I lirë 10 2 500 gërma
Fillues 30 3 1,000,000 karakterë
Pro 60 5 1,000,000 karakterë
Enterprise. 300 20 50,000 karakterë

Kufizimi i shpejtësisë është përfshirë në çdo përgjigje: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Shpenzimet e kreditit

Shërbimi Kostoja Njësia
TTS (modele të lira: Piper, VITS, MeloTTS) 1,000 karakterë për 1,000 karakterë
TTS (Modele standarde: Kokoro, CosyVoice 2, etj.) 2,000 karakterë për 1,000 karakterë
TTS (Modele Premium: Tortoise, Chatterbox, etj.) 4 kreditë për 1,000 karakterë
Fjalë në tekst 2,000 karakterë për minutë të audios
Klonimi i zërit 4 kreditë për 1,000 karakterë
Ndryshues zëri 3,000 karakterë për minutë të audios
Përmirësimi i zërit 2,000 karakterë për minutë të audios
Hiq vokalin / Ndaj zërin 3,000-4,000 karakterë për minutë të audios
Përkthim i Fjalës 5,000 karakterë për minutë të audios
Biseda me zë 3,000 karakterë për rradhë
Key & BPM Finder I lirë --
Konvertimi i audios I lirë --

Teksti në Fjalë

POST /v1/tts/

Shndërron tekstin në zë. Kthen file audio në formatin e kërkuar.

Korpi i kërkesës

ParametratLlojiE nevojshmePërshkrimi
model string Jo. ID e modelit (p.sh. kokoro, chatterbox, piper). Nëse hiqet, do të zgjedhim automatikisht një model që suporton gjuhën e kërkuar — kokoro për en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper për gjuhë të tjera të suportuara (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Po Teksti për t'u konvertuar në fjalë. Kufiri i kërkesave: 500 karaktere (anonim), 5,000 (konto pa pagesë), 1,000,000 (konto me pagesë). Input-et e gjata ndahen automatikisht në pjesë nga serveri.
voice string Po ID e zërit (përdor /v1/voices/ për të listuar zërat në dispozicion)
format string Jo. Formati i daljes: mp3 (i prezgjedhur), wav, flac, ogg
speed float Jo. Shumëfishues i shpejtësisë së të folurit. I prezgjedhur: 1.0. Rreth: 0.5 deri tek 2.0
language string Jo. Kodi i gjuhës (p.sh. en, es). Zbulohet automatikisht nëse hiqet.
instructions string Jo. Shënime për veprim/përdorim (≤500 karaktere). p.sh. \
pronunciations object | array Jo. Përdoret për të mbishkruar përmbajtjen e kërkesës. Ose {\
stream boolean Jo. Aktivizo përgjigjen e rrjedhjes. E prezgjedhur: false

Kërkesa e shembullit

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 tags

Rrotullo numrat, datat, monedhën, numrat e telefonave dhe shkurtimet në

interpretoInputFjalë për fjalë
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31December thirty-first, nineteen ninety-nine
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

Formati i prezgjedhur i datës është mdy për anglisht dhe dmy në vende të tjera; mbishkruhet me format=\

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

Përgjigje

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.

Full example

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.

Fjalë në tekst

POST /v1/stt/

Transkribo audio në tekst. Suporton 99 gjuhë me zbulim automatik.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po File audio (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maksimum 100MB.
model string Jo. Modeli STT: whisper (i prezgjedhur), faster-whisper, sensevoice
language string Jo. Kodi i gjuhës. auto për zbulimin automatik (i prezgjedhur).
timestamps boolean Jo. Përfshi kohën e nivelit të fjalës. E prezgjedhur: false
diarize boolean Jo. Aktivizo diarizimin e zërit. E prezgjedhur: false

Përgjigje

Përgjigje 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"
    }
  ]
}

Klonimi i zërit

POST /v1/tts/clone/

Gjenerator i foljes në një zë të klonuar. Ngarko një referencë audio dhe tekst.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
reference_audio file Po Referenca e zërit audio (10-30 sekonda rekomandohet). Maksimum 20MB.
text string Po Teksti për të folur në zërin e klonuar.
model string Jo. Model kloni: chatterbox (i prezgjedhur), cosyvoice2, gpt-sovits
format string Jo. Formati i daljes: mp3 (i prezgjedhur), wav, flac
language string Jo. Kodi i gjuhës së synuar. Duhet të jetë i suportuar nga modeli i zgjedhur.

Përgjigje

Kthen file audio si të dhëna binare, të njëjta si pika e fundit e TTS.

Ndryshues zëri

POST /v1/voice-convert/

Shndërro audion në tingull të zërit të ndryshëm. Ngarko audion burimor dhe zgjidh një zë qëllimi.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po File audio burimor (MP3, WAV, FLAC). Maksimum 50MB.
target_voice string Po ID e zërit të synuar për t'u konvertuar në (përdor /v1/voices/ për të listuar zërat në dispozicion)
model string Jo. Modeli i konvertimit të zërit: openvoice (i prezgjedhur), knn-vc
format string Jo. Formati i daljes: wav (i prezgjedhur), mp3, flac

Kërkesa e shembullit

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

Përgjigje

Kthen file audio të konvertuar si të dhëna binare.

Përkthim i Fjalës

POST /v1/speech-translate/

Përkthe audion e folur nga një gjuhë në tjetrën. Kombinon fjalë-në-tekst, përkthim dhe tekst-në-folje në një thirrje të vetme.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po File audio burimor në gjuhën origjinale. Maksimum 100MB.
target_language string Po Kodi i gjuhës së synuar (p.sh. es, fr, de, ja)
voice string Jo. Zëri për output e përkthyer. Zgjedhur automatikisht nëse hiqet.
preserve_voice boolean Jo. Përpiqet të ruajë karakteristikat origjinale të zërit të folësit. E prezgjedhur: false

Përgjigje

Përgjigje 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
}

Fjalë në Fjalë

POST /v1/speech-to-speech/

Transformon stilin e fjalimit, emocionin, apo përmbajtjen duke mbajtur përmbajtjen. E dobishme për rregullimin e tonit, ritmit dhe shprehjes.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po Burimi i file audio të foljes. Maksimum 50MB.
voice string Po ID e zërit të synuar për të folurit në dalje
model string Jo. Modeli: openvoice (i prezgjedhur), chatterbox
emotion string Jo. Emocioni i synuar: neutral, happy, sad, angry, excited
speed float Jo. Rregullimi i shpejtësisë. I prezgjedhur: 1.0. Rrethi: 0.5 deri tek 2.0

Përgjigje

Kthen file audio të transformuar si të dhëna binare.

Instrumentet e zërit

Pikat përfundimtare të përpunimit të audios për përmirësim, heqjen e zërit, ndarjen e stem, dhe më shumë.

POST /v1/audio/enhance/

Përmirëso cilësinë e audios: elimino zhurmën, përmirëso qartësinë, super-rezolutën.

file fileFile audio për të përmirësuar
denoise booleanAktivo zhdukjen e zhurmës (e prezgjedhur: e vërtetë)
enhance_clarity booleanPërmirëso qartësinë e të folurit (e prezgjedhur: e vërtetë)
super_resolution booleanPërmirëso cilësinë e audios (e prezgjedhur: e pavërtetë)
strength integer1-3 (i lehtë, i mesëm, i fortë). I prezgjedhur: 2
POST /v1/audio/separate/

Shpërndarja e vogël e grimcave (e vogël) ose e madhe (e madhe) në një lëng.

file fileFile audio për t'u ndarë
model stringdemucs (e prezgjedhur) ose spleeter
stems integerNumri i rrënjëve: 2, 4, 5 ose 6 (i prezgjedhur: 2)
format stringFormati i daljes: wav, mp3, flac
POST /v1/audio/dereverb/

Hiq ekuilibrin dhe reverb nga regjistrimet audio.

file fileFile audio për t'u përpunuar
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ I lirë

Analizo audion për të zbuluar keys, BPM dhe time signature.

file fileFile audio për t'u analizuar
Përgjigje
{
  "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/ I lirë

Kthe audion midis formateve.

file fileFile audio për t'u konvertuar
format stringFormati i synuar: mp3, wav, flac, ogg, m4a, aac
bitrate integerBitrate i daljes në kbps: 64, 128, 192, 256, 320
sample_rate integerShkalla e shembullit: 22050, 44100, 48000
channels stringmono ose stereo

Biseda me zë

POST /v1/voice-chat/

Dërgo audio apo tekst dhe merr një përgjigje AI me fjalë të sintetizuara.

Korpi i kërkesës (multipart/form-data ose JSON)

ParametratLlojiE nevojshmePërshkrimi
audio file Jo.* Input audio (duhet ose audio ose text)
text string Jo.* Hyrja e tekstit (duhet ose audio ose text)
voice string Jo. Zëri për përgjigjen AI. I prezgjedhur: af_bella
tts_model string Jo. Modeli TTS për përgjigje. I prezgjedhur: kokoro
system_prompt string Jo. Prompt i personalizuar i sistemit për AI
conversation_id string Jo. Vazhdo një bisedë ekzistuese

Përgjigje

Përgjigje 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
}

Batch TTS

POST /v1/tts/batch/

Dërgo tekste të shumta për krijimin paralel të TTS. Në mënyrë opsionale merr një thirrje webhook kur të përfundojnë të gjitha punët.

Parametrat

ParametratLlojiPërshkrimi
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Përgjigje

Përgjigje JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Proçesi i sondazhit me GET /v1/tts/batch/result/?batch_id=abc123

Zëri i integruar

POST /v1/voice-embed/

Para-kalkuluar një zë të përfshirë nga audio referimi. Përdor embed_id të kthyer në kërkesat e mëvonshme të klonimit të zërit për krijimin gati menjëherë.

Parametrat

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

Përgjigje

Përgjigje JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Kontrolli i gjendjes

GET /v1/health/

Kontrollo gjendjen e serverit GPU, modelet e ngarkuara dhe madhësine e rreshtit. Nuk kërkohet autentifikim. Kache për 30 sekonda.

Përgjigje

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

Lista e modeleve

GET /v1/models/

Kthen një listë të të gjithë modeleve në dispozicion me aftësitë e tyre.

Përgjigje

Përgjigje 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
    }
  ]
}

Zërat e listës

GET /v1/voices/

Kthen një listë të të gjithë zërave në dispozicion, opcionalisht të filtruar sipas modelit apo gjuhës.

Parametrat e pyetjes

ParametratLlojiPërshkrimi
model string Filtro sipas ID të modelit (p.sh. kokoro)
language string Filtro sipas kodit të gjuhës (p.sh. en)
gender string Filtro sipas gjinisë: mashkull, femër, neutral

Përgjigje

Përgjigje 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
}

Subtitrat (SRT / VTT) e re

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

Gjenerati subtitrat e sinkronizuar për çdo punë TTS të përfunduar. Ekzekuton Whisper alignment mbi audio dhe kthen SRT ose WebVTT. Rezultati është i ruajtur në disk kështu që një thirrje e dytë për të njëjtin uuid është një disk i lexuar.

Parametrat e pyetjes

ParametratE nevojshmePërshkrimi
uuidPoUUID e punës u kthye nga /v1/tts/ ose /v1/voice-clone/.
formatJo.srt (i prezgjedhur) ose vtt.
downloadJo.1 për të dërguar Content-Disposition: attachment kështu që shfletuesi ruan në vend që të shfaqë.
languageJo.Hija për modelin e drejtimit (zbulohet automatikisht nëse hiqet).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Fjalori i Fjalëshkrimit e re

GET POST DELETE /api/v1/pronunciations/

Trego motorit TTS si të përshkruaj fjalë të caktuara. Entrat e ruajtura aplikohen automatikisht në çdo kërkesë TTS që bëni. Kufiri i hyrjeve për llogari është 200.

Korpi i kërkesës (POST)

ParametratLlojiPërshkrimi
wordstringFjala për t'u mbishkruar (p.sh. GIF, Anthropic). Kufiri i fjalës u përputh.
replacementstringSi ta shkruash atë për modelin (p.sh. jiff, ann THROP ick).
languagestringKodi opcional ISO. Bosh = aplikohet për të gjitha gjuhët.
case_sensitivebooleanfalse i prezgjedhur. Përputhet me shkronjat e mëdha/vogla saktësisht kur 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-..."

Ju gjithashtu mund të kaloni mbishkrimet e kërkesave pa i ruajtur ato — përfshini pronunciations në çdo thirrje /v1/tts/ si një objekt ose një array (shikoni parametrat e pikës së fundit të TTS).

Artikulli e re

Hidhe një