Документация

TTS.ai-ны сезнең кушымталарга безнең REST API белән берләштерегез. OpenAI-га туры килә торган формат җиңел миграция өчен.

REST API OpenAI кушымтасы JSON җаваплары Трансляцияне яклау

Күзәтү

TTS.ai API платформаның барлык функцияләренә програмлаштырылган керүне тәэмин итә: тексттан сөйләмгә синтез, сөйләмнән текстка транскрипция, тавыш клонлаштыру, аудио яхшырту һәм башкалар. API JSON сорау/җавап органнары белән стандарт REST конвенцияләрен куллана.

API ачкычлары

Сезнең API ачкычыгызны алырга Хисабының параметрлары. Икътисад һәм бизнес өлкәсендә Нобель премиясе иясе.

Төп URL

https://api.tts.ai/v1/

Аутентификация

Токен йөртүчесе аша Authorization башлык

Аутентификация

РФ су реестры мәгълүматлары: Нельзя. Аноним POSTлар /v1/tts/ бернинди таныклыксыз, бер IP адресы буенча көненә 5000 символга кадәр, безнең бушлай модельләребезне кулланып эшли аласыз (piper, vits, melotts, kokoro). 15000 дән артык фәнни хезмәт авторы, шул исәптән 1000 дән артык фәнни хезмәте дөнья күргән.

Барлык API сорауларына аутентификация кирәк Authorization башлык.

HTTP башлыгы
Authorization: Bearer sk-tts-your-api-key-here
Сезнең API ачкычыгызны яшерен тотыгыз. Аны клиент ягы кодында, җәмәгать репозиторийләрендә яки журналларда уртаклашмагыз. Ключларны исәп-хисап параметрлары аша даими әйләндерегез.

СДКлар

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")
GitHub

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');
GitHub

Төп URL

Төп URL: https://api.tts.ai/v1/

Барлык тәмамлану нокталары бу төп URL белән бәйле. Мәсәлән, TTS тәмамлану нокталары:

POST https://api.tts.ai/v1/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

POST /v1/tts/

Мәкаләне сөйләм аудиосына әйләндерә. Соралган форматтагы аудио файлны кайтара.

Талапның эчке өлеше

ПараметрларТипТаләп ителәСүзтезмә
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
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 теглары

аңлауКергәнШулай ук сөйләнә
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."
}

Җавап

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Full example

Python
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)

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

Сүздән тексткаComment

POST /v1/stt/

Аудионы текстка күчерү. 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

Җавап

JSON җавап
{
  "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"
    }
  ]
}

Сүзләрне клонлау

POST /v1/tts/clone/

Клонланган тавыш белән сөйләшүне барлыкка китерү. Аудио һәм текстны йөкләү.

Талапның эчке өлеше (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 ахыры белән бертигез.

Тел үзгәрткеч

POST /v1/voice-convert/

Аудионы башка тавышка әйләндерү. Аудио чыганагын йөкләгез һәм максат тавышын сайлагыз.

Талапның эчке өлеше (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
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

Җавап

Ияртелгән аудиофайлны бинар мәгълүмат буларак кайтара.

Сөйләү тәрҗемәсе

POST /v1/speech-translate/

Сүзләшкән аудионы бер телдән икенчесенә тәрҗемә итегез. Сүзләүдән-матнга, тәрҗемә итүдән һәм тексттан-сөйләүгә бер чакыруда берләштерә.

Талапның эчке өлеше (multipart/form-data)

ПараметрларТипТаләп ителәСүзтезмә
file file Әйе Оригиналь телдәге аудиофайл. Макс. 100 МБ.
target_language string Әйе Теләгән тел коды (мәсәлән, es, fr, de, ja)
voice string Юк тәрҗемә өчен тавыш. Юк икән, автоматик рәвештә сайлана.
preserve_voice boolean Юк Оригиналь сөйләүчене саклап калырга тырышу

Җавап

JSON җавап
{
  "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

POST /v1/speech-to-speech/

Сүзләү стилен, хис-кичерешләрне яки сөйләүне үзгәртү, эчтәлекне саклап калу. Тонны, темпны һәм белдерүне көйләү өчен файдалы.

Талапның эчке өлеше (multipart/form-data)

ПараметрларТипТаләп ителәСүзтезмә
file file Әйе Сүзләү аудиофайлының чыганагы. Макс. 50 МБ.
voice string Әйе Сүз чыгару өчен максатлы тавыш идентификаторы
model string Юк Модель: openvoice (стандарт), чатербокс
emotion string Юк
speed float Юк Тизлекне көйләү. Әдәттә: 1.0. Диапазон: 0.5 дан 2.0 га кадәр

Җавап

Трансформацияләнгән аудиофайлны бинар мәгълүмат буларак кайтара.

Аудио җиһазлары

Аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны эшкәртү.

POST /v1/audio/enhance/

Әдәбият фәннәре кандидаты, доцент, Татарстанның атказанган сәнгать эшлеклесе.

file fileБоерылган аудиофайл
denoise booleanШомлылыкны бетерүне активлаштыру (өстәмә: дөрес)
enhance_clarity booleanСүзләүнең ачыклыгын яхшырту (өстәмә: дөрес)
super_resolution booleanАудио сыйфатын яхшырту (өстәмә: ялган)
strength integer1-3 (яшел, уртача, көчле). Әүвәлге: 2
POST /v1/audio/separate/

Сөйләшүчеләрнең күпчелеге — татарлар, яки башкортлар, яки чуашлар.

file fileАерыр өчен аудиофайл
model stringdemucs (default:mm) яки spleeter
stems integerЧәчәкләр саны: 2, 4, 5 яки 6 (өстәмә: 2)
format stringЧыгу форматы: wav, mp3, flac
POST /v1/audio/dereverb/

Аудиозапислардан эхо һәм реверберацияне юкка чыгару.

file fileЭшләячәк аудиофайл
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Бушлай

Клавиша, 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"]
}
POST /v1/audio/convert/ Бушлай

Аудио форматлар арасында әйләндерү.

file fileҮзгәртү өчен аудиофайл
format stringМәгълүм форматлар: mp3, wav, flac, ogg, m4a, aac
bitrate integerЧыгу бит тизлеге (кб/с): 64, 128, 192, 256, 320
sample_rate integerПочта индексы — 422050, ГАТОБК коды — 802048.
channels stringmono яки stereo

Тел чаты

POST /v1/voice-chat/

Аудио яки текстны җибәрегез һәм синтетик сөйләм белән 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 Юк Хәзерге сөйләшүне дәвам итү

Җавап

JSON җавап
{
  "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
}

ТТС пакеты

POST /v1/tts/batch/

Берьюлы берничә текстны TTS генерацияләү өчен җибәрү. Барлык эш тәмамлангач, webhook чакыру кайтаруын да алырга мөмкин.

Параметрлар

ПараметрларТипСүзлек
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Җавап

JSON җавап
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

GET /v1/tts/batch/result/?batch_id=abc123 белән сораштыру барышы

Сүзләрне кертү

POST /v1/voice-embed/

Сүзне аудиодан кертүне алдан исәпләү. Кайбер вакытка кадәр клонлаштыру өчен, аннан соңгы тавыш клонлаштыру сорауларында кайтарылган embed_id кулланыгыз.

Параметрлар

ПараметрларТипСүзлек
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Җавап

JSON җавап
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Сәламәтлекне тикшерү

GET /v1/health/

ГП серверы торышын, йөкләнгән модельләрне һәм чират зурлыгын тикшерү. Аутентификация кирәкми. 30 секундка кэшланган.

Җавап

JSON җавап
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Модельләр исемлеге

GET /v1/models/

Барлык кулланыла торган модельләр исемлеген һәм аларның мөмкинлекләрен кайтара.

Җавап

JSON җавап
{
  "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
    }
  ]
}

тавышлар исемлеге

GET /v1/voices/

Барлык кулланыла торган тавышлар исемлеген кайтара, модель яки тел буенча өстәмә рәвештә фильтрланган.

Параметрлар

ПараметрларТипСүзтезмә
model string Модель ID буенча фильтрлау (мәсәлән, kokoro)
language string Тел коды буенча фильтрлау (мәсәлән, ru)
gender string Гендер буенча фильтрлау: ир, хатын, нейтраль

Җавап

JSON җавап
{
  "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) яңа

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

ТТС эшләренә синхронлаштырылган субтитрлар булдыру. Аудио өстендә Whisper турылаштыруын эшли һәм SRT яки WebVTT кайтара. Нәтиҗәләр дискта кэшлана, шуңа күрә шул ук uuid өчен икенче чакыру дискта укыла.

Параметрлар

ПараметрларТаләп ителәСүзтезмә
uuidӘйе1999 елдан — ТАССРның атказанган мәдәният хезмәткәре (1999).
formatЮкsrt (стандарт) яки vtt (җавап бирү өчен).
downloadЮк1 Content-Disposition: attachment җибәрү өчен, браузерны күрсәтү урынына сакларга.
languageЮкБу ысулны кулланып, атомның үз-үзен тотышы (яки атомның үз-үзен тотышы) өйрәнелә.
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Тану сүзлеге яңа

GET POST DELETE /api/v1/pronunciations/

ТТС җайланмасына билгеле бер сүзләрне ничек әйтеп бирергә кирәклеген әйтү. Сакланган кертемнәр сезнең һәрбер ТТС сорауыгызга автоматик рәвештә кертелә. Бер исәп-хисап өчен 200 кертем чикләнгән.

Талапның эчке өлеше (POST)

ПараметрларТипСүзтезмә
wordstringӨстәмә язарга сүз (мәсәлән, GIF, Anthropic). Сүз чикләре туры килә.
replacementstringБу очракта, җөмләнең төп өлеше () һәм аның кушымтасы () бер үк сүздән тора.
languagestringISO коды да кушарга мөмкин. Боҗрасыз = барлык телләргә дә кагыла.
case_sensitivebooleanӘдәттәге false. true булганда зурлыкны туры китерү.
cURL
# 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-нче җөмләсе белән кушылуын күрсәтә.

Мәкаләләр сөйләүче яңа