API құжаттамасы
TTS.ai-ды қолданбаларыңызды REST API-мен біріктіру. OpenAI-мен үйлесімді форматы оңай көшіруге мүмкіндік береді.
Тұжырымдамасы
TTS.ai API платформаның барлық мүмкіндіктеріне бағдарламалық қол жеткізуді қамтамасыз етеді: мәтіннен сөйлеуге синтездеу, сөйлеуден мәтінге транскрипциялау, дауысты клондау, аудионы жақсарту және т.б. API JSON сұрау/жауап денелерімен стандартты REST конвенцияларын қолданады.
API кілті
API кілтін мынадан алыңыз Тіркелгінің параметрлері. Профессор, профессор, профессор, профессор, профессор.
Негізгі URL
https://api.tts.ai/v1/
Аутентификация
Жеткізушінің токені арқылы Authorization айдары
Аутентификация
/v1/tts/ кез келген анонимді жұмыс, күн сайын бір IP-ге 5000 таңбаға дейін, кез келген тегін үлгілерді қолданып (piper, vits, melotts, kokoro). 15000 бонустық символды және премиум модельдерге қол жеткізу үшін тегін тіркелгіні тіркеңіз.
Premium үлгілері мен жоғары жылдамдық шектеулері үшін, аутентификацияны келесідегі 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 | 1,000,000 таңба |
| Про | 60 | 5 | 1,000,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). Егер келтірілмесе, сұралған тіл-ді қолдайтын модельді автоматты түрде таңдаймыз — kokoro үшін en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper үшін басқа қолдайтын тілдер (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | Иә | Сөзге айналдыратын мәтін. Бір сұраныстағы шек: 500 таңба (анонимді), 5000 (ақысыз тіркелгі), 1000000 (ақылы). Ұзын жазулар сервер тарапынан автоматты түрде бөлшектенеді. |
| voice | string | Иә | Дауыс идентификаторы (бар дауыстарды көрсету үшін /v1/voices/ қолданыңыз) |
| format | string | Жоқ | Шығыс пішімі: mp3 (әдетті), wav, flac, ogg |
| speed | float | Жоқ | Сөйлеу жылдамдығының көбейтіндісі. Әдетте: 1.0. Ауқымы: 0.5 - 2.0 |
| language | string | Жоқ | Тілдің коды (мысалы, en, es). Егер келтірілмесе, автоматты түрде анықталады. |
| instructions | string | Жоқ | Іс- әрекет / жеткізу белгісі (≤500 таңба). мысалы \ |
| pronunciations | object | array | Жоқ | Сұраныс бойынша дыбыстау өшіріледі. {\ |
| 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
SSML тегтері
Сандарды, күндерді, валютаны, телефон нөмірлерін және акронимдерді Күннің әдетті пішімі < code> mdy code> ағылшын тілінде және < code> dmy code> басқа тілдерде; < code> format=\ арқылы өзгертіледі The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
түсіндіру Кіріс Осылай айтылсын cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-3131 желтоқсан, 1999 time14:30two thirty PM telephone+1-555-867-5309plus one five five five eight six seven… currency$1,234.56one thousand two hundred thirty-four dollars and fifty-six cents spell-outNASAN A S A {
"model": "kokoro",
"voice": "af_bella",
"text": "Your appointment is on <say-as interpret-as=\"date\">2026-04-26</say-as> at <say-as interpret-as=\"time\">14:30</say-as>. Please call <say-as interpret-as=\"telephone\">+1-555-867-5309</say-as> if you need to reschedule."
}Жауап
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.Толық мысал
import requests, time
API_KEY = "sk-tts-your-key"
BASE = "https://api.tts.ai"
# 1. Submit TTS request
resp = requests.post(f"{BASE}/v1/tts/", json={
"model": "kokoro",
"text": "Hello from TTS.ai!",
"voice": "af_bella"
}, headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()
uuid = data["uuid"]
# 2. Poll for result
while True:
result = requests.get(f"{BASE}/v1/speech/results/",
params={"uuid": uuid}).json()
if result["status"] == "completed":
# 3. Download audio
audio = requests.get(result["result_url"])
with open("output.mp3", "wb") as f:
f.write(audio.content)
break
elif result["status"] == "failed":
raise Exception(result.get("error", "Generation failed"))
time.sleep(1.5)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
Сөйлемді мәтінге
Аудио файлды мәтінге аудару. 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 | Батты орындау аяқтағанда POST нәтижесінің URL- і. |
Жауап
{
"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
}
Субтитрлер (SRT / VTT) жаңа
Тіл- жазу тапсырмасының кез келген орындалғаны үшін қадамдастыру субтитрлерін құру. Аудио арқылы Whisper туралауын орындап, SRT не WebVTT қайтарады. Нәтижесі дискіге кэштеледі, сондықтан осы uuid үшін екінші шақыру дискіден оқылады.
Сұраныстың параметрлері
| Параметрлер | Негізгі | Сипаттамасы |
|---|---|---|
| uuid | Иә | Тапсырманың UUID-і /v1/tts/ немесе /v1/voice-clone/ арқылы қайтарылды. |
| format | Жоқ | srt (әдетте) немесе vtt. |
| download | Жоқ | 1 Content-Disposition: attachment жіберу үшін, сондықтан шолғыш көрсетпей сақтайды. |
| language | Жоқ | Туралау үлгісіне арналған нұсқау (егер келтірілмесе, автоматты түрде анықталады). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Таным сөздігіName жаңа
Тіл- дыбыс аудару тетігіне белгілі сөздерді қалай дыбыстайтынын хабарлау. Сақталған жазулар әрбір тіл- дыбыс аудару сұранысына автоматты түрде қолданылады. Тіркелгідегі жазулар саны 200- ге шектеледі.
Сұраныстың мазмұны (POST)
| Параметрлер | Түрі | Сипаттамасы |
|---|---|---|
| word | string | Өшіруге болатын сөз (мысалы GIF, Anthropic). Сөз шекарасы сәйкес келді. |
| replacement | string | Модель үшін оның қалай жазылуы керек (мысалы jiff, ann THROP ick). |
| language | string | ISO коды таңдау бойынша. Бос = барлық тілдерге қолданылады. |
| case_sensitive | boolean | Әдетті false. true болса, үлкен- кішілігіне сәйкес келтіру. |
# Save an entry
curl -X POST https://tts.ai/api/v1/pronunciations/ \
-H "Authorization: Bearer sk-tts-..." \
-H "Content-Type: application/json" \
-d '{"word": "GIF", "replacement": "jiff"}'
# List your entries
curl https://tts.ai/api/v1/pronunciations/ -H "Authorization: Bearer sk-tts-..."
# Delete entry by id
curl -X DELETE "https://tts.ai/api/v1/pronunciations/?id=42" -H "Authorization: Bearer sk-tts-..."
Сіз сондай- ақ оларды сақтамай, сұраныс бойынша ауыстырғыштарды өткізе аласыз — кез келген /v1/tts/ шақыруында pronunciations объекті немесе жиын ретінде қоса аласыз (TTS endpoint параметрлерін қараңыз).
Мақала әңгімелеушісіComment жаңа
Бірнеше < code>< script> code> тегін кез келген мақала бетіне тастасаңыз, келушілер бір рет шерткенде бетті баяндайтын оқығыш панелін көреді. Мақаланың мазмұнын автоматты түрде анықтайды, өзінің дауысын / үлгісін / орнын / акцентін таңдай алады.
<script src="https://tts.ai/narrator.js"
data-pk="pk-tts-your-publishable-key"
data-voice="af_bella"
data-model="kokoro"
data-extract="auto"
data-position="bottom"
data-color="#e60000"
data-locale="en"></script>
Параметрлері
| Параметрлер | Сипаттамасы |
|---|---|
data-pk | Жарияланатын кілт (pk-tts-…). Домен шектеулері allowed_domains өрісі арқылы қолданылады. |
data-voice | Дыбыс ID. Әдетті af_bella. |
data-model | ТДС үлгісінің ID-і. Әдетті kokoro. |
data-extract | < code> auto code> (әдетті) — article/ main/. post- content/. entry- content таңдағыштарын қолданады, ең тығыз абзац топтарына қайта оралады. Немесе CSS таңдағышын арнаулы элементке бағыттайды. |
data-position | bottom (әдетті) немесе top. |
data-color | Акцент түсі (CSS- тің кез келген түсі). Әдетті #e60000. |
data-min-chars / data-max-chars | Мақала саны ең аз таңбадан (әдетте 200) артық болса, жолды тастап кету. Енгізу саны ең көп таңбадан (әдетте 50, 000) артық болса, жолды тастап кету. |
Тіркеу батырмасының бөлшегіName
Бағана- стильдегі ендіру. < code>< script code> тегінің жанында көрсетіледі және батырмамен қысқа фрагменті ойнатылады. Жоғарғыдағы мақала баяндауышы (автоматты түрде бетті қамтитын жолды енгізіп, мақаланың толық мазмұнын баяндайтын) түрінен өзгеше.
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Сақталған дауыстар (қалыпты клондар)
Аудио сілтемені бір рет жүктеп, тұрақты voice_id алу, содан кейін әрбір шақыру кезінде аудионы қайта жүктеп берудің орнына TTS сұраныстарында осы id-ке сілтеме жасау. Көп көлемді интеграциялар үшін өте қолайлы.
Дыбысты жүктеп беру
POST
https://tts.ai/api/v1/user-voices/
Аутентификация қажет
Көпбөлік пішін. Өрістер: файл (міндетті, 5-30с аудио), атау (міндетті), тіл (міндетті емес, әдетті en), үлгі (міндетті емес — zh/ja/ko үшін cosyvoice2, ал басқа жағдайда openvoice автоматты түрде таңдалады), consent_confirmed (міндетті, кез келген мәні дұрыс).
curl -X POST https://tts.ai/api/v1/user-voices/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@reference.wav" \
-F "name=My Narrator" \
-F "language=en" \
-F "consent_confirmed=true"
# Response:
{
"public_id": "uv_a1b2c3d4e5f6",
"id": 42,
"name": "My Narrator",
"model_name": "openvoice",
"language": "en",
"reference_audio_url": "https://tts.ai/media/user-voices/....wav",
"storage_status": "active",
"created_at": "2026-04-17T03:45:00+00:00"
}
Тіл- дыбыс аудару жүйесінде сақталған дыбыс қолданылсын
POST /api/v1/tts/ (ЕСКЕРТУ: веб VPS хост, api.tts.ai емес) user_voice_id көмегімен. Біз сақталған аудио мен маршрутты клондау конвейеріне жүктейміз.
curl -X POST https://tts.ai/api/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'
# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.
Тізім / Өшіру
GET https://tts.ai/api/v1/user-voices/ # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6
Архивтеу / қайта белсендіру (бос)
Архивтегі дыбыстар тіркелгіңізде қалады, бірақ TTS- те қолданылмайды. Бұл бос тұрған пайдаланушыларға пайдалы, сондықтан тізіміңіз таза қалады.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Код мысалдары
Мәтінді сөйлеуге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-ды қолданбаңызға біріктіруге бастаңыз.