API sənədləşməsi

TTS.ai-i REST API-mizlə tətbiqlərinizə birləşdirin. Yüksək sürətli köçürmə üçün OpenAI-ə uyğun format.

REST API OpenAI uyğunluğu JSON Cavabları İşıqlandırma dəstəyi

Ümumi

TTS.ai API bütün platforma xüsusiyyətlərinə proqramlaşdırılmış çıxış təmin edir: mətn-dən-söhbətə sintez, söz-dən-söhbətə transkripsiya, səs klonlaşdırma, audio artırma və daha çox. API JSON tələb/cavab bədənləri ilə standart REST konvensiyalarını istifadə edir.

API Açarı

API açarınızı buradan əldə edin Hesab Qurğuları. Pro və Enterprise planlarında mövcuddur.

Əsas Ünvan

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

Tanıt

Göndərən token vasitəsilə Authorization başlıq

Tanıtma

Free tier — açar tələb olunmur. Anonim POST-lar /v1/tts/ bizim pulsuz modellərimizdən istifadə edərək, IP ünvanı başına gündə 5000-ə qədər simvolla, heç bir təsdiqləmə olmadan işləyin (piper, vits, melotts, kokoro). 15.000 bonus xarakter və premium modellərə çıxış əldə etmək üçün pulsuz hesab üçün qeydiyyatdan keçin.

Premium modellər və daha yüksək dərəcəli limitlər üçün, aşağıdakı bir Bearer token ilə tanınır Authorization başlıq.

HTTP Başlığı
Authorization: Bearer sk-tts-your-api-key-here
API açarınızı gizli saxlayın. Bunu müştəri tərəfi kodunda, ictimai repozitorilərdə və ya gündəliklərdə paylaşma. Hesabınızdakı qurğular vasitəsilə açarları mütəmadi olaraq çevirin.

SDK-lar

Rəsmi SDK-lar TTS.ai-i tətbiqinizə asanlıqla birləşdirir. Hər ikisi açıq mənbə və GitHub-da mövcuddur.

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

Əsas Ünvan

Əsas Ünvan: https://api.tts.ai/v1/

Bütün son nöqtələr bu əsas URL-ə nisbidir. Məsələn, TTS son nöqtəsi:

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

Sürət Sınırları

API sürət həddi plandan asılıdır:

Plan Tələblər/dəqiqə Birgə Maksimum Mətn Uzunluğu
Pulsuz 10 2 500 rəmz
Başlat 30 3 1,000,000 ədəd
Pro 60 5 1,000,000 ədəd
Korporativ 300 20 50,000 karakter

Hər cavabda sürət həddi başlıqları daxildir: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Kredit xərcləri

Xidmət Qiymət Birlik
TTS (Free modellər: Piper, VITS, MeloTTS) 1000 xarakter hər 1000 xarakter üçün
TTS (Standard modellər: Kokoro, CosyVoice 2, və s.) 2,000 karakter hər 1000 xarakter üçün
TTS (Premium modelləri: Tortoise, Chatterbox və s.) 4,000 karakter hər 1000 xarakter üçün
Söhbətdən Mətnə 2,000 karakter audio
Səs Klonlama 4,000 karakter hər 1000 xarakter üçün
Səs dəyişdiricisi 3,000 karakter audio
Audio Enhancer 2,000 karakter audio
Vokal çıxartma / səs bölmə 3,000-4,000 karakter audio
Tərcümə 5,000 karakter audio
Səsli söhbət 3,000 karakter hər dönəmdə
Açar Tapıcısı Pulsuz --
Audio çeviricisi Pulsuz --

Mətndən Söhbətə

POST /v1/tts/

Mətni danışan səsə çevir. İstənilən formatda səs faylını geri qaytarır.

İstiqamət

ParametrlərNövGərəklidirİzahat
model string No Model ID (məsələn, kokoro, chatterbox, piper). Əgər buraxılsa, istənilən dilin dəstəklədiyi bir modeli avtomatik olaraq seçəcəyik - en/ja/zh/ko/fr/de/it/pt/es/hi/ru üçün kokoro, digər dəstəklənən dillər üçün piper (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Bəli Diqqətə çevriləcək mətn. İstəyişin maksimumu: 500 simvol (anonim), 5,000 (pulsuz hesab), 1,000,000 (ödənişli plan). Uzun girişlər server tərəfində avtomatik olaraq parçalanır.
voice string Bəli Səs ID-si (var olan səsləri siyahıya almaq üçün /v1/voices/ istifadə et)
format string No Çıxış formatı: mp3 (öncəki), wav, flac, ogg
speed float No Söhbət sürətinin qatlanması. Ön qurğulu: 1.0. Aralıq: 0.5-dan 2.0-a qədər
language string No Dil kodu (məsələn, en, es). Əgər verilməsə avtomatik aşkarlanacaq.
instructions string No İşləyən / göndərən işarə (≤500 simvol). Məsələn \
pronunciations object | array No İstifadəçi istəyi əsasında səsləndirmə üstünlük təşkil edir. Ya {\
stream boolean No Axın cavabını fəallaşdır. Ön qurğulu: false

Məsələn İstifadəsi

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 təyinatları

_Təfsir EtGiriş_Sözləşmə
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

Tarix formatı ön qurğusu mdy ingilis və dmy başqa dillərdədir; format=\ ilə əvəzlənir

Məsələ
{
  "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."
}

Cavab

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.

Tam nümunə

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.

Söhbətdən Mətnə

POST /v1/stt/

Audionu mətnə çevir. Avtomatik aşkarlama ilə 99 dili dəstəkləyir.

İstiqamət (multipart/form-data)

ParametrlərNövGərəklidirİzahat
file file Bəli Audio faylı (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maksimum 100MB.
model string No STT modeli: whisper (öncəki), faster-whisper, sensevoice
language string No Dil kodu. auto avtomatik aşkarlama üçün (ölçülü).
timestamps boolean No Söz səviyyəli vaxt damğalarını daxil et. Ön qurğulu: false
diarize boolean No Dinləyicini diarization fəallaşdır. Ön qurğulu: false

Cavab

JSON Cavabı
{
  "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"
    }
  ]
}

Səs Klonlama

POST /v1/tts/clone/

Klon səslə danışıq yaradaraq. Referans səs və mətn yüklə.

İstiqamət (multipart/form-data)

ParametrlərNövGərəklidirİzahat
reference_audio file Bəli Referans səs səsi (10-30 saniyə məsləhət görülür). Max 20MB.
text string Bəli Klon səsi ilə danışacaq mətn.
model string No Klon modeli: chatterbox (öncəki), cosyvoice2, gpt-sovits
format string No Çıxış formatı: mp3 (öncəki), wav, flac
language string No Məqsəd dil kodu. Seçilmiş model tərəfindən dəstəklənməlidir.

Cavab

Audio faylı TTS son nöqtəsi ilə eyni olan ikilik məlumat olaraq geri qaytarır.

Səs dəyişdiricisi

POST /v1/voice-convert/

Səsini fərqli səsə çevir. Mənbə səsini yüklə və hədəf səsi seçin.

İstiqamət (multipart/form-data)

ParametrlərNövGərəklidirİzahat
file file Bəli Mənbə səs faylı (MP3, WAV, FLAC). Maksimum 50MB.
target_voice string Bəli Dəyişdiriləcək səs identifikatoru (var olan səsləri göstərmək üçün /v1/voices/ istifadə et)
model string No Səs çevirmə modeli: openvoice (öncəki), knn-vc
format string No Çıxış formatı: wav (öncəki), mp3, flac

Məsələn İstifadəsi

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

Cavab

Dəyişdirilmiş audio faylı ikilik məlumat olaraq geri qaytarır.

Tərcümə

POST /v1/speech-translate/

Söhbət səsini bir dildən digərinə tərcümə et. Tək bir zəngdə söz-mətn, tərcümə və mətn-söhbəti birləşdirir.

İstiqamət (multipart/form-data)

ParametrlərNövGərəklidirİzahat
file file Bəli Mənbə səs faylı orijinal dildə. Maksimum 100MB.
target_language string Bəli Məqsəd dil kodu (məsələn, es, fr, de, ja)
voice string No Tərcümə üçün səs. Əgər verilməsə avtomatik seçiləcək.
preserve_voice boolean No Oxuyucunun orijinal səs xüsusiyyətlərini qorumağa çalış. Ön qurğulu: false

Cavab

JSON Cavabı
{
  "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
}

Speech-to-Speech

POST /v1/speech-to-speech/

Müddəti saxlayaraq danışıq üslubunu, emosionallığı və ya təqdimatı dəyişdir. Ton, ritm və ifadəliliyi düzəltmək üçün faydalıdır.

İstiqamət (multipart/form-data)

ParametrlərNövGərəklidirİzahat
file file Bəli Mənbə səs faylı. Max 50MB.
voice string Bəli Çıxış səsi üçün hədəf səs ID-si
model string No Model: openvoice (öncəki), chatterbox
emotion string No Məqsəd duyğu: neutral, happy, sad, angry, excited
speed float No Sür'ət düzəltmə. Ön qurğulu: 1.0. Aralıq: 0.5-dan 2.0-a

Cavab

Dəyişdirilmiş səs faylı ikilik məlumat olaraq geri qaytar.

Audio Vasitələri

Audio işləmə son nöqtələri artırma, vokal çıxarma, stem bölmə və daha çoxu üçün.

POST /v1/audio/enhance/

Səs keyfiyyətini yaxşılaşdır: səssizləşdirmə, aydınlığı yaxşılaşdırma, super çözünürlük.

file fileƏlavə ediləcək səs faylı
denoise booleanXarici səsləri fəallaşdır (öncəki: doğru)
enhance_clarity booleanSöhbətin aydınlığını artır (öncəki: doğru)
super_resolution booleanSəs keyfiyyətini yüksəlt (öncəki: səhv)
strength integer1-3 (ağıllı, orta, güclü). Ön qurğulu: 2
POST /v1/audio/separate/

Bu, ya şəkillərin bir-birindən ayrılmasına, ya da şəkillərin bir-birindən ayrılmasına səbəb olur.

file fileSeçiləcək səs faylı
model stringdemucs (ön qurğulu) ya da spleeter
stems integerÇuxurların sayı: 2, 4, 5, ya da 6 (öncəki: 2)
format stringÇıxış formatı: wav, mp3, flac
POST /v1/audio/dereverb/

Səs qeydlərindən echo və reverb sil.

file fileİşlənəcək səs faylı
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Pulsuz

Key, BPM və vaxt imzasını aşkar etmək üçün səsi analiz et.

file fileTəhlil ediləcək səs faylı
Cavab
{
  "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/ Pulsuz

Audio formatları arasında çevir.

file fileDəyişdiriləcək səs faylı
format stringMəqsəd format: mp3, wav, flac, ogg, m4a, aac
bitrate integerKbps-də çıxış bitrate: 64, 128, 192, 256, 320
sample_rate integerNümunə dərəcəsi: 22050, 44100, 48000
channels stringmono ya da stereo

Səsli söhbət

POST /v1/voice-chat/

Audio və ya mətn göndərin və sintez edilmiş səslə AI cavabı alın.

İstiqamət (multipart/form-data ya da JSON)

ParametrlərNövGərəklidirİzahat
audio file No* Audio girişi (ya audio ya da text tələb olunur)
text string No* Mətn girişi (ya audio ya da text tələb olunur)
voice string No AI cavabı üçün səs. Ön qurğulu: af_bella
tts_model string No Cavab üçün TTS modeli. Ön qurğulu: kokoro
system_prompt string No AI üçün təyin edilmiş sistem çağırışı
conversation_id string No Hazırkı söhbətə davam et

Cavab

JSON Cavabı
{
  "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/

TTS yaradılması üçün paralel olaraq bir çox mətn göndər. Bütün iş bitdikdə seçimli olaraq webhook geri çağırma al.

Parametrlər

ParametrlərNövİzahat
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringPaket tamamlandıqda POST nəticələri üçün seçimli URL.

Cavab

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

/v1/tts/batch/result/?batch_id=abc123 ilə sorğu irəliləməsi GET

Səs Əqrəbi

POST /v1/voice-embed/

Referans səsdən səs daxiletməni əvvəlcədən hesabla. Sonrakı səs klonlama istəklərində anında yaradılması üçün geri qaytarılan embed_id-ni istifadə et.

Parametrlər

ParametrlərNövİzahat
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Cavab

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

Sağlamlıq Yoxlaması

GET /v1/health/

GPU vericisinin vəziyyətini, yüklənmiş modelləri və növbə böyüklüyünü yoxla. Tanıtma tələb edilmir. 30 saniyəlik ön yaddaş.

Cavab

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

Modelləri siyahıya al

GET /v1/models/

Bütün mövcud modellərin və onların imkanlarının siyahısını geri qaytarır.

Cavab

JSON Cavabı
{
  "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
    }
  ]
}

Səslər siyahısı

GET /v1/voices/

Bütün mövcud səslərin siyahısını, model və ya dil üzrə filtrlənmiş olaraq geri qaytarır.

Sorğu Parametrləri

ParametrlərNövİzahat
model string Model ID-si ilə filtrlə (məsələn, kokoro)
language string Dil koduna görə filtrlə (məsələn, en)
gender string Cinsiyyət üzrə filtr: erkək, qız, qeyri-fəal

Cavab

JSON Cavabı
{
  "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
}

Subtitles (SRT / VTT) yeni

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

Bütün tamamlanmış TTS işlərinə sinxronlaşdırılmış subtitrlər yaradır. Audio üzərində Whisper düzəlişləməsini yerinə yetirir və SRT ya da WebVTT geri qaytarır. Nəticələr diskdə ön yaddaşda saxlanılır, buna görə də eyni uuid üçün ikinci çağırış disk oxuması olacaq.

Sorğu Parametrləri

ParametrlərGərəklidirİzahat
uuidBəliİş UUID-i /v1/tts/ və ya /v1/voice-clone/ tərəfindən geri qaytarıldı.
formatNosrt (öncəki) və ya vtt.
downloadNo1 Content-Disposition: attachment göndərmək üçün, buna görə də brauzer göstərmək əvəzinə qeyd edəcək.
languageNoDüzləşdirmə modeli üçün işarədir (əgər buraxılsa avtomatik aşkarlanır).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Tərcümə lüğəti yeni

GET POST DELETE /api/v1/pronunciations/

TTS motoruna müəyyən sözlərin necə səslənəcəyini bildirin. Qeyd edilmiş daxilolmalar hər bir TTS istəyinizə avtomatik olaraq tətbiq olunur. Hər hesab üçün 200 daxilolma həddi.

İstiqamət (POST)

ParametrlərNövİzahat
wordstringÜstündən keçiləcək söz (məsələn GIF, Anthropic). Söz sərhədi uyğun gəldi.
replacementstringModel üçün necə yazılması (məsələn jiff, ann THROP ick).
languagestringISO kodu. Boş = bütün dillərə aiddir.
case_sensitivebooleanÖn qurğulu false. true olduğu zaman böyük-kiçik hərfləri uyğunlaşdır.
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-..."

Siz həmçinin onları saxlamadan per-istək üstələmələrini də verə bilərsiniz - hər hansı bir /v1/tts/ çağırışında pronunciations-ı ya bir obyekt, ya da bir sıra kimi daxil edə bilərsiniz (TTS son nöqtəsi parametrlərini baxın).

Məqalələr yeni

Hər hansı bir məqalə səhifəsində tək