Senedler

TTS.ai-i öz programmaňyza biziň REST API bilen birleşdiriň. Aňsat göçüm üçin OpenAI-a laýyk format.

REST API OpenAI Uýgunlaşýan JSON jogaplar Akym goldawy

_Gözleg

TTS.ai API ähli platforma aýratynlyklara programmatik elýeterliligi berýär: metinden söze sintez, sözden metine transkripsiýa, ses klonlama, ses güýçlendiriji, we başgalar. API JSON soraş/jogap bedenleri bilen standart REST konwensiýalary ulanýar.

API Ady

Siziň API adyny şundan al Hasabyň konfigurasiýasy. Pro we Enterprise planlarda elýeterli.

Asly URL

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

Auth

Barlaýjy token Authorization başlyk

Tanyşdyrma

Açar gerek däl Anonymous POSTs to /v1/tts/ hiç bir ygtyýarsyz işle, IP üçin günde 5000 karaktere çenli, biziň her bir azat modelimizi ulanyp (piper, vits, melotts, kokoro). 15,000 bonus karakteri we premium modellere elýeterliligi almak üçin mugt hasabyňyza girin.

Premium modyllar we ýokary tizlik çäkleri üçin, şunda bir Berer tokeni bilen tanyşlyk aç Authorization başlyk.

HTTP Heder
Authorization: Bearer sk-tts-your-api-key-here
API adyny gizlin sakla Ony ulanyjy tarap kody, halk repozytoriýalary, ýa-da ýazgylarda paýlaşmaň. Hasabyňyzyň aňlatmalaryndan açarlary düzenli doňduryň.

SDK

Resmi SDKs TTS.ai-i siziň programmaňyza birikdirmek aňsat edýär. Ikisi hem açyk çeşme we GitHub-da elýeterli.

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

Asly URL

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

Ehli ahtar nokatlary şu esas URL bilen bagly. Meselem, TTS ahtar nokat şudur:

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

_Gün tertibi

API tizligi plandan plana üýtgeýär:

Plan Dilegler/min Bir wagtda Metin Uzunlugy
Free 10 2 500 karakter
Başlançy 30 3 1,000,000 karakter
Pro 60 5 1,000,000 karakter
Enterprise 300 20 50,000 karakter

Her bir jogapda tizlik çäklendirme başlyglary goşulýar: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Saýlaw

Hyzmat Maliýe Birlik
TTS (Free models: Piper, VITS, MeloTTS) 1,000 karakter her 1000 karakter üçin
TTS (Standard modeller: Kokoro, CosyVoice 2, etc.) 2,000 karakter her 1000 karakter üçin
TTS (Premium modeller: Tortoise, Chatterbox, etc.) 4,000 karakter her 1000 karakter üçin
Speech to Text 2,000 karakter minutda ses
Ses Klonlama 4,000 karakter her 1000 karakter üçin
Ses Saýlawçy 3,000 karakter minutda ses
Ses güýçlendiriji 2,000 karakter minutda ses
Ses Çykar 3,000-4,000 karakter minutda ses
Terjime 5000 karakter minutda ses
Ses gürleşmesi 3,000 karakter her aýlawda
Açarlary Tap Free --
Audio Konwerter Free --

Metinden Söze

POST /v1/tts/

Metini ses sesine öwür. Ses faýlyny islendik formatda gaýtarýar.

Sorag Bedeni

Parametr_TäzeMugt_Çykar
model string _Ýok Model ID (m.a. kokoro, chatterbox, piper). Eger goýberilmese, biz soralan dilni goldaýan bir modeli otomatlyk saýlaýarys — kokoro en/ja/zh/ko/fr/de/it/pt/es/hi/ru üçin, piper beýleki goldaýan diller üçin (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Söze öwürmek üçin metin. Her bir soragyň çäkleri: 500 karakter (anonim), 5,000 (mugt hasap), 1,000,000 (ödenmeli hasap). Uzak girmeler serwer tarapyndan awtomatiki bölner.
voice string Ses ID (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac, ogg
speed float _Ýok Sözleme tizligi faýalçy. Öň bellenen: 1.0. Aralyk: 0.5 dan 2.0
language string _Ýok Dil kody (m.a. en, es). Eger goýberilmese otomatik tapylar.
instructions string _Ýok Aktiw / iberiş çyzyklary (≤500 karakter). mysal üçin \
pronunciations object | array _Ýok {\\
stream boolean _Ýok Ýüklenen jogapy mümkin et. Öň bellenen: false

Mesele soragy

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ägler

_Içinden Çap Et_Gün tertibiAýry Sözle
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31Dec
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

Taryh hiliniň öň bellenen mdy inglizçe we dmy başga ýerde; format=\ bilen üsti-aşyr

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

Jawa

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.

Eň gowy mysal

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.

Speech to Text

POST /v1/stt/

Sesleri metinlere geçir. 99 dili awtomatik tapmak bilen goldaýar.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Ses faýly (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks 100MB.
model string _Ýok STT mody: whisper (öň bellenen), faster-whisper, sensevoice
language string _Ýok Dil kody. auto otomatik tapmak üçin (öň bellenen).
timestamps boolean _Ýok Söz derejeli wagt damgalaryny goş. Öň bellenen: false
diarize boolean _Ýok Sesçi diaryzasiýasyny işe giriz. Öň bellenen: false

Jawa

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

Ses Klonlama

POST /v1/tts/clone/

Klon edilen ses bilen gürleş. Referans audio we metin ýükle.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
reference_audio file Ses ses referensy (10-30 sekunt maslahat berlen). Maks 20MB.
text string Klon ses bilen aýtmak üçin metin.
model string _Ýok Klon mody: chatterbox (öň bellenen), cosyvoice2, gpt-sovits
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac
language string _Ýok Dilin maksat ködi. Saýlanan model tarapyndan goldanylmalydyr.

Jawa

Ses faýlyny ikilik maglumaty hökmünde gaýtar, TTS soň noktasy bilen deň.

Ses Saýlawçy

POST /v1/voice-convert/

Sesleri başga ses ýaly çalşyr. Metin sesi ýükle we maksat sesi saýla.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Metin ses faýly (MP3, WAV, FLAC). Maks 50MB.
target_voice string Öwrediljek ses identifikatory (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
model string _Ýok Ses öwürme modeli: openvoice (öň bellenen), knn-vc
format string _Ýok Çykyş hili: wav (öň bellenen), mp3, flac

Mesele soragy

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

Jawa

Öňki ses faýlyny ikilik maglumaty hökmünde gaýtalaýar.

Terjime

POST /v1/speech-translate/

Sesli audiony bir dilden başga dilde terjime et. Sesden metine, terjimeden we metinden sesli bir çakylykda birleşdir.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Ahyrky ses faýly aňsatlyk bilen okalyp bilner. Maks. 100MB.
target_language string Dil kody (m.a. es, fr, de, ja)
voice string _Ýok Terjime çykdajy üçin ses. Eger goýberilmese otomatik saýlanar.
preserve_voice boolean _Ýok Ozalky sözleýjiniň ses häsiýetlerini sakla

Jawa

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

Sözi, emosiýany ýa-da mazmuny saklaýan wagtynda berjaý et. Tony, tizligi we beýany düzmek üçin peýdaly.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Söz çeşme ses faýly. Maks. 50MB.
voice string Çykyş sözi üçin ses ID-ni saýla
model string _Ýok Model: openvoice (öň bellenen), chatterbox
emotion string _Ýok Target emotion: neutral, happy, sad, angry, excited
speed float _Ýok Tizlik düzedişi. Öň bellenen: 1.0. Aralyk: 0.5 dan 2.0

Jawa

Öňki ses faýlyny ikilik maglumaty hökmünde gaýtarýar.

Ses Esbaplary

Ses işleýşini gowulandyrmak, ses çykarmak, kök bölmek, we başgalar üçin ses işlemek üçin ahtar nokatlary.

POST /v1/audio/enhance/

Ses hilini gowulandyr: gürleşiki aýyr, açgözlügi gowulandyr, süper çözgüt.

file fileBejeriljek ses faýly
denoise booleanSesi aýyrmagy mümkin et (öň bellenen: dogry)
enhance_clarity booleanSesiň aýdyňlygyny ýokarlandyr (öň bellenen: dogry)
super_resolution booleanSes hiliňi ýokarlandyr (öň bellenen: faýl)
strength integer1-3 (ýagly, orta, güýçli). Öň bellenen: 2
POST /v1/audio/separate/

Wokallary instrumentlerden aýr (wokal aýyr) ýa-da olary köklere böl.

file fileAýryljak audio faýly
model stringdemucs (öň bellenen) ýa-da spleeter
stems integerÇyzyklaryň sany: 2, 4, 5, ýa-da 6 (öň bellenen: 2)
format stringÇykyş hili: wav, mp3, flac
POST /v1/audio/dereverb/

Ses ýazgylardan echo we reverb aýyr

file fileIşlemeli ses faýly
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Boş

Alkym, BPM, we wagt nyşanyny tapmak üçin sesleri analiz et

file fileSesi analiz etmek üçin faýl
Jawa
{
  "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/ Boş

Sesleri formatlar arasyna öwür

file fileÖňki ses faýly
format stringHedef format: mp3, wav, flac, ogg, m4a, aac
bitrate integerÇykyş bitrate in kbps: 64, 128, 192, 256, 320
sample_rate integerMysal tizligi:
channels stringmono ýa-da stereo

Ses gürleşmesi

POST /v1/voice-chat/

Awdio ýa-da metin iber we sözi sintezläp AI jogap al.

Sorag Bedeni (multipart/form-data ýa-da JSON)

Parametr_TäzeMugt_Çykar
audio file _Ýok* Ses girdisi (ýa audio ýa text zerur)
text string _Ýok* Metin girişi (ýa audio ýa-da text zerur)
voice string _Ýok AI jogap üçin ses. Öň bellenen: af_bella
tts_model string _Ýok Jawa üçin TTS modeli. Öň bellenen: kokoro
system_prompt string _Ýok AI üçin özboluşly sistem soragy
conversation_id string _Ýok Meşhur gürleşige dowam et

Jawa

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

TTS

POST /v1/tts/batch/

Paralel TTS emele etmek üçin birnäçe metinleri iber. Eýsem ähli işler tamamlananda bir webhook çakylyk gaýtarygyny al.

Parametrler

Parametr_Täze_Aç
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringBaç tamamlananda POST netijeleri üçin opsion URL.

Jawa

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

GET /v1/tts/batch/result/?batch_id=abc123 bilen soraň

Ses Eňkaldy

POST /v1/voice-embed/

Referans audiodan ses äpişgesini öňden hasap et. Diňe bir pursatda döremek üçin soňky ses klon isleglerinde embed_id'i ullan.

Parametrler

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

Jawa

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

Saglyk barlagy

GET /v1/health/

GPU serweriň halyny, ýüklenen modelleri we nobat ululygyny barla. Tanyşlyk gerek däl. 30 sekunt üçin keşf edildi.

Jawa

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

Modelleri Çykar

GET /v1/models/

Ehli elýeterli modelleriň bir sanawyny we olaryň ukybyny gaýtarýar.

Jawa

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

Sesleri Çykar

GET /v1/voices/

Ehli elýeterli sesleriň bir sanawyny gaýtar, islendik model ýa dil boýunça süzgüçlenipdir.

Query Parameters

Parametr_Täze_Çykar
model string Model ID bilen süz (m.a. kokoro)
language string Dil kody bilen süz (m.a. en)
gender string male, female, neutral

Jawa

JSON jogap
{
  "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) Täze

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

Her bir tamamlanan TTS iş üçin synchronized subtitlelary döred. Ses üstünden Whisper düzlemegi işledýär we SRT ýa WebVTT gaýtarýar. Netije diskde keşflenýär şuňa görä aňşy uuid üçin ikinji bir çagyryş bir disk okamak bolar.

Query Parameters

ParametrMugt_Çykar
uuid/v1/tts/ ýa-da /v1/voice-clone/ tarapyndan dolanan iş UUID.
format_Ýoksrt (öň bellenen) ýa vtt.
download_Ýok1 Content-Disposition: attachment ibermek üçin, şundan görnüşçi görkezmekden gaýd edýä.
language_ÝokDiňe bir öñ bellenen öň bellenen model üçin
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Sözlük Täze

GET POST DELETE /api/v1/pronunciations/

TTS enjamy belli sözleri nädip aýtjakdygyny aýt. Gaýd edilen girdejiler her bir TTS soragyna otomatik ulanyp bilner. 200 girdejilik hasabyň çäki.

Sorag Bedeni (POST)

Parametr_Täze_Çykar
wordstringÜstünden geçjek söz (m.a. GIF, Anthropic). Söz-süňňi deňleşdi.
replacementstringMody üçin ony nädip ýazmaly (meselem jiff, ann THROP ick).
languagestringOpsion ISO kod. Boş = ähli dillere degişlidir.
case_sensitivebooleanÖň bellenen false. true bolsa kiçi/beýik harplary dogry deňle.
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 hemme soraglar üçin üsti-göçürmeleri gaýd etmezden geçirip bilersiňiz - pronunciations-i her bir /v1/tts/ çakylykda bir zadyň ýa-da bir arşiwiň içinde goşaň (TTS son nokta params-y gör).

Meňzeş Täze

Her bir makala sahypasynda bir