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

Интегрирайте TTS.ai в приложенията си с нашия REST API. OpenAI-съответстващ формат за лесна миграция.

РЕЗУЛЬТАТНО АПИ Компатибилен OpenAI Отговори на JSON Поддръжка за ускоряване

Преглед

TTS.ai API осигурява програмен достъп до всички функции на платформата: синтез от текст към език, транскрипция от говор до текст, клониране на глас, аудио подобрение и други. API използва стандартни REST конвенции с JSON искане/отговаряне на тела.

API ключ

Вземи си API ключ от Настройки на сметката. На разположение на "Про" и "Ентърпрайз" планове.

Основен URL

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

Овт

Носител на носителя чрез Authorization заглавие

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

Безплатно ниво — не се изисква ключ. Анонимни ПОСТ на /v1/tts/ работят без никаква автентизация, до 5000 символа на ден за IP, използвайки някое от нашите безплатни модели (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 символа на 1000 символа
TTS (стандартни модели: Kokoro, CosyVoice 2, и др.) 2000 символа на 1000 символа
TTS (Премиеви модели: Tortoise, Chatterbox и др.) 4000 символа на 1000 символа
Изказване към текст 2000 символа за минута от звука
Гласово клониране 4000 символа на 1000 символа
Промяна на глас 3 кредита за минута от звука
Повишаване на звука 2000 символа за минута от звука
Отстраняване на гласове / разделяне на стем 3000-4 000 символа за минута от звука
Превод на речта 5000 символа за минута от звука
Гласов разговор 3 кредита на завъртане
Ключово търсене & BPM Безплатен --
Конвертор на аудио Безплатен --

Текст към реч

POST /v1/tts/

Преобразуване на текста в речен звук. Връща аудио файл в поискания формат.

Тяло на искане

ПараметрТипЗадължителноОписание
model string Не. Модел ID (напр., kokoro, chatterbox, piper. Ако пропуснат, ние автоматично избираме модел, който поддържа искания код <>jeзик -- 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 chars (анонимна), 5000 (безплатна сметка), 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 символа). напр. \
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 (по подразбиране), , по-бързо-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 Да. Целевият гласов ID за преобразуване в (използвайте /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 Да. Източен аудио файл на оригиналния език. Макс. 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 , hady, sad , angry, excited
speed float Не. Регулиране на скоростта. По подразбиране: 1.0. Обхват: 0.5 за 2.0

Отговор

Връща трансформирания аудио файл като бинарни данни.

Звукови инструменти

Звукова обработка крайни точки за повишаване, отстраняване на глас, разделяне на стволови стебла и други.

POST /v1/audio/enhance/

Повишаване на качеството на звука: деноазиране, подобряване на яснотата, супер резолюция.

file fileАудио файл за подобряване
denoise booleanВключване на деноизиране (по подразбиране: true)
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/ Безплатен

Анализиране на звука за откриване на ключа, 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Изходна битова скорост в кб/ч: 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
}

Парт. ТТС

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, заредените модели и размера на опашката. Няма нужда от автентичност.

Отговор

Отговор на 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 Филтрирайте по езиков код (напр. en )
gender string Филтрирайте по пола: male , жена , 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/voice-klone/.
formatНе.srt (по подразбиране) или vtt.
downloadНе.1 за да изпратите Content- Disposition: atachment, така че браузърът ще спести вместо дисплеи.
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По подразбиране 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 или обект или масив (вж. точките за крайния край на ТТС).

Член Разказвач нов

Свали един