Документация
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 дән артык фәнни хезмәт авторы, шул исәптән 1000 дән артык фәнни хезмәте дөнья күргән.
Барлык API сорауларына аутентификация кирәк Authorization башлык.
Authorization: Bearer sk-tts-your-api-key-here
СДКлар
TTS.ai-не куллану өчен рәсми SDK-лар ярдәмендә җиңел генә интеграцияләү мөмкин. Икесе дә ачык чыганак һәм 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 | 1000 дән артык фәнни хезмәт авторы. |
| Профиль | 60 | 5 | 1000 дән артык фәнни хезмәт авторы. |
| Идарә итү | 300 | 20 | 50 000 сүз |
Һәр җавапта тизлек чикләүләре башлыклары кертелә: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Кредит бәясе
| Хезмәт | Төзелеш | Берлек |
|---|---|---|
| TTS (халыкара модельләр: Piper, VITS, MeloTTS) | 1 кредит | 1000 символ өчен |
| РФ су реестры мәгълүматлары: Кострома-2 (Кострома-2). | 2 гыйнвар | 1000 символ өчен |
| РФ су реестры мәгълүматлары: Чатыр-Яха (Чатыр-Яха, Чатыр-Яха). | 4 нче бит | 1000 символ өчен |
| Сүздән тексткаComment | 2 гыйнвар | аудио минутына |
| Сүзләрне клонлау | 4 нче бит | 1000 символ өчен |
| Тел үзгәрткеч | 3 нче бит | аудио минутына |
| Аудио яхшырту | 2 гыйнвар | аудио минутына |
| Башкорт Википедиясе – Википедиянең башкорт бүлеге. | 3-4 нче битләр | аудио минутына |
| Сөйләү тәрҗемәсе | 5 нче бит | аудио минутына |
| Тел чаты | 3 нче бит | әйләнә өчен |
| Клавиатураны эзләү | Бушлай | -- |
| Аудио әйләндергеч | Бушлай | -- |
Тексттан сөйләмгәComment
Мәкаләне сөйләм аудиосына әйләндерә. Соралган форматтагы аудио файлны кайтара.
Талапның эчке өлеше
| Параметрлар | Тип | Таләп ителә | Сүзтезмә |
|---|---|---|---|
| model | string | Юк | Модель идентификаторы (мәсәлән, 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 | Юк | Тел коды (мәсәлән, ru, ru). Юк икән, автоматик рәвештә ачыклана. |
| instructions | string | Юк | 500 ел (б. э. к.) — безнең эрага кадәр I гасырга кергән ел. |
| 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 теглары
Көннең стандарт форматы 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-31December thirty-first, nineteen ninety-nine 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 mdy инглиз телендә һәм dmy башка телләрдә; format=\ белән алмаштырыла{
"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.Full example
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.
Сүздән тексткаComment
Аудионы текстка күчерү. 99 телне автоматик ачыклау белән яклый.
Талапның эчке өлеше (multipart/form-data)
| Параметрлар | Тип | Таләп ителә | Сүзтезмә |
|---|---|---|---|
| file | file | Әйе | Аудио файл (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Макс. 100 МБ. |
| model | string | Юк | STT моделе: шыбыр (стандарт), шыбыр-шыбыр, сәнгатьле тавыш |
| language | string | Юк | РФ су реестры мәгълүматлары: Автодорожная (Автодорожная). |
| 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
}
Сүздән сүзгәComment
Сүзләү стилен, хис-кичерешләрне яки сөйләүне үзгәртү, эчтәлекне саклап калу. Тонны, темпны һәм белдерүне көйләү өчен файдалы.
Талапның эчке өлеше (multipart/form-data)
| Параметрлар | Тип | Таләп ителә | Сүзтезмә |
|---|---|---|---|
| file | file | Әйе | Сүзләү аудиофайлының чыганагы. Макс. 50 МБ. |
| voice | string | Әйе | Сүз чыгару өчен максатлы тавыш идентификаторы |
| model | string | Юк | Модель: openvoice (стандарт), чатербокс |
| emotion | string | Юк | |
| speed | float | Юк | Тизлекне көйләү. Әдәттә: 1.0. Диапазон: 0.5 дан 2.0 га кадәр |
Җавап
Трансформацияләнгән аудиофайлны бинар мәгълүмат буларак кайтара.
Аудио җиһазлары
Аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны эшкәртү.
Әдәбият фәннәре кандидаты, доцент, Татарстанның атказанган сәнгать эшлеклесе.
| file file | Боерылган аудиофайл |
| denoise boolean | Шомлылыкны бетерүне активлаштыру (өстәмә: дөрес) |
| enhance_clarity boolean | Сүзләүнең ачыклыгын яхшырту (өстәмә: дөрес) |
| super_resolution boolean | Аудио сыйфатын яхшырту (өстәмә: ялган) |
| strength integer | 1-3 (яшел, уртача, көчле). Әүвәлге: 2 |
Сөйләшүчеләрнең күпчелеге — татарлар, яки башкортлар, яки чуашлар.
| file file | Аерыр өчен аудиофайл |
| model string | demucs (default:mm) яки 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 | Почта индексы — 422050, ГАТОБК коды — 802048. |
| channels string | mono яки stereo |
Тел чаты
Аудио яки текстны җибәрегез һәм синтетик сөйләм белән AI җавапны алыгыз.
Талапның эчке өлеше (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 генерацияләү өчен җибәрү. Барлык эш тәмамлангач, 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 | Тел коды буенча фильтрлау (мәсәлән, ru) |
| 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
}
Субтитрлар (SRT / VTT) яңа
ТТС эшләренә синхронлаштырылган субтитрлар булдыру. Аудио өстендә Whisper турылаштыруын эшли һәм SRT яки WebVTT кайтара. Нәтиҗәләр дискта кэшлана, шуңа күрә шул ук uuid өчен икенче чакыру дискта укыла.
Параметрлар
| Параметрлар | Таләп ителә | Сүзтезмә |
|---|---|---|
| uuid | Әйе | 1999 елдан — ТАССРның атказанган мәдәният хезмәткәре (1999). |
| 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
Тану сүзлеге яңа
ТТС җайланмасына билгеле бер сүзләрне ничек әйтеп бирергә кирәклеген әйтү. Сакланган кертемнәр сезнең һәрбер ТТС сорауыгызга автоматик рәвештә кертелә. Бер исәп-хисап өчен 200 кертем чикләнгән.
Талапның эчке өлеше (POST)
| Параметрлар | Тип | Сүзтезмә |
|---|---|---|
| word | string | Өстәмә язарга сүз (мәсәлән, GIF, Anthropic). Сүз чикләре туры килә. |
| replacement | string | Бу очракта, җөмләнең төп өлеше () һәм аның кушымтасы ( |
| 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-..."
Бу очракта, 1-нче җөмләнең 1-нче җөмләнең 1-нче җөмләсе белән кушылуын (1-нче җөмләнең 1-нче җөмләсе белән кушылуын) күрсәтүче җөмләнең 1-нче җөмләсе белән кушылуын (1-нче җөмләнең 1-нче җөмләсе белән кушылуын) күрсәтүче җөмләнең 1-нче җөмләсе белән кушылуын күрсәтә.
Мәкаләләр сөйләүче яңа
тегны теләсә кайсы мәкалә битенә төшерегез һәм кунаклар клик ясаганда мәкаләне сөйләүче фиксацияләнгән укучы панелен алачаклар. Мәкаләнең эчтәлеген автоматик рәвештә ачыклый, үзенчәлекле тавыш / модель / урын / акцент төсен яклый.
<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 | РФ су реестры мәгълүматлары: Белая-Яха. |
data-model | РФ су реестры мәгълүматлары: Копь-Яха. |
data-extract | auto (стандарт) — article/main/.post-content/.entry-content сайлаучыларын куллана, иң тыгыз абзац төркеменә әйләнеп кайта. Яки билгеле бер элементны билгеләү өчен теләсә нинди CSS сайлаучысына күчә. |
data-position | bottom (стандарт) яки top. |
data-color | Акцент төсе (CSS төсе). Әдәттә #e60000. |
data-min-chars / data-max-chars | Әгәр мәкалә мин-карарлардан (стандарт 200) кыскарак булса, сызыкны үтү. Мәкаләнең эчтәлеген максималь-карарларга кадәр чикләү (стандарт 50 000). |
РФ су реестры мәгълүматлары: А-Я-Я.
Ишетү тугмасы
Сүз эчендәге төймә-стиле кертү. тег янында күрсәтелә һәм төймә белән активлаштырылган кыска фрагментны уйната. Өстендәге мәкалә сөйләүчесеннән аерыла (ул автоматик рәвештә битне каплаган җепне кертә һәм мәкаләне тулысын сөйләп бирә).
<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с аудио), исем (мәҗбүри), тел (өстәмә, default en), модель (өстәмә — zh/ja/ko өчен cosyvoice2не автоматик сайлый, әгәр openvoice булмаса), ризалык_таный (мәҗбүри, теләсә нинди дөрес күрсәткеч).
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/ (ИСТӘП КАЛЫРГА: web 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/
Код мисаллары
Тексттан сөйләмгәComment
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')}")
Сүздән тексткаComment
# 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)
Тексттан сөйләмгәComment
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();
Сүздән тексткаComment
// 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);
Тексттан сөйләмгәComment
# 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
Сүздән тексткаComment
# 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 адресыгызга 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-ны сезнең кушымталарга интеграцияләүне башлагыз.