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

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

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

Маълумотлар

The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.

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 калитингизни махфий сақланг. Уни клиент кодида, жамоат сақловхоналарида ёки журналларда ўртоқлашманг. Ҳисоб параметрларингиздан калитларни мунтазам айлантириб туринг.

Асосий URL

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

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

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

Рақамлар чегаралари

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

Схема Талаблар/мин Concurrent Максимал матн узунлиги
Про 60 5 5000 белги
Корхона 300 20 50,000 белги

Ҳар бир жавобга тезлик чегараси сарлавҳалари киритилади: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредит харажатлари

Хизмат Нархи Бирлик
TTS (Озод моделлар: Piper, VITS, MeloTTS) 1 кредит Ҳар 1000 белги учун
TTS (стандарт моделлар: Kokoro, CosyVoice 2, ва ҳоказо) 2 кредит Ҳар 1000 белги учун
TTS (Premium моделлар: Tortoise, Chatterbox, ва ҳоказо) 4 кредит Ҳар 1000 белги учун
Сўздан матнга 2 кредит Ҳар дақиқада аудио
Товушни клонлаш 4 кредит Ҳар 1000 белги учун
Овоз алмаштиргич 3 кредит Ҳар дақиқада аудио
Аудио кучайтириш 2 кредит Ҳар дақиқада аудио
Вокални олиб ташлаш / Вокални ажратиш 3-4 кредит Ҳар дақиқада аудио
Товуш таржимаси 5 кредит Ҳар дақиқада аудио
Овозли суҳбат 3 кредит ҳар бир айланишда
Калит ва BPM қидиргичи Озод --
Аудио кўчиргич Озод --

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

POST /v1/tts/

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

Сўров матни

ПараметрларТипиКўрсатилганТасвирлаш
model string Ҳа Модель ID (масалан, kokoro, chatterbox, piper)
text string Ҳа Товушга айлантириладиган матн (Pro учун максимум 5000 белги, Enterprise учун 50000 белги)
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

Жавоб

Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).

Жавоб сарлавҳалари
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 Ҳа Манба аудио файли оригинал тилда. Max 100MB.
target_language string Ҳа Мақсадли тил коди (масалан, es, fr, de, ja)
voice string Йўқ Таржима учун овоз. Агар қолдирилган бўлса, автоматик равишда танланади.
preserve_voice boolean Йўқ Аввалги сўзловчини сақлаб қолишга уриниш

Жавоб

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Чоп қилиш бит тезлиги kbps да: 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
}

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

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 credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP ҳолатиError CodeТасвирлаш
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'ни дастурларингизга интеграция қилишни бошланг.