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

Bütün API istəkləri aşağıdakı Bearer token vasitəsilə tanınması tələb edir 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 100,000 karakter
Pro 60 5 100,000 karakter
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 Bəli Model ID (məsələn, kokoro, chatterbox, piper)
text string Bəli Mətnə çeviriləcək səs (hər istək üçün maksimum 100,000 simvol)
voice string Bəli Səs ID-si (var olan səsləri siyahıya almaq üçün /v1/voices/ istifadə et)
format string _Yox Çıxış formatı: mp3 (öncəki), wav, flac, ogg
speed float _Yox 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 _Yox Dil kodu (məsələn, en, es). Əgər verilməsə avtomatik aşkarlanacaq.
stream boolean _Yox 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

Cavab

Audio faylı uyğun Content-Type başlığı ilə ikilik məlumat olaraq geri qaytarır (audio/mpeg, audio/wav, və s.).

Cavab başlıqları
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

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 _Yox STT modeli: whisper (öncəki), faster-whisper, sensevoice
language string _Yox Dil kodu. auto avtomatik aşkarlama üçün (ölçülü).
timestamps boolean _Yox Söz səviyyəli vaxt damğalarını daxil et. Ön qurğulu: false
diarize boolean _Yox 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 _Yox Klon modeli: chatterbox (öncəki), cosyvoice2, gpt-sovits
format string _Yox Çıxış formatı: mp3 (öncəki), wav, flac
language string _Yox 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 _Yox Səs çevirmə modeli: openvoice (öncəki), knn-vc
format string _Yox Çı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 _Yox Tərcümə üçün səs. Əgər verilməsə avtomatik seçiləcək.
preserve_voice boolean _Yox 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 _Yox Model: openvoice (öncəki), chatterbox
emotion string _Yox Məqsəd duyğu: neutral, happy, sad, angry, excited
speed float _Yox 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 _Yox* Audio girişi (ya audio ya da text tələb olunur)
text string _Yox* Mətn girişi (ya audio ya da text tələb olunur)
voice string _Yox AI cavabı üçün səs. Ön qurğulu: af_bella
tts_model string _Yox Cavab üçün TTS modeli. Ön qurğulu: kokoro
system_prompt string _Yox AI üçün təyin edilmiş sistem çağırışı
conversation_id string _Yox 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_urlstringOptional URL to POST results when batch completes.

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
}

Kod nümunələri

Mətndən Söhbətə

Python - requests
import requests

API_KEY = "sk-tts-your-key"

# Text to Speech
response = requests.post(
    "https://api.tts.ai/v1/tts/",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "kokoro",
        "text": "Hello from TTS.ai!",
        "voice": "af_bella",
        "format": "mp3"
    }
)

with open("output.mp3", "wb") as f:
    f.write(response.content)

print(f"Credits used: {response.headers.get('X-Credits-Used')}")

Söhbətdən Mətnə

Python - requests
# Speech to Text
with open("recording.mp3", "rb") as f:
    response = requests.post(
        "https://api.tts.ai/v1/stt/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f},
        data={"model": "faster-whisper", "timestamps": "true"}
    )

result = response.json()
print(result["text"])

Səs Klonlama

Python - requests
# Voice Cloning
with open("reference.wav", "rb") as ref:
    response = requests.post(
        "https://api.tts.ai/v1/tts/clone/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"reference_audio": ref},
        data={
            "text": "This speech uses a cloned voice.",
            "model": "chatterbox"
        }
    )

with open("cloned_output.mp3", "wb") as f:
    f.write(response.content)

Mətndən Söhbətə

JavaScript - fetch
const API_KEY = 'sk-tts-your-key';

// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'kokoro',
    text: 'Hello from TTS.ai!',
    voice: 'af_bella',
    format: 'mp3'
  })
});

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

Söhbətdən Mətnə

JavaScript - fetch
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');

const response = await fetch('https://api.tts.ai/v1/stt/', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${API_KEY}` },
  body: formData
});

const result = await response.json();
console.log(result.text);

Mətndən Söhbətə

cURL
# Text to Speech
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!","voice":"af_bella","format":"mp3"}' \
  -o output.mp3

Söhbətdən Mətnə

cURL
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@recording.mp3" \
  -F "model=faster-whisper" \
  -F "timestamps=true"

Səs Klonlama

cURL
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "reference_audio=@reference.wav" \
  -F "text=This uses a cloned voice." \
  -F "model=chatterbox" \
  -o cloned.mp3

Audio Enhancer

cURL
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@noisy_audio.mp3" \
  -F "denoise=true" \
  -F "enhance_clarity=true" \
  -o enhanced.mp3

Xəta Kodları

Bütün xətalar JSON cavabı ilə geri dönür error sahəsi

Xəta Cavab Növünü
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP VəziyyətiXəta Koduİzahat
400 bad_request Səhv tələb parametrləri. Məlumat üçün xəta ismarışını yoxlayın.
401 unauthorized API açarı yoxdu ya da səhvdir.
402 insufficient_credits Yetərli xarakter yoxdur. /pricing/-dən daha çoxunu alın.
403 forbidden Sizin planınızda API girişi mövcud deyil.
404 not_found Model ya da səs tapılmadı.
413 file_too_large Yüklənən fayl ölçüsünü aşır.
429 rate_limited Çox çox tələblər. Sürət həddi başlıqlarını yoxlayın.
500 internal_error Verici xətası. Sonra yenidən cəhd edin.
503 model_loading Model yüklənir. Bir neçə saniyə sonra yenidən cəhd edin.

Webhooks

Uzun işləyən vəzifələr üçün (stamp bölünməsi, batch TTS), webhook_url parametri verə bilərsiniz. İş bitdikdə, nəticəni URL-nizə POST edəcəyik.

Webhook Payload
{
  "event": "task.completed",
  "task_id": "task_abc123",
  "status": "success",
  "result_url": "https://api.tts.ai/v1/results/task_abc123",
  "credits_used": 12,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:45Z"
}
Webhook nəticələri tamamlandıqdan sonra 24 saat ərzində endirilməyə hazırdır. Onları tez endirin.

Qurmağa hazırsan?

API açarınızı əldə edin və TTS.ai-i tətbiqlərinizə birləşdirməyə başlayın.