Документация

TTS.aiди REST API аркылуу колдонмолоруңузга интеграциялаңыз. OpenAI-ге шайкеш форматы оңой миграцияны камсыз кылат.

REST API OpenAI шайкештиги JSON жооптору Стримдин колдоосу

Кыскача баяндама

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

API ачкычы

API ачкычын бул жерден алуу Каттоо эсебинин параметрлери. Pro жана Enterprise пландарында жеткиликтүү.

Негизги URL

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

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

Носитель токена через Authorization баштык

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

Бардык API суроолору аутентификацияны талап кылат Authorization баштык.

HTTP баштыгы
Authorization: Bearer sk-tts-your-api-key-here
API ачкычыңызды жашыруун сактаңыз. Клиенттин кодунда, коомдук репозиторияларда же журналдарда аны бөлүшпөңүз. Ачкычтарды учеттук жазууңуздун параметрлери аркылуу регулярно меняйте.

SDKs

Официалдык SDKs 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 (Free models: Piper, VITS, MeloTTS) 1000 символ 1000 символ үчүн
TTS (Стандарттык моделдер: Kokoro, CosyVoice 2, ж.б.) 2000 символ 1000 символ үчүн
TTS (Premium моделдери: Tortoise, Chatterbox ж.б.) 4000 символ 1000 символ үчүн
Сөздөн текстке 2000 символ аудио мүнөтүнө
Сөздү клондоо 4000 символ 1000 символ үчүн
Сөз алмаштыргыч 3000 символ аудио мүнөтүнө
Аудио жакшыртуу 2000 символ аудио мүнөтүнө
Вокалдарды алып салуу / Сөздү бөлүү 3,000-4,000 символ аудио мүнөтүнө
Сөз которуу 5000 символ аудио мүнөтүнө
Сүрөт чаты 3000 символ бир кадам
Клавиша издөөчү Акысыз --
Аудио конвертер Акысыз --

Тексттен сүйлөөгө

POST /v1/tts/

Текстти сүйлөмгө айлантуу. Аудиофайлды талап кылынган форматта кайтарат.

Талаптын денеси

ПараметрлерТипиЗарылСүрөттөмөсү
model string Ооба ID модели (например, kokoro, chatterbox, piper)
text string Ооба Текстти сүйлөмгө айландыруу (максимум 100 000 символ бир сурам үчүн)
voice string Ооба Дауыс идентификаторы (/v1/voices/ колдонуп, мүмкүн болгон добуштарды көрсөтүңүз)
format string Жок Чыгуу форматы: mp3 (стандарт), wav, flac, ogg
speed float Жок Сөздүн тездик мультипликатору. Баштапкы: 1.0. Диапазон: 0.52.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). Макс. 100 Мб.
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 секунд рекомендуется). Максимум 20 Мб.
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). Макс. 50 Мб.
target_voice string Ооба Конвертируемый голосовой идентификатор (используйте /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 Ооба Аудиофайлдын оригиналдуу тили. Макс. 100 Мб.
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 Ооба Баштапкы үн аудио файлы. Макс. 50 Мб.
voice string Ооба Сөз чыгаруу үчүн тил идентификатору
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Шумдукту азайтуу активдештирилсин (адаттагы: true)
enhance_clarity booleanСөздөрдүн тактыгын жогорулатуу (адаттагы: true)
super_resolution booleanАудио сапатын жогорулатуу (адаттагы: false)
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Диапазон:
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
}

TTS пакети

POST /v1/tts/batch/

Бир нече текстти параллельдүү TTS генерациясы үчүн жөнөтүү. Бардык тапшырмалар бүткөндөн кийин webhook колл-бэкти алууну тандаңыз.

Параметрлер

ПараметрлерТипиСүрөт
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 кийинки үн клондоо запросунда тез генерациялоо үчүн колдонулат.

Параметрлер

ПараметрлерТипиСүрөт
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 Жынысы боюнча фильтр: male, female, neutral

Жауап

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.

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"
}
Веб-хауктун жыйынтыгы бүткөндөн кийин 24 саатка чейин жүктөөгө болот. Аларды тез жүктөп алууга аракет кылыңыз.

Жаңылоого даярсызбы?

API ачкычын алып, TTS.aiди колдонмолоруңузга интеграциялоону баштаңыз.