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

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 суроолору аутентификацияны талап кылат 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 (Free models: Piper, VITS, MeloTTS) 1 кредит 1000 символ үчүн
TTS (Стандарттык моделдер: Kokoro, CosyVoice 2, ж.б.) 2 кредит 1000 символ үчүн
TTS (Premium моделдери: Tortoise, Chatterbox ж.б.) 4 кредит 1000 символ үчүн
Сөздөн текстке 2 кредит аудио мүнөтүнө
Сөздү клондоо 4 кредит 1000 символ үчүн
Сөз алмаштыргыч 3 кредит аудио мүнөтүнө
Аудио жакшыртуу 2 кредит аудио мүнөтүнө
Vocal Removal / Voice Splitting 3-4 кредит аудио мүнөтүнө
Сөз которуу 5 кредит аудио мүнөтүнө
Сүрөт чаты 3 кредит ар бир кадам
Клавиша издөөчү Акысыз --
Аудио конвертер Акысыз --

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

POST /v1/tts/

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

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

ПараметрлерТүрүЗарылСүрөттөмөсү
model string Ооба ID модели (например, kokoro, chatterbox, piper)
text string Ооба Сөзгө которулуучу текст (Pro үчүн 5000 символго чейин, Enterprise үчүн 50000 символго чейин)
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

Жауап

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). Макс. 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 Жок Оригиналдык сүйлөткүчтү сактап калууга аракет кылуу

Жауап

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Дисплей ылдамдыгы: 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 Жынысы боюнча фильтр: 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 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.

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 программасын колдонмолоруңузга интеграциялоону баштаңыз.