АПИ документација

Интегриши TTS.ai у ваше апликације са РЕСТА АПИ‐ ом. Компатибилан са OpenAI форматом за једноставну миграцију.

ОСТАЉАЈ АПИ сагласан с OpenAI‐ ом ЈСОН одговори Подршка за ток

Преглед

TTS.ai АПИ обезбеђује програмски приступ свим могућностима платформе: синтеза текста у говор, транскрипција говора у текст, клонирање гласова, побољшање звука и још тога. АПИ користи стандардне конвенције РЕСТУП са ЈСОН‐ овим захт› јевом/одговором.

АПИ кључ

Узми свој АПИ кључ од Поставке налога. Доступно на про и Ентерпрајз планове.

Основни УРЛ

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

Аутоматски

Токен за носач преко Authorization заглавље

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

Слободни ниво — није неопходан кључ. Анонимни ПОСТ‐ ови на /v1/tts/ рад без автентичности, до 5.000 знакова дневно по ИП‐ у, користећи било који од наших слободних модела (piper, vits, melotts, kokoro). Пријавите се за бесплатни налог да добијете 15.000 бонусних знакова и приступ премијским моделима.

За премијске моделе и ограничења високе стопе, аутентификујте се са Носачем у Authorization заглавље.

ХТТП заглавље
Authorization: Bearer sk-tts-your-api-key-here
Држите свој АПИ кључ тајну. Не д› ијелите га у клијентском коду, јавним ризницама или дневницима. Редовно ротирајте тастере из поставки налога.

~@ ¦СДК¦SDKs¦

Званични СДК-ови олакшавају интеграцију TTS.ai у вашу апликацију. Оба су отворена извора и доступна на ГитХубу.

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

Основни УРЛ

Основни УРЛ: https://api.tts.ai/v1/

Сви крајњи крајеви су у односу на овај основни УРЛ. На пример, ТТС крајњи УРЛ је:

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

Ограничења брзине

Ограничења АПИ стопе варирају по плану:

План Захт› јеви/мин. Конкурентни Највећа дужина текста
слободни 10 2 500 знакова
Покретач 30 3 1 000 000 знакова
Проф. 60 5 1 000 000 знакова
Ентерпрајз 300 20 50.000 знакова

Заглавља ограничења брзине су укључена у сваки одговор: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредитни трошкови

Сервис трошкови јединица
ТТС (Безплатни модели: Пајпер, ВИТС, МелоТТС) 1000 знакова по 1.000 знакова
ТТС (стандардни модели: Кокоро, Цоси Глас 2, итд.) 2.000 знакова по 1.000 знакова
ТТС (премијумски модели: Тортуз, ћаскање итд.) 4.000 знакова по 1.000 знакова
Говор у текст 2.000 знакова по минуту звука
Гласово клонирање 4.000 знакова по 1.000 знакова
Пром› јена гласа 3.000 знакова по минуту звука
аудио побољшање 2.000 знакова по минуту звука
Гласово уклањање / раздвајање 3.000-4.000 знакова по минуту звука
Превод говора 5.000 знакова по минуту звука
Гласовно ћаскање 3.000 знакова по скрету
Трагач кључева & БПМ‐ а слободни --
аудио претварач слободни --

Текст у говор

POST /v1/tts/

Претвори текст у говорни звук. Враћа аудио фајл у захт› ијеваном формату.

захт› ијевано тело

ПараметартипнеопходноОпис
model string Не. ИД модела (нпр., kokoro, chatterbox, piper. Ако изоставимо, аутоматски одаберемо модел који подржава захт› ијевани >jezikkokoro за en/ja/zh/ko/fr/de/it/pt/es/hi/ru, за друге подржане језике (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Да. Текст за претварање у говор. По захт› јеву, капа: 500 знакова (анонимно), 5.000 (слободан налог), 1 000 000 (плаћен план). Дуги улази су аутоматски исцрпљени са сервера.
voice string Да. Гласовни ИД (користите /v1/voices/ за списак доступних гласова)
format string Не. Формат излаза: >mp3 (подразум› ијевано), , flac,
speed float Не. Говорећи множитељ брзине. Подразум› ијевано: 1.0. Опсег: 0.5 на 2.0
language string Не. Код језика (нпр., en , es ). Аутоматски детектовано ако је изостављено.
instructions string Не. Штапови за рад / испоруку (≤500 знакова). нпр. \
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

ССМЛ ознаке

Преломи бројеве, датуме, валуте, телефонске бројеве и акрониме у

тумачење‐ каоулазГовориш као
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.

Говор у текст

POST /v1/stt/

Преписује звук на текст. Подржава 99 језика аутоматским откривањем.

захт› ијевано тело (multipart/form-data)

ПараметартипнеопходноОпис
file file Да. Аудио фајл (МП3, WAV, ФЛАЦ, ОГГ, М4А, МП4, ВебМ). Макс. 100МБ.
model string Не. СТТ модел: whisper (подразум› ијевано), brжи-whisper, смисао
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"
    }
  ]
}

Гласово клонирање

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 Не. Код циљног језика. Мора бити подржан одабраним моделом.

Одговор

Враћа аудио фајл као бинарни подаци, као и крајњи крај ТТС‐ а.

Пром› јена гласа

POST /v1/voice-convert/

Претварање звука у други глас. Слање изворног звука и изаберите циљни глас.

захт› ијевано тело (multipart/form-data)

ПараметартипнеопходноОпис
file file Да. Изворни аудио фајл (MP3, WAV, FLAC). Макс. 50МБ.
target_voice string Да. Циљни гласни ИД за претварање (користите /v1/voices/ за списак доступних гласова)
model string Не. Модел претварања гласа: openvoice (подразум› ијевано),
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 Не. Покушај да сачуваш говорне карактеристике првобитног звучника. Подразум› ијевано: 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
}

Говор у говор

POST /v1/speech-to-speech/

Трансформиши стил говора, емоције или испоруке задржавајући садржај. Корисно за прилагођавање тона, ходање и изразивост.

захт› ијевано тело (multipart/form-data)

ПараметартипнеопходноОпис
file file Да. Изворни говорни аудио фајл.
voice string Да. Циљни ИД гласа за излазни говор
model string Не. Модел: openvoice (подразум› ијевано), chatterbox
emotion string Не. Циљна емоција: neutral, sappy, sad, angry, accited
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 (подразумевано) или 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/ слободни

Анализирајте звук да откријете кључ, БПМ и временски потпис.

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, , flac, >, m4a, ac
bitrate integerИзлазни битни проток у кбпс: 64, 128, 192, 256, 320
sample_rate integerУзоркова брзина: 22050, 44100, 48000
channels stringmono или stereo

Гласовно ћаскање

POST /v1/voice-chat/

Пошаљите звук или текст и примите ВИ одговор синтетичким говором.

захт› ијевано тело (multipart/form-data или JSON)

ПараметартипнеопходноОпис
audio file Не.* Неопходни су аудио уноси (или ~@ ¦аудио¦audio¦ текст )
text string Не.* Неопходно уношење текста (или ~@ ¦аудио¦audio¦)
voice string Не. Глас за ВИ одговор. Подразум› ијевано: af_bella
tts_model string Не. ТТС модел за одговор. Подразум› ијевано: kokoro
system_prompt string Не. Посебан системски позив за ВИ
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
}

Пакетни ТТС

POST /v1/tts/batch/

Пошаљи више текстова за паралелну генерацију ТТС‐ а. Опционо прими повратни позив на веб порукама када се сви послови заврше.

Параметри

ПараметартипОпис
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Одговор

ЈСОН одговор
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Напредак анкете са ГЕТ / 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.

Одговор

ЈСОН одговор
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Здравствена провера

GET /v1/health/

Пров› јерите стање сервера ГПУ‐ а, учитане моделе и величину реда. Аутентификација није потребна. Кеширана је 30 секунди.

Одговор

ЈСОН одговор
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Списак модела

GET /v1/models/

Враћа списак свих доступних модела са својим могућностима.

Одговор

ЈСОН одговор
{
  "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 Филтрирај по ИД‐ у модела (нпр., 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
}

Титлови (СРТ / ВТТ) ново

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

Генерише синхронизоване субтитлове за било који завршени посао ТТС‐ а. Покреће Вхиспер поравнање преко звука и враћа СРТ или ВебВТТ. Резултат је кеширан на диску, тако да је други позив за исти ууид читање диска.

Параметри упита

ПараметарнеопходноОпис
uuidДа.Посао УУИД вратио / v1/ tts/ or / v1/ v1/ voice- clone /.
formatНе.(подразум› ијевано) или vt.
downloadНе.Да пошаљете ~@ ¦Код¦Kod¦¦Kod¦: прилог , тако да прегледач уписује уместо приказа.
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, Antropic. Поклапа се са р› ијечима.
replacementstringКако да се напише за модел (нпр. jiff, an THROP ick).
languagestringОпциони ИСО кôд. Празан = важи за све језике.
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-..."

Такође можете да прођете прем› јене по захт› јеву без да их сачувате — укључите изговоре на било којем / v1/tts/ call као објект или низ (погледајте ~@ ¦ТТТС¦TTS¦ парамете).

Чланак Наратор ново

Пребаците једну ознаку