API документација
Интегрирај TTS.ai во вашите апликации со нашиот REST API. Компатибилен со OpenAI формат за лесна миграција.
Преглед
API за TTS.ai овозможува програмски пристап до сите можности на платформата: синтеза од текст до говор, транскрипција од говор до текст, клонирање на глас, аудио подобрување и други.
API- клуч
Земи си го API клучот од Поставувања за сметката. Достапни за про и Ентерпрајз планови.
Основен URL
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
Официјалните 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")
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 | 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 | Слободен | -- |
| Аудио- претворач | Слободен | -- |
Текст за говор
Конвертирајте го текстот во говорно аудио. Враќа аудио датотека во бараниот формат.
Барај тело
| Параметр | Тип | Неопходно | Опис |
|---|---|---|---|
| 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 -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-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."
}Одговор
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.Целосен пример
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.
Говор кон текст
Препиши звук на текст. Подржува 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 |
Одговор
{
"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 секунди препорачува). Макс. 20MB. |
| text | string | Да. | Текст за зборување со клонираниот глас. |
| model | string | Не. | Модел на клонирање: chatterbox (стандардно), cosyvoice2, gpt-sovits |
| format | string | Не. | Формат на излез: >mp3 (стандардно), wav, flac |
| language | string | Не. | Кодот за целен јазик. Мора да биде поддржан од избраниот модел. |
Одговор
Ја враќа аудио датотеката како бинарни податоци, исто како и крајната точка на TTS.
Менувач на глас
Конвертирај звук во звук како друг глас. Качи го изворниот звук и одбери целен глас.
Барај тело (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 -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 | Да. | Изворна аудио датотека на оригиналниот јазик. Макс. 100MB. |
| target_language | string | Да. | Код на целта (на пример, es , fr, de, , |
| 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
}
Говор на говор
Преобрази го стилот на говор, емоциите или испораката додека ја одржуваш содржината.
Барај тело (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 |
Одговор
Ја враќа трансформираната аудио датотека како бинарни податоци.
Аудио алатки
Конечни точки за обработка на звук за подобрување, отстранување на гласот, разделување на стеблото и повеќе.
Зајакни го аудио квалитетот: деноизирај, подобруј ја јасноста, супер резолуција.
| file file | Аудио датотека за подобрување |
| denoise boolean | Овозможи денозирање (стандардно: true) |
| enhance_clarity boolean | Зајакни ја чистотата на говорот (стандардно: true) |
| super_resolution boolean | Стандарден аудио квалитет (стандардно: неточен) |
| strength integer | 1-3 (светло, средно, силно). Стандардно: 2 |
Одделете ги гласовите од инструментите (вокалното отстранување) или разделете ги на стебла.
| file file | Аудио датотека за раздвојување |
| model string | demucs (стандардно) или 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 | Формат на целта: >m3, wav, flac, |
| bitrate integer | Излезна брзина во kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Брзина на проби: 22050, 44100, 48000 |
| channels string | mono или stereo |
Гласовен разговор
Испрати аудио или текст и прими 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 | Не. | Продолжи со постоечкиот разговор |
Одговор
{
"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
Испрати повеќе текстови за паралелната генерација на TTS. Опционално добивај повратен повик на веб куќи кога сите задачи ќе бидат завршени.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Опцион URL за резултатите од POST кога ќе заврши серијата. |
Одговор
{
"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
}
Здравствена проверка
Проверете го статусот на серверот GPU, вчитаните модели и големината на редицата. Не е потребна автентичност. Кеширан 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 | Филтрирај по идентитет на моделот (на пример, kokoro) |
| language | string | Филтрирај по јазичен код (на пример, en ) |
| gender | string | Филтрирај по пола: male , ženа, 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
}
Субтитри (SRT / VTT) ново
Генерирај синхронизирани субтитри за секоја завршена задача на TTS. Извршува шепотење над аудиото и го враќа SRT или WebVTT. Резултатот е кеширан на дискот, така што вториот повик за истиот uuid е прочитан на диск.
Параметри на пребарување
| Параметр | Неопходно | Опис |
|---|---|---|
| uuid | Да. | Job UUID се врати од / v1/ tts/ или / v1/ vuice- clone/. |
| format | Не. | < code>srt (стандардно) или vt. |
| download | Не. | 1 за да испратите Content- Disposition: прилог така што прелистувачот зачувува наместо прикажување. |
| language | Не. | Совет на моделот за порамнување (автоматски детектирано ако изоставено). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Речник за изговор ново
Кажете му на TTS- моторот како да изговара специфични зборови. Зачувани записи автоматски применуваат на секој TTS барање што ќе го направите. 200 на влез на сметка.
Барај тело (POST)
| Параметр | Тип | Опис |
|---|---|---|
| word | string | Збор кој треба да се надмине (на пример GIF, Antropic). Соодветно се совпаѓа. |
| replacement | string | Како да се спелува за моделот (на пример jiff, an THROP ick). |
| language | string | Изборен ISO код. Празен = се однесува на сите јазици. |
| case_sensitive | boolean | Стандардно < code>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-..."
Исто така, можете да подадете премостувања по барање без да ги зачувате — вклучете изговори на било кој / v1/tts/ повик како објект или низ (видете ги параметрите на крајниот крај на ТТС).
Раскажувач на написи ново
Пуштете само една