Ҳужжатлаштириш

TTS.ai'ни ўз дастурларингизга бизнинг REST API'миз билан интеграция қилинг. Осон кўчиш учун OpenAI-га мос формат.

REST API OpenAI мос келувчи JSON жавоблари Трансляцияни қўллаб-қувватлаш

Таъриф

TTS.ai API барча платформа хусусиятларига дастурий киришни таъминлайди: матн-нутқ синтези, сўз-матн транскрипцияси, овоз клонлаши, аудиони яхшилаш ва бошқалар. API JSON талаб/жавоб қисмлари билан стандарт REST конвенцияларини қўллайди.

API калити

Сизнинг API калитингизни олиш Ҳисоб параметрлари. Pro ва Enterprise режаларида мавжуд.

Асосий URL

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

Аутентификация

Берувчи токен йўли билан Authorization бошлиқ

Аутентификация

Барча API талаблари учун қуйидагилар орқали Bearer token орқали аутентификация талаб этилади: Authorization бошлиқ.

HTTP боши
Authorization: Bearer sk-tts-your-api-key-here
API калитингизни махфий сақланг. Уни клиент кодида, жамоат сақловхоналарида ёки журналларда ўртоқлашманг. Ҳисоб параметрларингиздан калитларни мунтазам айлантириб туринг.

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")
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

Асосий URL

Асосий URL: https://api.tts.ai/v1/

Барча якуний нуқталар ушбу асосий URL'га нисбатандир. Мисол учун, TTS якуний нуқтаси:

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

Сифат чегаралари

API тезлиги чекловлари режага қараб ўзгаради:

Бўлим Талаблар/мин Бир вақтда Максимал матн узунлиги
Оқ 10 2 500 белги
Бошловчи 30 3 100,000 белги
Про 60 5 100,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 қидиргичи Оқ --
Аудио кўчиргич Оқ --

Матндан сўзга

POST /v1/tts/

Матнни сўзлаш аудиосига айлантиради. Audio файлни талаб қилинган форматда қайтаради.

Сўров матни

ПараметрларТуриКўрсатилганТасвирлаш
model string Ҳа Модель ID (масалан, kokoro, chatterbox, piper)
text string Ҳа Матнни сўзга айлантириш (ҳар бир талаб учун максимум 100,000 белги)
voice string Ҳа Товуш ID (имкони бор овозларни рўйхатга олиш учун /v1/voices/ ни ишлатинг)
format string Йўқ Чоп этиш формати: mp3 (одатдаги), wav, flac, ogg
speed float Йўқ Гапириш тезлиги кўпайтиргичи. Ўртача: 1.0. Диапазон: 0.5 дан 2.0 гача
language string Йўқ Тил коди (масалан, en, es). Агар қолдирилган бўлса, автоматик равишда аниқланади.
stream boolean Йўқ Стрим жавобини ишга тушириш. Ўртача: false

Мисол сўраш

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

Жавоб

Аудио файлни мос Content-Type сарлавҳаси билан иккилик маълумотлар сифатида қайтаради (audio/mpeg, audio/wav, ва ҳоказо).

Жавоб сарлавҳалари
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Сўздан матнга

POST /v1/stt/

Аудиони матнга кўчириш. 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

Жавоб

JSON жавоби
{
  "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"
    }
  ]
}

Товушни клонлаш

POST /v1/tts/clone/

Клонланган овозда сўзлашув яратиш. Эслатма аудио ва матнни юклаш.

Сўров матни (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 охиридаги маълумотлар билан бир хил иккилик маълумотлар сифатида қайтаради.

Овоз алмаштиргич

POST /v1/voice-convert/

Аудиони бошқа овозга айлантиринг. Манба аудиосини юклаб олинг ва мақсад овозини танланг.

Сўров матни (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
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

Жавоб

Ўгирилган аудио файлни иккилик маълумотлар сифатида қайтаради.

Товуш таржимаси

POST /v1/speech-translate/

Бир тилдан бошқа тилга сўзланган аудиони таржима қилиш. Бир марталик қўнғироқда сўздан матнга, таржимадан матнга ва матндан сўзга таржима қилишни бирлаштиради.

Сўров матни (multipart/form-data)

ПараметрларТуриКўрсатилганТасвирлаш
file file Ҳа Манба аудио файли асл тилда. Максимум 100MB.
target_language string Ҳа Мақсадли тил коди (масалан, es, fr, de, ja)
voice string Йўқ Таржима учун овоз. Агар қолдирилган бўлса, автоматик равишда танланади.
preserve_voice boolean Йўқ Овозли сўзловчининг асл овоз хусусиятларини сақлашга уриниш. Ўрнинбосар: false

Жавоб

JSON жавоби
{
  "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
}

Сўздан сўзга

POST /v1/speech-to-speech/

Мазмунни сақлаган ҳолда сўзлаш услубини, ҳис-туйғуларни ёки тақдимотни ўзгартиринг. Тонни, тезликни ва ифодачанликни тўғрилаш учун фойдали.

Сўров матни (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 гача

Жавоб

Трансформация қилинган аудио файлни иккилик маълумотлар сифатида қайтаради.

Аудио асбоблари

Уни яхшилаш, овозни олиб ташлаш, устунларни ажратиш ва бошқалар учун аудиони ишлаш охирги нуқталари.

POST /v1/audio/enhance/

Аудио сифатини яхшилаш: шовқинни йўқотиш, аниқликни яхшилаш, супер резолюция.

file fileУни кучайтириш учун аудио файл
denoise booleanШубҳасизлаштиришни ишга тушириш (одатдаги: тўғри)
enhance_clarity booleanТовуш аниқлигини ошириш (стандарт: true)
super_resolution booleanАудио сифатини ошириш (одатдаги: ёлғон)
strength integer1-3 (ёқимли, ўрта, кучли). Ўртача: 2
POST /v1/audio/separate/

Буни Аллоҳ таоло Ўзи хоҳлаган кишиларга, яъни, Пайғамбарларга ва иймон келтирган мўминларга фарз қилган.)

file fileАйрилаш учун аудио файл
model stringdemucs (стандарт) ёки spleeter
stems integerТупроқлар сони: 2, 4, 5 ёки 6 (одатдаги: 2)
format stringЧоп этиш формати: wav, mp3, flac
POST /v1/audio/dereverb/

Аудио ёзувлардан қайта чалинишни ва қайта чалинишни олиб ташлаш

file fileИшлатиладиган аудио файл
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Озод

Клавиша, 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"]
}
POST /v1/audio/convert/ Озод

Аудиоларни турли форматларга айлантиринг.

file fileЎгириладиган аудио файл
format stringМақсад формати: mp3, wav, flac, ogg, m4a, aac
bitrate integerКб/с даги чиқим бит тезлиги: 64, 128, 192, 256, 320
sample_rate integerНамуна тезлиги: 22050, 44100, 48000
channels stringmono ёки stereo

Овозли суҳбат

POST /v1/voice-chat/

Аудио ёки матн жўнатинг ва синтезланган сўз билан 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 Йўқ Ҳозирги суҳбатни давом эттириш

Жавоб

JSON жавоби
{
  "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
}

ТТС-бачма

POST /v1/tts/batch/

Параллел TTS яратиш учун кўплаб матнларни юбориш. Ҳамма ишлар тугаганида webhook қўнғироқни қабул қилишни танлаш мумкин.

Параметрлар

ПарамeтрларТуриТасвирлаш
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Жавоб

JSON жавоби
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

GET /v1/tts/batch/result/?batch_id=abc123 билан сўровнинг бориши

Гапни ёпиш

POST /v1/voice-embed/

Эслатиб ўтиш аудиосидан овозни ёпиштиришни олдиндан ҳисоблаш. Кейинги овозни клонлаш талабларида қайтарилган embed_id'ни тезкор яратиш учун ишлатиш.

Параметрлар

ПарамeтрларТуриТасвирлаш
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Жавоб

JSON жавоби
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Соғлиқни текшириш

GET /v1/health/

GPU сервер ҳолати, юкланган моделлар ва навбат ҳажмини текширади. Аутентификация талаб этилмайди. 30 секундга кэшлатилди.

Жавоб

JSON жавоби
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Модельларни рўйхатга олиш

GET /v1/models/

Барча мавжуд моделлар ва уларнинг имкониятлари рўйхатини қайтаради.

Жавоб

JSON жавоби
{
  "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
    }
  ]
}

Овозлар рўйхати

GET /v1/voices/

Барча мавжуд овозлар рўйхатини қайтаради, модел ёки тил бўйича филтрлаш мумкин.

Сўров параметрлари

ПараметрларТуриТасвирлаш
model string Модель ID бўйича филтрлаш (масалан, kokoro)
language string Тил коди бўйича филтрлаш (масалан, en)
gender string жинс бўйича филтрлаш: эркак, аёл, бетараф

Жавоб

JSON жавоби
{
  "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
}

Код мисоллари

Матндан сўзга

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')}")

Сўздан матнга

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"])

Товушни клонлаш

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)

Матндан сўзга

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();

Сўздан матнга

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);

Матндан сўзга

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

Сўздан матнга

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"

Товушни клонлаш

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

Аудио кучайтириш

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

Хато кодлари

Барча хатолар 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 қиламиз.

Webhook юки
{
  "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 натижалари тугаганидан кейин 24 соат давомида юклаб олиш учун мавжуд. Уларни тезда юклаб олишга ишонч ҳосил қилинг.

Қуришга тайёрмисиз?

API калитингизни олинг ва TTS.ai'ни дастурларингизга интеграция қилишни бошланг.