Ҳужжатлаштириш
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 талаблари учун қуйидагилар орқали Bearer token орқали аутентификация талаб этилади: 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 (Озод моделлар: Piper, VITS, MeloTTS) | 1 кредит | Ҳар 1000 белги учун |
| TTS (стандарт моделлар: Kokoro, CosyVoice 2, ва ҳоказо) | 2 кредит | Ҳар 1000 белги учун |
| TTS (Premium моделлар: Tortoise, Chatterbox, ва ҳоказо) | 4 кредит | Ҳар 1000 белги учун |
| Сўздан матнга | 2 кредит | Ҳар дақиқада аудио |
| Товушни клонлаш | 4 кредит | Ҳар 1000 белги учун |
| Овоз алмаштиргич | 3 кредит | Ҳар дақиқада аудио |
| Аудио кучайтириш | 2 кредит | Ҳар дақиқада аудио |
| Вокални олиб ташлаш / Вокални ажратиш | 3-4 кредит | Ҳар дақиқада аудио |
| Товуш таржимаси | 5 кредит | Ҳар дақиқада аудио |
| Овозли суҳбат | 3 кредит | ҳар бир айланишда |
| Калит ва BPM қидиргичи | Озод | -- |
| Аудио кўчиргич | Озод | -- |
Матндан сўзга
Матнни сўзлаш аудиосига айлантиради. Audio файлни талаб қилинган форматда қайтаради.
Сўров матни
| Параметрлар | Типи | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| model | string | Ҳа | Модель ID (масалан, kokoro, chatterbox, piper) |
| text | string | Ҳа | Товушга айлантириладиган матн (Pro учун максимум 5000 белги, Enterprise учун 50000 белги) |
| voice | string | Ҳа | Товуш ID (имкони бор овозларни рўйхатга олиш учун /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). Максимум 100MB. |
| 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 сония тавсия этилади). Max 20MB. |
| text | string | Ҳа | Клонланган овозда айтиладиган матн. |
| model | string | Йўқ | Клон модели: chatterbox (стандарт), cosyvoice2, gpt-sovits |
| format | string | Йўқ | Чоп этиш формати: mp3 (стандарт), wav, flac |
| language | string | Йўқ | Мақсадли тил коди. Танланган модел томонидан қўллаб-қувватланиши керак. |
Жавоб
Аудио файлни иккилик маълумотлар сифатида қайтаради, TTS охирги нуқтаси билан бир хил.
Овоз алмаштиргич
Аудиони бошқа овозга айлантиринг. Манба аудиосини юклаб олинг ва мақсад овозини танланг.
Сўров матни (multipart/form-data)
| Параметрлар | Типи | Кўрсатилган | Тасвирлаш |
|---|---|---|---|
| file | file | Ҳа | Манба аудио файли (MP3, WAV, FLAC). Max 50MB. |
| target_voice | string | Ҳа | Ўгириладиган мақсад овоз ID (имкони бор овозларни рўйхатга олиш учун /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 | Ҳа | Манба аудио файли оригинал тилда. Max 100MB. |
| 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 | Ҳа | Манба сўзлашув аудио файли. Max 50MB. |
| voice | string | Ҳа | Очиқ сўзлашув учун мақсадли овоз ID |
| model | string | Йўқ | Модель: openvoice (стандарт), chatterbox |
| emotion | string | Йўқ | Мақсад ҳиссиёт: neutral, happy, sad, angry, excited |
| speed | float | Йўқ | Тезликни созлаш. Дефолт: 1.0. Диапазон: 0.5 дан 2.0 гача |
Жавоб
Трансформация қилинган аудио файлни иккилик маълумотлар сифатида қайтаради.
Аудио асбоблари
Уни яхшилаш, овозни олиб ташлаш, устунларни ажратиш ва бошқалар учун аудиони ишлаш охирги нуқталари.
Аудио сифатини яхшилаш: шовқинни йўқотиш, аниқликни яхшилаш, супер резолюция.
| file file | Уни кучайтириш учун аудио файл |
| denoise boolean | Шубҳасизлаштиришни ишга тушириш (одатдаги: тўғри) |
| enhance_clarity boolean | Товуш аниқлигини ошириш (стандарт: true) |
| super_resolution boolean | Аудио сифатини ошириш (стандарт: ёлғон) |
| 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 | Чоп қилиш бит тезлиги kbps да: 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 | жинс бўйича филтрлаш: эркак, аёл, бетараф |
Жавоб
{
"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'ингизга POST қиламиз.
{
"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'ни дастурларингизга интеграция қилишни бошланг.