Senedler
TTS.ai-i öz programmaňyza biziň REST API bilen birleşdiriň. Aňsat göçüm üçin OpenAI-a laýyk format.
_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
/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.
Authorization: Bearer sk-tts-your-api-key-here
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")
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');
Asly URL
Ehli ahtar nokatlary şu esas URL bilen bagly. Meselem, TTS ahtar nokat şudur:
_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
Metini ses sesine öwür. Ses faýlyny islendik formatda gaýtarýar.
Sorag Bedeni
| Parametr | _Täze | Mugt | _Ç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 | Eý | 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 | Eý | 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 -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
Taryh hiliniň öň bellenen The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
_Içinden Çap Et _Gün tertibi Aý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 mdy inglizçe we dmy başga ýerde; format=\ bilen üsti-aşyr{
"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
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.Eň gowy mysal
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)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
Speech to Text
Sesleri metinlere geçir. 99 dili awtomatik tapmak bilen goldaýar.
Sorag Bedeni (multipart/form-data)
| Parametr | _Täze | Mugt | _Çykar |
|---|---|---|---|
| file | file | Eý | 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
{
"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
Klon edilen ses bilen gürleş. Referans audio we metin ýükle.
Sorag Bedeni (multipart/form-data)
| Parametr | _Täze | Mugt | _Çykar |
|---|---|---|---|
| reference_audio | file | Eý | Ses ses referensy (10-30 sekunt maslahat berlen). Maks 20MB. |
| text | string | Eý | 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
Sesleri başga ses ýaly çalşyr. Metin sesi ýükle we maksat sesi saýla.
Sorag Bedeni (multipart/form-data)
| Parametr | _Täze | Mugt | _Çykar |
|---|---|---|---|
| file | file | Eý | Metin ses faýly (MP3, WAV, FLAC). Maks 50MB. |
| target_voice | string | Eý | Ö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 -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
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äze | Mugt | _Çykar |
|---|---|---|---|
| file | file | Eý | Ahyrky ses faýly aňsatlyk bilen okalyp bilner. Maks. 100MB. |
| target_language | string | Eý | 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
{
"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
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äze | Mugt | _Çykar |
|---|---|---|---|
| file | file | Eý | Söz çeşme ses faýly. Maks. 50MB. |
| voice | string | Eý | Ç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.
Ses hilini gowulandyr: gürleşiki aýyr, açgözlügi gowulandyr, süper çözgüt.
| file file | Bejeriljek ses faýly |
| denoise boolean | Sesi aýyrmagy mümkin et (öň bellenen: dogry) |
| enhance_clarity boolean | Sesiň aýdyňlygyny ýokarlandyr (öň bellenen: dogry) |
| super_resolution boolean | Ses hiliňi ýokarlandyr (öň bellenen: faýl) |
| strength integer | 1-3 (ýagly, orta, güýçli). Öň bellenen: 2 |
Wokallary instrumentlerden aýr (wokal aýyr) ýa-da olary köklere böl.
| file file | Aýryljak audio faýly |
| model string | demucs (öň bellenen) ýa-da spleeter |
| stems integer | Çyzyklaryň sany: 2, 4, 5, ýa-da 6 (öň bellenen: 2) |
| format string | Çykyş hili: wav, mp3, flac |
Ses ýazgylardan echo we reverb aýyr
| file file | Işlemeli ses faýly |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Alkym, BPM, we wagt nyşanyny tapmak üçin sesleri analiz et
| file file | Sesi analiz etmek üçin faýl |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Sesleri formatlar arasyna öwür
| file file | Öňki ses faýly |
| format string | Hedef format: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Çykyş bitrate in kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Mysal tizligi: |
| channels string | mono ýa-da stereo |
Ses gürleşmesi
Awdio ýa-da metin iber we sözi sintezläp AI jogap al.
Sorag Bedeni (multipart/form-data ýa-da JSON)
| Parametr | _Täze | Mugt | _Ç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
{
"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
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ç |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Baç tamamlananda POST netijeleri üçin opsion URL. |
Jawa
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 bilen soraň
Ses Eňkaldy
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ç |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Jawa
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Saglyk barlagy
GPU serweriň halyny, ýüklenen modelleri we nobat ululygyny barla. Tanyşlyk gerek däl. 30 sekunt üçin keşf edildi.
Jawa
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Modelleri Çykar
Ehli elýeterli modelleriň bir sanawyny we olaryň ukybyny gaýtarýar.
Jawa
{
"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
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
{
"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
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
| Parametr | Mugt | _Çykar |
|---|---|---|
| uuid | Eý | /v1/tts/ ýa-da /v1/voice-clone/ tarapyndan dolanan iş UUID. |
| format | _Ýok | srt (öň bellenen) ýa vtt. |
| download | _Ýok | 1 Content-Disposition: attachment ibermek üçin, şundan görnüşçi görkezmekden gaýd edýä. |
| language | _Ýok | Diňe bir öñ bellenen öň bellenen model üçin |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Sözlük Täze
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 |
|---|---|---|
| word | string | Üstünden geçjek söz (m.a. GIF, Anthropic). Söz-süňňi deňleşdi. |
| replacement | string | Mody üçin ony nädip ýazmaly (meselem jiff, ann THROP ick). |
| language | string | Opsion ISO kod. Boş = ähli dillere degişlidir. |
| case_sensitive | boolean | Öň bellenen false. true bolsa kiçi/beýik harplary dogry deňle. |
# 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 tag goý we myhmanlar bir dik okaýjy zolaky alar bu sahypany basmak bilen gürrüň eder. Otomatik makala bedenini tapýar, özboluşly ses / model / ýer / aksent reňkini goldaýar.
<script src="https://tts.ai/narrator.js"
data-pk="pk-tts-your-publishable-key"
data-voice="af_bella"
data-model="kokoro"
data-extract="auto"
data-position="bottom"
data-color="#e60000"
data-locale="en"></script>
Opşenler
| Parametr | _Çykar |
|---|---|
data-pk | Açar çap edilip bilner (pk-tts-...). Domen çäklendirmeleri açaryň allowed_domains meýdançasy arkaly berjaý edilmelidir. |
data-voice | Ses ID. Öň bellenen af_bella. |
data-model | TTS model ID. Öň bellenen |
data-extract | auto (öň bellenen) — article/main/.post-content/.entry-content saýlaýjylary synlaýar, iň köp tizlikdäki paragraf klasterine dogry gelýär. Ýoksa belli bir elemente niýetlemek üçin islendik CSS saýlaýjyny geç. |
data-position | bottom (öň bellenen) ýa top. |
data-color | Aksent renki (eger CSS renki bolsa). Öň bellenen #e60000. |
data-min-chars / data-max-chars | Eger makala min-chars (öň bellenen 200)dan gysga bolsa bary geçip git. Cap girişi max-chars (öň bellenen 50,000)da. |
Diňle Batüni Widget
Hat içinde batman-stili äpişge. tagyň ýanynda render edilýär we batman-töwereklenen gysga snippet oýnaýar. Üstdäki Metin Gozleýjiden tapawutly şekil (otomatik bir sahypa-öňki baryny girizýär we metiniň ählisini gozleýär).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Gaýd Edilen Sesler
Referans audiony bir gezek ýükle, durnukly voice_id'i al, soňra her bir jaňda sesni ýüklemekden başga TTS isleglerinde şol id'e salgylan. Beýik göwrümli birikmeler üçin ideal.
Ses ýükle
POST
https://tts.ai/api/v1/user-voices/
Tanyşdyrma zerur
Birden köp bölekleri bar. meýdançalar: faýl (mugt, 5-30s ses), ad (mugt), dil (mugt, öň bellenen en), model (mugt — zh/ja/ko üçin otomatik saýlar cosyvoice2 else openvoice), ykrar_et (mugt, islendik dogry mykdar).
curl -X POST https://tts.ai/api/v1/user-voices/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@reference.wav" \
-F "name=My Narrator" \
-F "language=en" \
-F "consent_confirmed=true"
# Response:
{
"public_id": "uv_a1b2c3d4e5f6",
"id": 42,
"name": "My Narrator",
"model_name": "openvoice",
"language": "en",
"reference_audio_url": "https://tts.ai/media/user-voices/....wav",
"storage_status": "active",
"created_at": "2026-04-17T03:45:00+00:00"
}
Gaýd edlen sesi TTS-de ullan
POST to /api/v1/tts/ (NÄZEL: web VPS host, not api.tts.ai) with user_voice_id. We load your stored audio and route to the cloning pipeline.
curl -X POST https://tts.ai/api/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'
# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.
Toýun / Poz
GET https://tts.ai/api/v1/user-voices/ # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6
Arşiwle / Täzele (özgür)
Sesler arşiwde hasabyňyzda galýar emma TTS-de ulanylyp bolmaýar. Bu ýatan soňly ulanyjylar üçin peýdaly, sebäbi siziň sanawyňyz arassa galýar.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Kod Meseleleri
Metinden Söze
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')}")
Speech to Text
# 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"])
Ses Klonlama
# 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)
Metinden Söze
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();
Speech to Text
// 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);
Metinden Söze
# 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
Speech to Text
# 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"
Ses Klonlama
# 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
Ses güýçlendiriji
# 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
Hata Kody
Ehli hatalar bir JSON jogap bilen dogrylaýar error meýdança
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP Halty | Hata Kody | _Çykar |
|---|---|---|
| 400 | bad_request |
Saýlanan parametrler dogry däl. Täzelik üçin hata islegini barlaň. |
| 401 | unauthorized |
Eksik ýa-da ýalňyş API adyny görkez |
| 402 | insufficient_credits |
Yeterli karakter ýok. /pricing/ adresinden has köp alyň. |
| 403 | forbidden |
Siziň bu çeşmä ýetmek üçin ygtyýaryňyz ýok (m.a. başga ulanyjynyň işini soramak). API ýetmek her bir planda bar. |
| 404 | not_found |
Model ýa-da ses tapylmady. |
| 413 | file_too_large |
Faýl ululyk çäkden aşdy. |
| 429 | rate_limited |
Çok talaplar. Tizlik çäklendirme başlyklaryny barlaň. |
| 500 | internal_error |
Serwer hatasy. Soňra ýene synla. |
| 503 | model_loading |
Model ýüklenilýär. Birnäçe sekuntdan soň ýene synla. |
Webhooks
Uzak giden iş üçin (stamp bölmek, batch TTS), siz bir webhook_url parametri berip bilersiňiz. iş tamamlananda, biz netijäni URL'iňize POST ederis.
{
"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"
}
Bina etmäge taýýarmy?
API adyny al we TTS.ai'i öz programleriňe birikdir.