API құжаттамасы

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 бонустық символды және премиум модельдерге қол жеткізу үшін тегін тіркелгіні тіркеңіз.

Premium үлгілері мен жоғары жылдамдық шектеулері үшін, аутентификацияны келесідегі Bearer токенімен орындаңыз Authorization айдары.

HTTP айдары
Authorization: Bearer sk-tts-your-api-key-here
API кілтіңізді жасырыңыз. Оны клиенттік кодпен, ашық репозиториялармен немесе журналдармен бөліспеңіз. Тіркелгіңіздің параметрлерінде кілттерді жиі ауыстырып тұрыңыз.

SDK- лар

Ресми 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 50000 таңба

Әрбір жауапта жылдамдық шегінің айдарлары келтіріледі: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредит шығындар

Қызмет Бағасы Бірлік
TTS (Ашық үлгілері: Piper, VITS, MeloTTS) 1000 таңба 1000 таңба үшін
TTS (Стандартты үлгілері: Kokoro, CosyVoice 2, т.б.) 2000 таңба 1000 таңба үшін
TTS (Premium үлгілері: Tortoise, Chatterbox, т. б.) 4000 таңба 1000 таңба үшін
Сөйлемді мәтінге 2000 таңба % 1 секунд
Дыбысты көшіру 4000 таңба 1000 таңба үшін
Дауыс өзгерткішіName 3000 таңба % 1 секунд
Дыбысты жақсарту 2000 таңба % 1 секунд
Дауыс өшіру / Дауысты бөлу 3000- 4000 таңба % 1 секунд
Сөйлеу аудармасыName 5000 таңба % 1 секунд
Дыбыс төңкерісіName 3000 таңба кез келген
Кілтті & BPM іздеу Бос --
Аудио түрлендіргішіName Бос --

Мәтінді сөйлеугеName

POST /v1/tts/

Мәтінді дыбысқа айналдыру. Сұралған пішімдегі аудио файлды қайтарады.

Сұраныстың мазмұны

ПараметрлерТүріНегізгіСипаттамасы
model string Жоқ Модельдің ID-і (мысалы, kokoro, chatterbox, piper). Егер келтірілмесе, сұралған тіл-ді қолдайтын модельді автоматты түрде таңдаймыз — kokoro үшін en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper үшін басқа қолдайтын тілдер (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Иә Сөзге айналдыратын мәтін. Бір сұраныстағы шек: 500 таңба (анонимді), 5000 (ақысыз тіркелгі), 1000000 (ақылы). Ұзын жазулар сервер тарапынан автоматты түрде бөлшектенеді.
voice string Иә Дауыс идентификаторы (бар дауыстарды көрсету үшін /v1/voices/ қолданыңыз)
format string Жоқ Шығыс пішімі: mp3 (әдетті), wav, flac, ogg
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-3131 желтоқсан, 1999
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

Күннің әдетті пішімі < code> mdy ағылшын тілінде және < code> dmy басқа тілдерде; < code> 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 тілді автоматты түрде анықтайды. Name

Сұраныстың мазмұны (multipart/form-data)

ПараметрлерТүріНегізгіСипаттамасы
file file Иә Аудио файл (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Макс. 100 Мб.
model string Жоқ STT үлгісі: whisper (әдетті), faster-whisper, sensevoice
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 секунд ұсынылады). Макс. 20Мб.
text string Иә Клондалған дауыста сөйлетілетін мәтін.
model string Жоқ Клон үлгісі: chatterbox (әдетті), cosyvoice2, gpt-sovits
format string Жоқ Шығыс пішімі: mp3 (әдетті), wav, flac
language string Жоқ Мақсатты тілдің коды. Таңдалған үлгі қолдауы тиіс.

Жауап

Аудио файлды TTS аяқтау нүктесімен сәйкесті бинарлық деректер түрінде қайтарады.

Дауыс өзгерткішіName

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

Жауап

Аударылған аудио файлды бинарлық деректер түрінде қайтарады.

Сөйлеу аудармасыName

POST /v1/speech-translate/

Аудио сөздерді бір тілден екіншісіне аудару. Бір ғана шақыру арқылы сөйлеуден мәтінге, аудармадан мәтінге аударуды біріктіреді. Name

Сұраныстың мазмұны (multipart/form-data)

ПараметрлерТүріНегізгіСипаттамасы
file file Иә Аудио файлдың бастапқы тіліндегісі. Max 100Мб.
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
}

Сөйлеуден сөйлеугеName

POST /v1/speech-to-speech/

Сөздің стилін, эмоциясын, мазмұнын сақтап, сөйлеу стилін өзгерту. Тонын, темпін, интонациясын өзгерту үшін пайдалы.

Сұраныстың мазмұны (multipart/form-data)

ПараметрлерТүріНегізгіСипаттамасы
file file Иә Бастапқы дыбыс файлы. Max 50Мб.
voice string Иә Шығыс дыбыс үшін аудио ID
model string Жоқ Үлгі: openvoice (әдетті), chatterbox
emotion string Жоқ Мақсатты эмоция: бейтарап, жақсы, қайғылы, көңілді, көңілді
speed float Жоқ Жылдамдығын баптау. Әдетті: 1. 0. Ауқымы: 0. 5 - 2. 0

Жауап

Аударылған аудио файлды бинарлық деректер түрінде қайтарады.

Дыбыс құрал- жабдықтарыName

Аудио өңдеуді жақсарту, дауысты өшіру, дыбыстарды бөлу және т.б. үшін қолданылатын аяқтау нүктелері.

POST /v1/audio/enhance/

Аудио сапасын жақсарту: шуды жою, анықтығын жақсарту, жоғары ажыратымдылық.

file fileАртықшылығы бар аудио файл
denoise booleanШуды азайту рұқсат етілсін (әдетте: true)
enhance_clarity booleanСөйлеу анықтығын жақсарту (әдеттісі: true)
super_resolution booleanДыбыс сапасын жақсарту (әдеттісі: false)
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Мақсатты пішім: mp3, wav, flac, ogg, m4a, aac
bitrate integerШығыс бит легі (кб/ сек): 64, 128, 192, 256, 320
sample_rate integerДисплей жиілігі: 22050, 44100, 48000
channels stringmono немесе stereo

Дыбыс төңкерісіName

POST /v1/voice-chat/

Аудио немесе мәтін жіберіп, синтетикалық сөйлеу арқылы ДЖ жауап алу.

Сұраныстың мазмұны (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
}

TTS пакеті

POST /v1/tts/batch/

Бірнеше мәтіндерді қатарлас TTS құру үшін жіберу. Барлық тапсырмалар орындалғанда webhook- тың қайтару шақыруын қабылдау.

Параметрлер

ПараметрлерТүріСипаттамасы
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringБатты орындау аяқтағанда POST нәтижесінің URL- і.

Жауап

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 Тіл коды бойынша сүзгілеу (мысалы, en)
gender string Жынысына қарай сүзгілеу: male, female, 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

Тіл- жазу тапсырмасының кез келген орындалғаны үшін қадамдастыру субтитрлерін құру. Аудио арқылы Whisper туралауын орындап, SRT не WebVTT қайтарады. Нәтижесі дискіге кэштеледі, сондықтан осы uuid үшін екінші шақыру дискіден оқылады.

Сұраныстың параметрлері

ПараметрлерНегізгіСипаттамасы
uuidИәТапсырманың UUID-і /v1/tts/ немесе /v1/voice-clone/ арқылы қайтарылды.
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

Таным сөздігіName жаңа

GET POST DELETE /api/v1/pronunciations/

Тіл- дыбыс аудару тетігіне белгілі сөздерді қалай дыбыстайтынын хабарлау. Сақталған жазулар әрбір тіл- дыбыс аудару сұранысына автоматты түрде қолданылады. Тіркелгідегі жазулар саны 200- ге шектеледі.

Сұраныстың мазмұны (POST)

ПараметрлерТүріСипаттамасы
wordstringӨшіруге болатын сөз (мысалы GIF, Anthropic). Сөз шекарасы сәйкес келді.
replacementstringМодель үшін оның қалай жазылуы керек (мысалы jiff, ann THROP ick).
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-..."

Сіз сондай- ақ оларды сақтамай, сұраныс бойынша ауыстырғыштарды өткізе аласыз — кез келген /v1/tts/ шақыруында pronunciations объекті немесе жиын ретінде қоса аласыз (TTS endpoint параметрлерін қараңыз).

Мақала әңгімелеушісіComment жаңа

Бірнеше < code>< script> тегін кез келген мақала бетіне тастасаңыз, келушілер бір рет шерткенде бетті баяндайтын оқығыш панелін көреді. Мақаланың мазмұнын автоматты түрде анықтайды, өзінің дауысын / үлгісін / орнын / акцентін таңдай алады.

HTML
<script src="https://tts.ai/narrator.js"
    data-pk="pk-tts-your-publishable-key"
    data-voice="af_bella"
    data-model="kokoro"
    data-extract="auto"
    data-position="bottom"
    data-color="#e60000"
    data-locale="en"></script>

Параметрлері

ПараметрлерСипаттамасы
data-pkЖарияланатын кілт (pk-tts-…). Домен шектеулері allowed_domains өрісі арқылы қолданылады.
data-voiceДыбыс ID. Әдетті af_bella.
data-modelТДС үлгісінің ID-і. Әдетті kokoro.
data-extract< code> auto (әдетті) — article/ main/. post- content/. entry- content таңдағыштарын қолданады, ең тығыз абзац топтарына қайта оралады. Немесе CSS таңдағышын арнаулы элементке бағыттайды.
data-positionbottom (әдетті) немесе top.
data-colorАкцент түсі (CSS- тің кез келген түсі). Әдетті #e60000.
data-min-chars / data-max-charsМақала саны ең аз таңбадан (әдетте 200) артық болса, жолды тастап кету. Енгізу саны ең көп таңбадан (әдетте 50, 000) артық болса, жолды тастап кету.

GitHub-тағы көздері:

Тіркеу батырмасының бөлшегіName

Бағана- стильдегі ендіру. < code>< script тегінің жанында көрсетіледі және батырмамен қысқа фрагменті ойнатылады. Жоғарғыдағы мақала баяндауышы (автоматты түрде бетті қамтитын жолды енгізіп, мақаланың толық мазмұнын баяндайтын) түрінен өзгеше.

HTML
<script src="https://tts.ai/widget.js"
    data-voice="af_bella"
    data-model="kokoro"
    data-style="full"
    data-theme="light"></script>

Сақталған дауыстар (қалыпты клондар)

Аудио сілтемені бір рет жүктеп, тұрақты voice_id алу, содан кейін әрбір шақыру кезінде аудионы қайта жүктеп берудің орнына TTS сұраныстарында осы id-ке сілтеме жасау. Көп көлемді интеграциялар үшін өте қолайлы.

Бағасы: Жүктеу тегін (күндік жалдау жоқ, слот шектеуі жоқ). Жүктеу құны: бір дауысқа бір реттік 500 таңба. Қолдану құны: әрбір сақталған дауысты сілтеме ететін ТДС генерациясына +50 таңба қосылады, қалыпты генерация құнына қоса. Қазір қажеті жоқ дауыстарды архивтеп, оларды бос күйінде ұстап тұрыңыз; кез келген уақытта қайта белсендіріңіз. Екі де тегін API шақыру.

Дыбысты жүктеп беру

POST https://tts.ai/api/v1/user-voices/ Аутентификация қажет

Көпбөлік пішін. Өрістер: файл (міндетті, 5-30с аудио), атау (міндетті), тіл (міндетті емес, әдетті en), үлгі (міндетті емес — zh/ja/ko үшін cosyvoice2, ал басқа жағдайда openvoice автоматты түрде таңдалады), consent_confirmed (міндетті, кез келген мәні дұрыс).

curl -X POST https://tts.ai/api/v1/user-voices/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@reference.wav" \
  -F "name=My Narrator" \
  -F "language=en" \
  -F "consent_confirmed=true"

# Response:
{
  "public_id": "uv_a1b2c3d4e5f6",
  "id": 42,
  "name": "My Narrator",
  "model_name": "openvoice",
  "language": "en",
  "reference_audio_url": "https://tts.ai/media/user-voices/....wav",
  "storage_status": "active",
  "created_at": "2026-04-17T03:45:00+00:00"
}

Тіл- дыбыс аудару жүйесінде сақталған дыбыс қолданылсын

POST /api/v1/tts/ (ЕСКЕРТУ: веб VPS хост, api.tts.ai емес) user_voice_id көмегімен. Біз сақталған аудио мен маршрутты клондау конвейеріне жүктейміз.

curl -X POST https://tts.ai/api/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'

# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.

Тізім / Өшіру

GET    https://tts.ai/api/v1/user-voices/           # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6

Архивтеу / қайта белсендіру (бос)

Архивтегі дыбыстар тіркелгіңізде қалады, бірақ TTS- те қолданылмайды. Бұл бос тұрған пайдаланушыларға пайдалы, сондықтан тізіміңіз таза қалады.

POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/

Код мысалдары

Мәтінді сөйлеугеName

Python - сұранысStencils
import requests

API_KEY = "sk-tts-your-key"

# Text to Speech
response = requests.post(
    "https://api.tts.ai/v1/tts/",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "kokoro",
        "text": "Hello from TTS.ai!",
        "voice": "af_bella",
        "format": "mp3"
    }
)

with open("output.mp3", "wb") as f:
    f.write(response.content)

print(f"Credits used: {response.headers.get('X-Credits-Used')}")

Сөйлемді мәтінге

Python - сұранысStencils
# Speech to Text
with open("recording.mp3", "rb") as f:
    response = requests.post(
        "https://api.tts.ai/v1/stt/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f},
        data={"model": "faster-whisper", "timestamps": "true"}
    )

result = response.json()
print(result["text"])

Дыбысты көшіру

Python - сұранысStencils
# Voice Cloning
with open("reference.wav", "rb") as ref:
    response = requests.post(
        "https://api.tts.ai/v1/tts/clone/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"reference_audio": ref},
        data={
            "text": "This speech uses a cloned voice.",
            "model": "chatterbox"
        }
    )

with open("cloned_output.mp3", "wb") as f:
    f.write(response.content)

Мәтінді сөйлеугеName

JavaScript - алуStencils
const API_KEY = 'sk-tts-your-key';

// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'kokoro',
    text: 'Hello from TTS.ai!',
    voice: 'af_bella',
    format: 'mp3'
  })
});

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

Сөйлемді мәтінге

JavaScript - алуStencils
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');

const response = await fetch('https://api.tts.ai/v1/stt/', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${API_KEY}` },
  body: formData
});

const result = await response.json();
console.log(result.text);

Мәтінді сөйлеугеName

cURL
# Text to Speech
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!","voice":"af_bella","format":"mp3"}' \
  -o output.mp3

Сөйлемді мәтінге

cURL
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@recording.mp3" \
  -F "model=faster-whisper" \
  -F "timestamps=true"

Дыбысты көшіру

cURL
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "reference_audio=@reference.wav" \
  -F "text=This uses a cloned voice." \
  -F "model=chatterbox" \
  -o cloned.mp3

Дыбысты жақсарту

cURL
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@noisy_audio.mp3" \
  -F "denoise=true" \
  -F "enhance_clarity=true" \
  -o enhanced.mp3

Қате кодтары

Барлық қателер үшін JSON жауап қайтарылады error өрісі.

Қатеге жауап пішімі
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP күй- жайыҚате кодыСипаттамасы
400 bad_request Сұраныстың параметрлері дұрыс емес. Егжей- тегжейін қате туралы хабарламадан қараңыз.
401 unauthorized API кілті жоқ не жарамсыз.
402 insufficient_credits Таңбалар жеткіліксіз. / pricing / дегеннен артық сатып алыңыз.
403 forbidden Сізде бұл ресурсқа қатынау рұқсаты жоқ (мысалы, басқа пайдаланушының тапсырмасын сұрау). API қатынау әрбір жоспарға кіреді.
404 not_found Модель не дауыс табылмады.
413 file_too_large Жүктелген файл өлшемі шектен шықты.
429 rate_limited Сұраныс тым көп. Жиілік шегінің айдарларын тексеріңіз.
500 internal_error Сервер қатесі. Кейін қайталап көріңіз.
503 model_loading Модель жүктелді. Кейін қайталап көріңіз.

Webhook- тар

Ұзақ уақытқа созылған тапсырмалар үшін (тұқымды бөлу, пакетті TTS), webhook_ url параметрін келтіре аласыз. Тапсырма біткен соң, нәтижесін Сіздің URL- іңізге POST етіп жібереміз.

Webhook жүктемесі
{
  "event": "task.completed",
  "task_id": "task_abc123",
  "status": "success",
  "result_url": "https://api.tts.ai/v1/results/task_abc123",
  "credits_used": 12,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:45Z"
}
Webhook нәтижелері аяқталуынан кейін 24 сағат бойы жүктеп алу үшін қолжетімді. Оны дереу жүктеп алыңыз.

Құруға дайын ба?

API кілтіңізді алып, TTS.ai-ды қолданбаңызға біріктіруге бастаңыз.