API құжаттамасы
TTS.ai-ды қолданбаларыңызды REST API-мен біріктіру. OpenAI-мен үйлесімді форматы оңай көшіруге мүмкіндік береді.
Тұжырымдамасы
TTS.ai API платформаның барлық мүмкіндіктеріне бағдарламалық қол жеткізуді қамтамасыз етеді: мәтіннен сөйлеуге синтездеу, сөйлеуден мәтінге транскрипциялау, дауысты клондау, аудионы жақсарту және т.б. API JSON сұрау/жауап денелерімен стандартты REST конвенцияларын қолданады.
API кілті
API кілтін мынадан алыңыз Тіркелгінің параметрлері. Профессор, профессор, профессор, профессор, профессор.
Негізгі URL
https://api.tts.ai/v1/
Аутентификация
Жеткізушінің токені арқылы Authorization айдары
Аутентификация
Барлық API сұраныстары келесідегі Bearer токен арқылы аутентификациялауды талап етеді Authorization айдары.
Authorization: Bearer sk-tts-your-api-key-here
SDK- лар
Ресми SDK- лар 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 | 50000 таңба |
Әрбір жауапта жылдамдық шегінің айдарлары келтіріледі: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Кредит шығындар
| Қызмет | Бағасы | Бірлік |
|---|---|---|
| TTS (Ашық үлгілері: Piper, VITS, MeloTTS) | 1000 таңба | 1000 таңба үшін |
| TTS (Стандартты үлгілері: Kokoro, CosyVoice 2, т.б.) | 2000 таңба | 1000 таңба үшін |
| TTS (Premium үлгілері: Tortoise, Chatterbox, т. б.) | 4000 таңба | 1000 таңба үшін |
| Сөйлемді мәтінге | 2000 таңба | % 1 секунд |
| Дыбысты көшіру | 4000 таңба | 1000 таңба үшін |
| Дауыс өзгерткішіName | 3000 таңба | % 1 секунд |
| Дыбысты жақсарту | 2000 таңба | % 1 секунд |
| Дауыс өшіру / Дауысты бөлу | 3000- 4000 таңба | % 1 секунд |
| Сөйлеу аудармасыName | 5000 таңба | % 1 секунд |
| Дыбыс төңкерісіName | 3000 таңба | кез келген |
| Кілтті & BPM іздеу | Бос | -- |
| Аудио түрлендіргішіName | Бос | -- |
Мәтінді сөйлеугеName
Мәтінді дыбысқа айналдыру. Сұралған пішімдегі аудио файлды қайтарады.
Сұраныстың мазмұны
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
| 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 тілді автоматты түрде анықтайды. Name
Сұраныстың мазмұны (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 аяқтау нүктесімен сәйкесті бинарлық деректер түрінде қайтарады.
Дауыс өзгерткішіName
Аудионы басқа дауысқа айналдыру. Аудио көзін жүктеп, мақсатты дауысты таңдаңыз.
Сұраныстың мазмұны (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
Жауап
Аударылған аудио файлды бинарлық деректер түрінде қайтарады.
Сөйлеу аудармасыName
Аудио сөздерді бір тілден екіншісіне аудару. Бір ғана шақыру арқылы сөйлеуден мәтінге, аудармадан мәтінге аударуды біріктіреді. Name
Сұраныстың мазмұны (multipart/form-data)
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
| file | file | Иә | Аудио файлдың бастапқы тіліндегісі. Max 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
}
Сөйлеуден сөйлеугеName
Сөздің стилін, эмоциясын, мазмұнын сақтап, сөйлеу стилін өзгерту. Тонын, темпін, интонациясын өзгерту үшін пайдалы.
Сұраныстың мазмұны (multipart/form-data)
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
| file | file | Иә | Бастапқы дыбыс файлы. Max 50Мб. |
| voice | string | Иә | Шығыс дыбыс үшін аудио ID |
| model | string | Жоқ | Үлгі: openvoice (әдетті), chatterbox |
| emotion | string | Жоқ | Мақсатты эмоция: бейтарап, жақсы, қайғылы, көңілді, көңілді |
| speed | float | Жоқ | Жылдамдығын баптау. Әдетті: 1. 0. Ауқымы: 0. 5 - 2. 0 |
Жауап
Аударылған аудио файлды бинарлық деректер түрінде қайтарады.
Дыбыс құрал- жабдықтарыName
Аудио өңдеуді жақсарту, дауысты өшіру, дыбыстарды бөлу және т.б. үшін қолданылатын аяқтау нүктелері.
Аудио сапасын жақсарту: шуды жою, анықтығын жақсарту, жоғары ажыратымдылық.
| 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 |
Дыбыс төңкерісіName
Аудио немесе мәтін жіберіп, синтетикалық сөйлеу арқылы ДЖ жауап алу.
Сұраныстың мазмұны (multipart/form-data немесе JSON)
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
| audio | file | Жоқ* | Аудио кірісі (audio не text керек) |
| text | string | Жоқ* | Мәтінді енгізу (audio не text керек) |
| voice | string | Жоқ | ДК жауаптарының дауысы. Әдетте: 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
}
Денсаулықты тексеру
Графикалық процессор серверінің күй- жайын, жүктелген үлгілерін және кезектің өлшемін тексеру. Аутентификация қажет емес. Кэште 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
}
Код мысалдары
Мәтінді сөйлеугеName
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)
Мәтінді сөйлеугеName
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);
Мәтінді сөйлеугеName
# 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 |
Модель жүктелді. Кейін қайталап көріңіз. |
Webhook- тар
Ұзақ уақытқа созылған тапсырмалар үшін (тұқымды бөлу, пакетті 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-ды қолданбаңызға біріктіруге бастаңыз.