Документация
TTS.ai программасын биздин REST API менен колдонмолоруңузга интеграциялаңыз. OpenAI менен шайкеш формат жеңил миграция үчүн.
Кыскача баяндама
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 баштык.
Authorization: Bearer sk-tts-your-api-key-here
Негизги URL
Бардык аяктоо пункттары бул негизги URLге карата. Мисалы, 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 кредит | ар бир кадам |
| Клавиша издөөчү | Акысыз | -- |
| Аудио конвертер | Акысыз | -- |
Тексттен сүйлөөгө
Текстти сүйлөмгө айлантуу. Аудиофайлды талап кылынган форматта кайтарат.
Талаптын денеси
| Параметрлер | Түрү | Зарыл | Сүрөттөмөсү |
|---|---|---|---|
| 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.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
Жауап
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
Сөздөн текстке
Аудиону текстке которуу. Автоматтык аныктоо менен 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 | Жок | Оригиналдык сүйлөткүчтү сактап калууга аракет кылуу |
Жауап
{
"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 | Дисплей ылдамдыгы: 22050, 44100, 48000 |
| 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
}
Список моделей
Бардык жеткиликтүү моделдердин жана алардын мүмкүнчүлүктөрүнүн тизмесин кайтарат.
Жауап
{
"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 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.
{
"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 программасын колдонмолоруңузга интеграциялоону баштаңыз.