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 айдары

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

Барлық API сұраныстары келесідегі 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 100, 000 таңба
Про 60 5 100, 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)
text string Иә Мәтінді дыбысқа айналдыру (бір сұраныс үшін 100, 000 таңбаға дейін)
voice string Иә Дауыс идентификаторы (бар дауыстарды көрсету үшін /v1/voices/ қолданыңыз)
format string Жоқ Шығыс пішімі: mp3 (әдетті), wav, flac, ogg
speed float Жоқ Сөйлеу жылдамдығының көбейтіндісі. Әдетте: 1.0. Ауқымы: 0.5 - 2.0
language string Жоқ Тілдің коды (мысалы, en, es). Егер келтірілмесе, автоматты түрде анықталады.
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

Жауап

Аудио файлды сәйкесті Content-Type айдары бар бинарлық деректер ретінде қайтарады (audio/mpeg, audio/wav, т.б.).

Жауап айдарлары
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

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

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_urlstringOptional URL to POST results when batch completes.

Жауап

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
}

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

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

Python - requests
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 - requests
# 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 - requests
# 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 - fetch
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 - fetch
// 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-ды қолданбаңызға біріктіруге бастаңыз.