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

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 баштык

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

Акысыз деңгээл — ключ керек эмес. Анонимдүү POSTs үчүн /v1/tts/ эч кандай авторизациясыз иштөө, бир IPге 5000 символго чейин/күн, биздин акысыз моделдердин бирин колдонуп (piper, vits, melotts, kokoro). 15 000 бонустук символду жана премиум моделдерге кирүү үчүн акысыз эсепке катталыңыз.

Premium моделдери жана жогорку ылдамдыктагы чектөөлөр үчүн, аутентификацияны Bearer токен менен жүргүзүү керек 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 1,000,000 символ
Про 60 5 1,000,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). Если не указано, то мы автоматически выбираем модель, поддерживающую запрашиваемый languagekokoro для en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper для других поддерживаемых языков (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Ооба Сөзгө айландырылуучу текст. Бир сурам үчүн чектөө: 500 символ (анонимдүү), 5000 (эркин эсеп), 1 000 000 (акча төлөнүүчү). Узак киргизүүлөр сервер тарабынан автоматтык түрдө бөлүнөт.
voice string Ооба Дауыс идентификаторы (/v1/voices/ колдонуп, мүмкүн болгон добуштарды көрсөтүңүз)
format string Жок Чыгуу форматы: mp3 (стандарт), wav, flac, ogg
speed float Жок Сөздүн тездик мультипликатору. Баштапкы: 1.0. Диапазон: 0.52.0
language string Жок Тил коду (мисалы, en, es). Эгер киргизилбесе, автоматтык түрдө аныкталат.
instructions string Жок Активдүү / жеткирүү сигналдары (≤500 символ). Мисалы <код>\
pronunciations object | array Жок Сөздүн айтылышы талапка жараша өзгөртүлөт. {\
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

SSML тегдери

_Тилекке каршыКатаМындайча сүйлөнөт
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-3131-декабрь, 1999-жыл
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."
}

Жауап

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Толук мисал

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

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

Сөздөн текстке

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_urlstringБатарея бүткөндө POST натыйжалары үчүн тандалма URL.

Жауап

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
}

Субтитрлер (SRT / VTT) жаңы

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

Транслирование завершенных заданий TTS с синхронизированными субтитрами. Проводится Whisper-alignment аудиосигнала и возвращается SRT или WebVTT. Результат хранится на диске, поэтому второй вызов для того же uuid будет дисковым чтением.

Запрос параметрлери

ПараметрлерЗарылСүрөттөмөсү
uuidОобаЗадание UUID, возвращенное /v1/tts/ или /v1/voice-clone/.
formatЖокsrt (стандарт) же vtt.
downloadЖок1 Content-Disposition: attachment жөнөтүүгө, ошондо браузер көрсөтпөй эле сактайт.
languageЖокТүздөө моделине ишора (эгер көрсөтүлбөсө, анда автоматтык түрдө аныкталат).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Сөздүк жаңы

GET POST DELETE /api/v1/pronunciations/

ТТС-двигателю как произносить определенные слова. Сохраненные записи автоматически применяются к каждому запросу TTS. Максимальный лимит на вход в одном учетном записи - 200.

Талаптын денеси (POST)

ПараметрлерТипиСүрөттөмөсү
wordstringТекст, который следует перезаписать (например, GIF, Anthropic). Соответствие слов.
replacementstringМодель үчүн анын орфографиясы (мисалы jiff, ann THROP ick).
languagestringISO коду тандалуучу. Бос = бардык тилдер үчүн.
case_sensitivebooleanСтандарт false. true болсо, каттар туура жазылат.
cURL
# 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-..."

Сиз ошондой эле ар бир суроо үчүн өзгөртүүлөрдү сактабай өткөрүп бере аласыз — каалаган /v1/tts/ чакыруусуна pronunciations объект же масив катары кошуңуз (TTS endpoint параметрлерин караңыз).

Макаланын баяндамасы жаңы

Бир гана