API документација

Интегрирај TTS.ai во вашите апликации со нашиот REST API. Компатибилен со OpenAI формат за лесна миграција.

РЕЗУЛЬТАТНА АПИ OpenAI компатибилен ЈСОН одговори Поддршка за пренесување

Преглед

API за TTS.ai овозможува програмски пристап до сите можности на платформата: синтеза од текст до говор, транскрипција од говор до текст, клонирање на глас, аудио подобрување и други.

API- клуч

Земи си го API клучот од Поставувања за сметката. Достапни за про и Ентерпрајз планови.

Основен URL

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

Авт

Преносувач на знак преку Authorization заглавје

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

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

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

HTTP- заглавие
Authorization: Bearer sk-tts-your-api-key-here
Чувај ја тајната на клучот од API. Не го споделувај во кодот на клиентот, јавните ризници или дневници. Редовно ротирајте ги клучевите од поставувањата на вашата сметка.

SDKs

Официјалните 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")
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 1 000 000 знакови
Проф. 60 5 1 000 000 знакови
Ентерпрајз 300 20 50.000 обележја

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

Кредитни трошоци

Сервис Цена Единица
TTS (Безплатни модели: Piper, VITS, Melotts) 1000 знаци на 1.000 знаци
TTS (Стандардни модели: Kokoro, CosyVoice 2, итн.) 2.000 знаци на 1.000 знаци
TTS (Премиумски модели: Тортоаз, чаттербокс итн.) 4.000 знаци на 1.000 знаци
Говор кон текст 2.000 знаци во минута на аудио
Гласовно клонирање 4.000 знаци на 1.000 знаци
Менувач на глас 3.000 знаци во минута на аудио
Звучно подобрување 2.000 знаци во минута на аудио
Отстранување на гласови / разделување 3.000-4.000 знаци во минута на аудио
Преведување на говор 5.000 знаци во минута на аудио
Гласовен разговор 3.000 знаци на свртување
Пронаоѓач на клучеви и BPM Слободен --
Аудио- претворач Слободен --

Текст за говор

POST /v1/tts/

Конвертирајте го текстот во говорно аудио. Враќа аудио датотека во бараниот формат.

Барај тело

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

Целосен пример

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 Да. Аудио датотека (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Макс. 100MB.
model string Не. Модел на STT: whisper (стандардно), побрз-шап- шап, Sense глас
language string Не. Код на јазикот. auto за автоматска детекција (стандардно).
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 секунди препорачува). Макс. 20MB.
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). Макс. 50MB.
target_voice string Да. Циљна идентификација на гласот во која ќе се конвертираат (користи /v1/voices/ за да набројат достапни гласови)
model string Не. Модел на претворање на глас: openvoice (стандардно), knn- vc
format string Не. Формат на излез: < code>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 Да. Изворна аудио датотека на оригиналниот јазик. Макс. 100MB.
target_language string Да. Код на целта (на пример, es , fr, de, , ja
voice string Не. Глас за преведување на излезот. Автоматски избрано ако е пропуштено.
preserve_voice boolean Не. Обиди се да ги зачуваш гласните карактеристики на оригиналниот говорник. Стандардно: false

Одговор

Одговорот на 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
}

Говор на говор

POST /v1/speech-to-speech/

Преобрази го стилот на говор, емоциите или испораката додека ја одржуваш содржината.

Барај тело (multipart/form-data)

ПараметрТипНеопходноОпис
file file Да. Изворна говорна аудио датотека.
voice string Да. Идентификатор на глас за излезниот говор
model string Не. Модел: openvoice (стандардно), chatterbox
emotion string Не. Целете емоции: neutral , happy, sad , angry, excited
speed float Не. Прилагодување на брзината. Стандардно: 1. 0. Опсег: 0.5 за 2. 0

Одговор

Ја враќа трансформираната аудио датотека како бинарни податоци.

Аудио алатки

Конечни точки за обработка на звук за подобрување, отстранување на гласот, разделување на стеблото и повеќе.

POST /v1/audio/enhance/

Зајакни го аудио квалитетот: деноизирај, подобруј ја јасноста, супер резолуција.

file fileАудио датотека за подобрување
denoise booleanОвозможи денозирање (стандардно: true)
enhance_clarity booleanЗајакни ја чистотата на говорот (стандардно: true)
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/ Слободен

Анализирај аудио за да откриеш клуч, 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Формат на целта: >m3, wav, flac, >m4a, aac
bitrate integerИзлезна брзина во kbps: 64, 128, 192, 256, 320
sample_rate integerБрзина на проби: 22050, 44100, 48000
channels stringmono или stereo

Гласовен разговор

POST /v1/voice-chat/

Испрати аудио или текст и прими AI одговор со синтетички говор.

Барај тело (multipart/form-data или JSON)

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

Пакетни TTS

POST /v1/tts/batch/

Испрати повеќе текстови за паралелната генерација на TTS. Опционално добивај повратен повик на веб куќи кога сите задачи ќе бидат завршени.

Параметри

ПараметрТипОпис
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringОпцион URL за резултатите од POST кога ќе заврши серијата.

Одговор

Одговорот на 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/

Проверете го статусот на серверот GPU, вчитаните модели и големината на редицата. Не е потребна автентичност. Кеширан 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 Филтрирај по идентитет на моделот (на пример, kokoro)
language string Филтрирај по јазичен код (на пример, en )
gender string Филтрирај по пола: male , ženа, neutral

Одговор

Одговорот на 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

Генерирај синхронизирани субтитри за секоја завршена задача на TTS. Извршува шепотење над аудиото и го враќа SRT или WebVTT. Резултатот е кеширан на дискот, така што вториот повик за истиот uuid е прочитан на диск.

Параметри на пребарување

ПараметрНеопходноОпис
uuidДа.Job UUID се врати од / v1/ tts/ или / v1/ vuice- clone/.
formatНе.< code>srt (стандардно) или vt.
downloadНе.1 за да испратите Content- Disposition: прилог така што прелистувачот зачувува наместо прикажување.
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/

Кажете му на TTS- моторот како да изговара специфични зборови. Зачувани записи автоматски применуваат на секој TTS барање што ќе го направите. 200 на влез на сметка.

Барај тело (POST)

ПараметрТипОпис
wordstringЗбор кој треба да се надмине (на пример GIF, Antropic). Соодветно се совпаѓа.
replacementstringКако да се спелува за моделот (на пример jiff, an THROP ick).
languagestringИзборен ISO код. Празен = се однесува на сите јазици.
case_sensitivebooleanСтандардно < code>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/ повик како објект или низ (видете ги параметрите на крајниот крај на ТТС).

Раскажувач на написи ново

Пуштете само една