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

REST API көмегімен TTS.ai-ді қолданбаңызға біріктіріңіз. OpenAI-мен үйлесімді форматы оңай көшіруге мүмкіндік береді.

REST API OpenAI үйлесімді JSON жауаптары Аударуды қолдау

Түсініктеме

The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.

API кілті

API кілтін мынадан алыңыз Тіркелгінің параметрлері. Профессор, профессор, профессор, профессор, профессор.

Негізгі URL

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

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

Жеткізушінің токені арқылы Authorization айдары

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

Барлық API сұраныстары келесідегі Bearer токен арқылы аутентификациялауды талап етеді Authorization айдары.

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

Негізгі URL

Негізгі URL: https://api.tts.ai/v1/

Барлық аяқтау нүктелері осы негізгі URL- ке қатысты. Мысалы, TTS аяқтау нүктесі:

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

Жылдамдық шегі

API жылдамдық шегі жоспарына қарай өзгереді:

Пішін Сұраныстар/ мин Concurrent Мәтіннің макс. ұзындығы
Профиль 60 5 5000 таңба
Кәсіпорын 300 20 50, 000 таңба

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

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

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

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

POST /v1/tts/

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

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

ПараметрлерТүріНегізгіСипаттамасы
model string Иә Модельдің ID-і (мысалы, kokoro, chatterbox, piper)
text string Иә Сөзге айналдыратын мәтін (Pro үшін максимум 5000 таңба, Enterprise үшін 50000 таңба)
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

Жауап

Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).

Жауап айдарлары
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 Иә Аудио файлдың түпнұсқасы. Максимум 100 Мб.
target_language string Иә Мақсатты тілдің коды (мысалы, es, fr, de, ja)
voice string Жоқ Аударылған шығыс үшін дыбыс. Ескертілмесе, автоматты түрде таңдалады.
preserve_voice boolean Жоқ Бастапқы дыбыс шығарғышын сақтауға тырысу

Жауап

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 Иә Шығыс дыбыстың мақсатты дыбыс идентификаторы
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 fileAudio file to analyze
Жауап
{
  "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 Жоқ ДК- ның өзінің жүйелік сұрауыName
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
}

Үлгілер тізімі

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 credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP күй- жайыError CodeСипаттамасы
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-ді қолданбаңызға енгізуді бастаңыз.