Ҳужжатлаштириш
TTS.ai'ни ўз дастурларингизга бизнинг REST API'миз билан интеграция қилинг. Осон кўчиш учун OpenAI-га мос формат.
Таъриф
TTS.ai API барча платформа хусусиятларига дастурий киришни таъминлайди: матн-нутқ синтези, сўз-матн транскрипцияси, овоз клонлаши, аудиони яхшилаш ва бошқалар. API JSON талаб/жавоб қисмлари билан стандарт REST конвенцияларини қўллайди.
API калити
Сизнинг API калитингизни олиш Ҳисоб параметрлари. Pro ва Enterprise режаларида мавжуд.
Асосий URL
https://api.tts.ai/v1/
Аутентификация
Берувчи токен йўли билан Authorization бошлиқ
Аутентификация
/v1/tts/ Бизнинг бепул моделларимиздан фойдаланиб, ҳар бир IP-манзил учун кунига 5000 тагача белгини ҳеч қандай рухсатсиз ишлатишга имкон беради (piper, vits, melotts, kokoro). 15,000 та бонус характер ва премиум моделларга кириш учун бепул ҳисобга рўйхатдан ўтинг.
Premium моделлари ва юқори тезлик чегаралари учун, қуйидагида Bearer token билан аутентификация қилинг Authorization бошлиқ.
Authorization: Bearer sk-tts-your-api-key-here
SDKлар
Расмий SDKлар TTS.ai ни дастурингизга осонлик билан интеграциялаш имконини беради. Иккаласи ҳам очиқ манбали ва 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")
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');
Асосий URL
Барча якуний нуқталар ушбу асосий URL'га нисбатандир. Мисол учун, TTS якуний нуқтаси:
Сифат чегаралари
API тезлиги чекловлари режага қараб ўзгаради:
| Бўлим | Талаблар/мин | Бир вақтда | Максимал матн узунлиги |
|---|---|---|---|
| Оқ | 10 | 2 | 500 белги |
| Бошловчи | 30 | 3 | 1,000,000 белги |
| Про | 60 | 5 | 1,000,000 белги |
| Корхона | 300 | 20 | 50,000 белги |
Ҳар бир жавобга тезлик чегараси сарлавҳалари киритилади: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Кредит харажатлари
| Хизмат | Нархи | Бирлик |
|---|---|---|
| TTS (Озод моделлар: Piper, VITS, MeloTTS) | 1000 белги | Ҳар 1000 белги учун |
| TTS (стандарт моделлар: Kokoro, CosyVoice 2, ва ҳоказо) | 2000 белги | Ҳар 1000 белги учун |
| TTS (Premium моделлар: Tortoise, Chatterbox, ва ҳоказо) | 4,000 белги | Ҳар 1000 белги учун |
| Сўздан матнга | 2000 белги | Ҳар дақиқада аудио |
| Товушни клонлаш | 4,000 белги | Ҳар 1000 белги учун |
| Овоз алмаштиргич | 3000 белги | Ҳар дақиқада аудио |
| Аудио кучайтириш | 2000 белги | Ҳар дақиқада аудио |
| Вокални олиб ташлаш / Вокални ажратиш | 3,000-4,000 белги | Ҳар дақиқада аудио |
| Товуш таржимаси | 5,000 белги | Ҳар дақиқада аудио |
| Овозли суҳбат | 3000 белги | ҳар бир айланишда |
| Калит ва BPM қидиргичи | Оқ | -- |
| Аудио кўчиргич | Оқ | -- |
Матндан сўзга
Матнни сўзлаш аудиосига айлантиради. Audio файлни талаб қилинган форматда қайтаради.
Сўров матни
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| model | string | Йўқ | Модель ID (масалан, kokoro, chatterbox, piper). Агар қолдирилган бўлса, биз талаб қилинган language ни қўллаб-қувватловчи моделни автоматик равишда танлаймиз — en/ja/zh/ko/fr/de/it/pt/es/hi/ru учун kokoro, бошқа қўллаб-қувватланадиган тиллар учун piper (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | Ҳа | Матнни сўзга айлантириш. Ҳар бир талаб учун чеклов: 500 белги (аноним), 5,000 (бепул ҳисоб), 1,000,000 (пулли). Умумий киритмалар сервер томондан автоматик равишда ажратилади. |
| voice | string | Ҳа | Товуш ID (имкони бор овозларни рўйхатга олиш учун /v1/voices/ ни ишлатинг) |
| format | string | Йўқ | Чоп этиш формати: mp3 (одатдаги), wav, flac, ogg |
| speed | float | Йўқ | Гапириш тезлиги кўпайтиргичи. Ўртача: 1.0. Диапазон: 0.5 дан 2.0 гача |
| language | string | Йўқ | Тил коди (масалан, en, es). Агар қолдирилган бўлса, автоматик равишда аниқланади. |
| instructions | string | Йўқ | Ишлатилаётган / етказиб берилаётган сигналлар (≤500 белги). мисол учун <код>\ |
| pronunciations | object | array | Йўқ | Ҳар бир талаб бўйича талаффуз ўзгартирилади. Ёки {\ |
| stream | boolean | Йўқ | Стрим жавобини ишга тушириш. Ўртача: false |
Мисол сўраш
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 теглар
Рақамлар, саналар, пул бирликлари, телефон рақамлари ва акронимларни Тақвим формати 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
талқин қилиш Ички Бошқача айтилган 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 mdy га одатдагидан инглизча ва dmy бошқа жойларда; format=\ билан алмаштирилади{
"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."
}Жавоб
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.Full example
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.
Сўздан матнга
Аудиони матнга кўчириш. 99 та тилни автоматик аниқлаш билан қўллаб-қувватлайди.
Сўров матни (multipart/form-data)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| file | file | Ҳа | Аудио файл (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Максимум 100MB. |
| model | string | Йўқ | STT модели: whisper (одатдаги), faster-whisper, sensevoice |
| language | string | Йўқ | Тил коди. auto автоматик аниқлаш учун (стандарт). |
| timestamps | boolean | Йўқ | Калима даражасидаги вақт белгиларини киритиш. Ўртача: false |
| diarize | boolean | Йўқ | Сўзловчи диаризациясини ишга тушириш. Ўртача: false |
Жавоб
{
"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"
}
]
}
Товушни клонлаш
Клонланган овозда сўзлашув яратиш. Эслатма аудио ва матнни юклаш.
Сўров матни (multipart/form-data)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| reference_audio | file | Ҳа | Сўроқ овози аудиоси (10-30 сония тавсия этилади). Max 20MB. |
| text | string | Ҳа | Клонланган овозда айтиладиган матн. |
| model | string | Йўқ | Клон модели: chatterbox (одатдаги), cosyvoice2, gpt-sovits |
| format | string | Йўқ | Чоп этиш формати: mp3 (одатдаги), wav, flac |
| language | string | Йўқ | Мақсад тил коди. Танланган модел томонидан қўллаб-қувватланиши керак. |
Жавоб
Аудио файлни TTS охиридаги маълумотлар билан бир хил иккилик маълумотлар сифатида қайтаради.
Овоз алмаштиргич
Аудиони бошқа овозга айлантиринг. Манба аудиосини юклаб олинг ва мақсад овозини танланг.
Сўров матни (multipart/form-data)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| file | file | Ҳа | Манба аудио файли (MP3, WAV, FLAC). Max 50MB. |
| target_voice | string | Ҳа | Ўгириладиган мақсад овоз ID (имкони бор овозларни рўйхатга олиш учун /v1/voices/ ни ишлатинг) |
| model | string | Йўқ | Товушни ўзгартириш модели: openvoice (стандарт), knn-vc |
| format | string | Йўқ | Чоп этиш формати: wav (стандарт), mp3, flac |
Мисол сўраш
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
Жавоб
Ўгирилган аудио файлни иккилик маълумотлар сифатида қайтаради.
Товуш таржимаси
Бир тилдан бошқа тилга сўзланган аудиони таржима қилиш. Бир марталик қўнғироқда сўздан матнга, таржимадан матнга ва матндан сўзга таржима қилишни бирлаштиради.
Сўров матни (multipart/form-data)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| file | file | Ҳа | Манба аудио файли асл тилда. Максимум 100MB. |
| target_language | string | Ҳа | Мақсадли тил коди (масалан, es, fr, de, ja) |
| voice | string | Йўқ | Таржима учун овоз. Агар қолдирилган бўлса, автоматик равишда танланади. |
| preserve_voice | boolean | Йўқ | Овозли сўзловчининг асл овоз хусусиятларини сақлашга уриниш. Ўрнинбосар: false |
Жавоб
{
"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
}
Сўздан сўзга
Мазмунни сақлаган ҳолда сўзлаш услубини, ҳис-туйғуларни ёки тақдимотни ўзгартиринг. Тонни, тезликни ва ифодачанликни тўғрилаш учун фойдали.
Сўров матни (multipart/form-data)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| file | file | Ҳа | Манба сўзлашув аудио файли. Max 50MB. |
| voice | string | Ҳа | Чиқувчи сўзлашув учун мақсад овоз ID |
| model | string | Йўқ | Намуна: openvoice (одатдаги), chatterbox |
| emotion | string | Йўқ | Мақсад ҳиссиёт: neutral, happy, sad, angry, excited |
| speed | float | Йўқ | Тезликни созлаш. Ўртача: 1.0. Диапазон: 0.5 дан 2.0 гача |
Жавоб
Трансформация қилинган аудио файлни иккилик маълумотлар сифатида қайтаради.
Аудио асбоблари
Уни яхшилаш, овозни олиб ташлаш, устунларни ажратиш ва бошқалар учун аудиони ишлаш охирги нуқталари.
Аудио сифатини яхшилаш: шовқинни йўқотиш, аниқликни яхшилаш, супер резолюция.
| file file | Уни кучайтириш учун аудио файл |
| denoise boolean | Шубҳасизлаштиришни ишга тушириш (одатдаги: тўғри) |
| enhance_clarity boolean | Товуш аниқлигини ошириш (стандарт: true) |
| super_resolution boolean | Аудио сифатини ошириш (одатдаги: ёлғон) |
| strength integer | 1-3 (ёқимли, ўрта, кучли). Ўртача: 2 |
Буни Аллоҳ таоло Ўзи хоҳлаган кишиларга, яъни, Пайғамбарларга ва иймон келтирган мўминларга фарз қилган.)
| file file | Айрилаш учун аудио файл |
| model string | demucs (стандарт) ёки spleeter |
| stems integer | Тупроқлар сони: 2, 4, 5 ёки 6 (одатдаги: 2) |
| format string | Чоп этиш формати: wav, mp3, flac |
Аудио ёзувлардан қайта чалинишни ва қайта чалинишни олиб ташлаш
| file file | Ишлатиладиган аудио файл |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Клавиша, BPM ва вақт белгиларини аниқлаш учун аудиони таҳлил қилиш.
| file file | Таҳлил қилинадиган аудио файл |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Аудиоларни турли форматларга айлантиринг.
| file file | Ўгириладиган аудио файл |
| format string | Мақсад формати: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Кб/с даги чиқим бит тезлиги: 64, 128, 192, 256, 320 |
| sample_rate integer | Намуна тезлиги: 22050, 44100, 48000 |
| channels string | mono ёки stereo |
Овозли суҳбат
Аудио ёки матн жўнатинг ва синтезланган сўз билан AI жавобини олинг.
Сўров матни (multipart/form-data ёки JSON)
| Параметрлар | Тури | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| audio | file | Йўқ* | Аудио киритиш (ёки audio ёки text талаб этилади) |
| text | string | Йўқ* | Матн киритиш (ёки audio ёки text талаб этилади) |
| voice | string | Йўқ | AI жавоби учун овоз. Ўртача: af_bella |
| tts_model | string | Йўқ | Жавоб учун TTS модели. Ўртача: kokoro |
| system_prompt | string | Йўқ | AI учун мослаштирилган тизим саволи |
| conversation_id | string | Йўқ | Ҳозирги суҳбатни давом эттириш |
Жавоб
{
"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 яратиш учун кўплаб матнларни юбориш. Ҳамма ишлар тугаганида webhook қўнғироқни қабул қилишни танлаш мумкин.
Параметрлар
| Парамeтрлар | Тури | Тасвирлаш |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
Жавоб
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 билан сўровнинг бориши
Гапни ёпиш
Эслатиб ўтиш аудиосидан овозни ёпиштиришни олдиндан ҳисоблаш. Кейинги овозни клонлаш талабларида қайтарилган embed_id'ни тезкор яратиш учун ишлатиш.
Параметрлар
| Парамeтрлар | Тури | Тасвирлаш |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Жавоб
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Соғлиқни текшириш
GPU сервер ҳолати, юкланган моделлар ва навбат ҳажмини текширади. Аутентификация талаб этилмайди. 30 секундга кэшлатилди.
Жавоб
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Модельларни рўйхатга олиш
Барча мавжуд моделлар ва уларнинг имкониятлари рўйхатини қайтаради.
Жавоб
{
"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
}
]
}
Овозлар рўйхати
Барча мавжуд овозлар рўйхатини қайтаради, модел ёки тил бўйича филтрлаш мумкин.
Сўров параметрлари
| Параметрлар | Тури | Тасвирлаш |
|---|---|---|
| model | string | Модель ID бўйича филтрлаш (масалан, kokoro) |
| language | string | Тил коди бўйича филтрлаш (масалан, en) |
| gender | string | жинс бўйича филтрлаш: эркак, аёл, бетараф |
Жавоб
{
"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
}
Субтитрлар (SRT / VTT) янги
ТТС ишлари тугаганида синхрон субтитрлар яратиш. Аудио устидан Whisper alignment'ни бажаради ва SRT ёки WebVTT'ни қайтаради. Натижа дискда кэшқаланади, шунинг учун умид қилинишича, шу uuid учун иккинчи чақириқ диск ўқиш бўлади.
Сўров параметрлари
| Параметрлар | Кўрсатилган | Тасвирлаш |
|---|---|---|
| uuid | Ҳа | /v1/tts/ ёки /v1/voice-clone/ томонидан қайтарилган иш UUID. |
| format | Йўқ | srt (стандарт) ёки vtt. |
| download | Йўқ | 1 Content-Disposition: attachment юбориш учун, шунинг учун браузер кўрсатмасдан сақлаб қўяди. |
| language | Йўқ | Тўлиқлаш моделига ишора (агар қолдирилган бўлса, автоматик аниқлаш). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Тасвирлаш луғати янги
TTS двигателини маълум сўзларни қандай талаффуз қилишни айтинг. Сақланган киритмалар сизнинг ҳар бир TTS талабингизга автоматик равишда қўлланилади. Ҳар бир ҳисоб учун 200 киритма чегараси.
Сўров матни (POST)
| Параметрлар | Тури | Тасвирлаш |
|---|---|---|
| word | string | Ўчириладиган сўз (масалан GIF, Anthropic). Сўз чегараси мос келди. |
| replacement | string | Модель учун қандай ёзилиши (масалан jiff, ann THROP ick). |
| language | string | Иловаий ISO коди. Пуст = барча тилларга тааллуқли. |
| case_sensitive | boolean | false стандарти. true га эга бўлганда катта-кичик ҳарфларни тўғри тақсимлаш. |
# 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-..."
Сиз уларни сақламасдан ҳар бир талаб бўйича ўзгартиришларни ҳам ўтказа оласиз — pronunciations ни ҳар қандай /v1/tts/ чақириқда объект ёки мажмуа сифатида киритишингиз мумкин (TTS охиридаги параметрларни кўринг).
Мақола сўзловчиси янги
Ҳар қандай мақола саҳифасига битта тег қўйинг ва ташриф буюрувчилар саҳифани босганда ўқийдиган доимий ўқитувчи панелини олади. Мақоланинг асосий қисмини автоматик тарзда аниқлайди, бошқа овоз / модел / жой / акцент рангини қўллаб-қувватлайди.
<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>
Параметрлар
| Параметрлар | Тасвирлаш |
|---|---|
data-pk | Чоп қилинадиган қулф (pk-tts-…). Домен чекловлари қулфнинг allowed_domains майдони орқали кучга киради. |
data-voice | Овоз ID. Ўртача af_bella. |
data-model | TTS модели ID. Ўрналиши kokoro. |
data-extract | auto (стандарт) — article/main/.post-content/.entry-content танлашларини синаш, энг зич абзац гуруҳига қайтиш. Ёки муайян элементга қаратилган ҳар қандай CSS танлашини ўтказиш. |
data-position | bottom (стандарт) ёки top. |
data-color | Акцент ранги (ҳар қандай CSS ранги). Ўртача #e60000. |
data-min-chars / data-max-chars | Агар мақола камида 200 та белгидан кам бўлса, сатрни ўтказиб юборинг. Энг кўп 50 000 та белгида ёпиш. |
Қўшиш тугмаси
Сатр ичида тугма услубидаги ёпиш. тегига ёнида кўрсатилади ва тугма билан ишга туширилган қисқа парчани тинглайди. Юқоридаги Мақола сўзловчисидан фарқ қилади (у автоматик равишда саҳифа бўйлаб барни киритади ва бутун мақолани сўзлайди).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Сақланган овозлар (давомли клонлар)
Сўроқ аудиосини бир марта юклаб олиш, доимий voice_id'ни олиш, сўнгра ҳар бир қўнғироқда аудиони қайта юклаш ўрнига TTS талабларида шу id'га мурожаат қилиш. Бу юқори ҳажмли интеграциялар учун идеал.
Овоз юклаш
POST
https://tts.ai/api/v1/user-voices/
Аутентификация талаб этилади
Кўп қисмли шакл. Доиралар: файл (талаб қилинади, 5-30с аудио), ном (талаб қилинади), тил (ихтиёрий, стандарт en), модел (ихтиёрий — zh/ja/ko учун cosyvoice2 ёки openvoice учун автоматик танланади), consent_confirmed (талаб қилинади, ҳар қандай ҳақиқий қиймат).
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"
}
TTS'да сақланган овоздан фойдаланиш
/api/v1/tts/га POST (ЭСЛАТМА: веб VPS хост, api.tts.ai эмас) билан user_voice_id. Биз сақланган аудиони юклаймиз ва трафикни клонлаш қувурига йўллаймиз.
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.
Рўйхат / Олиб ташлаш
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
Архивлаш / қайта фаоллаштириш (эркин)
Архивланган овозлар ҳисобингизда қолади, аммо TTSда ишлатилмайди. Бу ўтирган охирги фойдаланувчилар учун фойдали, шунинг учун рўйхатингиз тоза қолади.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Код мисоллари
Матндан сўзга
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
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"])
Товушни клонлаш
# 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)
Матндан сўзга
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
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);
Матндан сўзга
# 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
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"
Товушни клонлаш
# 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 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
Хато кодлари
Барча хатолар JSON жавобини қайтаради error майдон.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP ҳолати | Хато коди | Тасвирлаш |
|---|---|---|
| 400 | bad_request |
Ҳужжат талаби параметрлари нодуруст. Маълумотлар учун хато хабарини текширинг. |
| 401 | unauthorized |
API калит йўқ ёки нодуруст. |
| 402 | insufficient_credits |
Етарлича белгилар йўқ. /pricing/ да кўпроқ сотиб олинг. |
| 403 | forbidden |
Сизда бу ресурсга кириш ҳуқуқи йўқ (масалан, бошқа фойдаланувчининг ишини сўровга қўйиш). APIга кириш ҳар бир режага киритилган. |
| 404 | not_found |
Модель ёки овоз топилмади. |
| 413 | file_too_large |
Юкланган файл ҳажми чекланган. |
| 429 | rate_limited |
Жуда кўп талаблар. Суръат чегараси бошлиқларини текширинг. |
| 500 | internal_error |
Сервер хатоси. Кейинроқ яна урининг. |
| 503 | model_loading |
Модель юкланмоқда. Бир неча сониядан кейин яна урининг. |
Веб-ҳуклар
Узоқ давом этувчи вазифалар учун (стем ажратиш, партия TTS), webhook_url параметрини кўрсата оласиз. Иш тугаганида, биз натижани сизнинг URL'ингизга POST қиламиз.
{
"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"
}
Қуришга тайёрмисиз?
API калитингизни олинг ва TTS.ai'ни дастурларингизга интеграция қилишни бошланг.