Документация
TTS.aiди REST API аркылуу колдонмолоруңузга интеграциялаңыз. OpenAI-ге шайкеш форматы оңой миграцияны камсыз кылат.
Кыскача баяндама
TTS.ai API бардык платформалык мүмкүнчүлүктөргө программалык түрдө кирүү мүмкүнчүлүгүн берет: тексттен сүйлөмгө синтездөө, сүйлөмдөн текстке транскрипциялоо, үн клондоо, аудиону жакшыртуу жана башкалар. API стандарттык REST конвенцияларын JSON суроо/жауап денелери менен колдонот.
API ачкычы
API ачкычын бул жерден алуу Каттоо эсебинин параметрлери. Pro жана Enterprise пландарында жеткиликтүү.
Негизги URL
https://api.tts.ai/v1/
Аутентификация
Носитель токена через Authorization баштык
Аутентификация
Бардык API суроолору аутентификацияны талап кылат Authorization баштык.
Authorization: Bearer sk-tts-your-api-key-here
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")
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');
Негизги URL
Бардык аяктоо пункттары бул негиздик URLге карата. Мисалы, 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 символ | бир кадам |
| Клавиша издөөчү | Акысыз | -- |
| Аудио конвертер | Акысыз | -- |
Тексттен сүйлөөгө
Текстти сүйлөмгө айлантуу. Аудиофайлды талап кылынган форматта кайтарат.
Талаптын денеси
| Параметрлер | Типи | Зарыл | Сүрөттөмөсү |
|---|---|---|---|
| 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.5 — 2.0 |
| language | string | Жок | Тил коду (мисалы, en, es). Эгер киргизилбесе, автоматтык түрдө аныкталат. |
| stream | boolean | Жок | Стримдин жоопторун активдештирүү. Ачкычтуу: false |
Мисал суроо
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
Сөздөн текстке
Аудиону текстке которуу. Автоматтык аныктоо менен 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 |
Жауап
{
"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"
}
]
}
Сөздү клондоо
Клондолгон үн менен сүйлөмдү түзүү. Справочный аудиофайл жана текст жүктөп алуу.
Талаптын денеси (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 аяктоо пункту менен бирдей экилик маалыматтар катары кайтарат.
Сөз алмаштыргыч
Аудиону башка үнгө айландыруу. Баштапкы аудиону жүктөп, максаттуу үндү тандаңыз.
Талаптын денеси (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 -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
Жауап
Аудиофайлды бинардык маалымат катары кайтарат.
Сөз которуу
Бир тилден экинчи тилге сүйлөмдү которуу. Бир эле чалууда сүйлөмдү текстке, текстти сүйлөмгө жана текстти сүйлөмгө которуу функцияларын бириктирет.
Талаптын денеси (multipart/form-data)
| Параметрлер | Типи | Зарыл | Сүрөттөмөсү |
|---|---|---|---|
| file | file | Ооба | Аудиофайлдын оригиналдуу тили. Макс. 100 Мб. |
| target_language | string | Ооба | Тилдин коду (мисалы, es, fr, de, ja) |
| voice | string | Жок | Таржима үчүн үн. Эгерде чыкпай калса, автоматтык түрдө тандалат. |
| preserve_voice | boolean | Жок | Оригиналдык сүйлөгөн адамдын үнүнүн мүнөздөмөлөрүн сактоого аракет кылуу. Ачкычтуу: false |
Жауап
{
"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
}
Сөздөн-сөзгө
Сөздүн стилин, эмоциясын же мазмунун сактап калуу менен сүйлөмдү өзгөртүү. Тонду, темпти жана сүйлөмдүн интонациясын өзгөртүү үчүн пайдалуу.
Талаптын денеси (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ге чейин |
Жауап
Аудиофайлды бинардык маалымат катары кайтарат.
Аудио аспаптары
Аудио иштетүүнү аяктоо пункттары: жакшыртуу, вокалды алып салуу, стемди бөлүү ж.б.
Аудио сапатын жакшыртуу: ызы-чууну жокко чыгаруу, ачыктыкты жакшыртуу, жогорку резолюция.
| file file | Жаңылоо үчүн аудио файл |
| denoise boolean | Шумдукту азайтуу активдештирилсин (адаттагы: true) |
| enhance_clarity boolean | Сөздөрдүн тактыгын жогорулатуу (адаттагы: true) |
| super_resolution boolean | Аудио сапатын жогорулатуу (адаттагы: false) |
| strength integer | 1-3 (ачык, орточо, катуу). Ачкычтуу: 2 |
Вокалдыктарды инструменталдыктардан бөлүү (вокалдыктарды алып салуу) же бөлүктөрүнө бөлүү.
| file file | Айырмалоо үчүн аудио файл |
| model string | demucs (стандарттуу) же spleeter |
| stems integer | Стержналардын саны: 2, 4, 5 же 6 (адаттагы: 2) |
| format string | Чыгуу форматы: wav, mp3, flac |
Эхо жана реверберацияны аудиозаписиден алып салуу
| file file | Аппаратураны иштетүү үчүн аудио файл |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Клавиша, 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"]
}
Аудио форматтарын алмаштыруу.
| file file | Аудио файлды которуу |
| format string | Тармак форматы: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Чыгаруу ылдамдыгы, кбит/с: 64, 128, 192, 256, 320 |
| sample_rate integer | Диапазон: |
| channels string | mono же stereo |
Сүрөт чаты
Аудио же текстти жөнөтүү жана синтетикалык сүйлөм менен 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 | Жок | Бар болгон баарлашууну улантуу |
Жауап
{
"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 пакети
Бир нече текстти параллельдүү TTS генерациясы үчүн жөнөтүү. Бардык тапшырмалар бүткөндөн кийин webhook колл-бэкти алууну тандаңыз.
Параметрлер
| Параметрлер | Типи | Сүрөт |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
Жауап
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 менен сурамжылоо жүрүшү
Сөздү киргизүү
Справочная аудиодан үн куюунун алдын ала эсептөөсү. Кайра кайтарылган embed_id кийинки үн клондоо запросунда тез генерациялоо үчүн колдонулат.
Параметрлер
| Параметрлер | Типи | Сүрөт |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Жауап
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Саламаттыкты текшерүү
GPU серверинин абалы, жүктөлгөн моделдер жана кезектин өлчөмүн текшерүү. Аутентификация талап кылынбайт. Кэш 30 секундга сакталат.
Жауап
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Список моделей
Бардык жеткиликтүү моделдердин жана алардын мүмкүнчүлүктөрүнүн тизмесин кайтарат.
Жауап
{
"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
}
]
}
Список голосов
Бардык жеткиликтүү үндөрдүн тизмесин кайтарат, модель же тил боюнча фильтрлөөгө болот.
Запрос параметрлери
| Параметрлер | Типи | Сүрөттөмөсү |
|---|---|---|
| model | string | Модель ID боюнча фильтрлөө (мисалы, kokoro) |
| language | string | Тил коду боюнча фильтрлөө (мисалы, en) |
| gender | string | Жынысы боюнча фильтр: male, female, neutral |
Жауап
{
"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
}
Код мисалдары
Тексттен сүйлөөгө
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')}")
Сөздөн текстке
# 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"])
Сөздү клондоо
# 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)
Тексттен сүйлөөгө
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();
Сөздөн текстке
// 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);
Тексттен сүйлөөгө
# 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
Сөздөн текстке
# 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"
Сөздү клондоо
# 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
Аудио жакшыртуу
# 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.
{
"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"
}
Жаңылоого даярсызбы?
API ачкычын алып, TTS.aiди колдонмолоруңузга интеграциялоону баштаңыз.