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

Интегрирајте го TTS.ai во вашите апликации со нашиот REST API. Компатибилен со OpenAI формат за лесна миграција.

РЕЗУЛЬТАТНА АПИ OpenAI компатибилен ЈСОН одговори Поддршка за пренесување

Преглед

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 барања бараат автентичност преку носител во Authorization заглавје.

HTTP- заглавие
Authorization: Bearer sk-tts-your-api-key-here
Чувај ја тајната на клучот од API. Не го споделувај во кодот на клиентот, јавните ризници или дневници. Редовно ротирајте ги клучевите од поставувањата на вашата сметка.

Основен URL

Основен URL: https://api.tts.ai/v1/

All endpoints are relative to this base URL. For example, the TTS endpoint is:

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

Ограничувања на стапката

API rate limits vary by plan:

План Барања/мин. Concurrent Максимална должина на текстот
Проф. 60 5 5.000 обележја
Ентерпрајз 300 20 50.000 обележја

Заглавјата на ограничувањето на брзината се вклучени во секој одговор: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредитни трошоци

Сервис Цена Единица
TTS (Безплатни модели: Piper, VITS, Melotts) 1 кредит на 1.000 знаци
TTS (Стандардни модели: Kokoro, CosyVoice 2, итн.) 2 кредити на 1.000 знаци
TTS (Премиумски модели: Тортоаз, чаттербокс итн.) 4 кредити на 1.000 знаци
Говор кон текст 2 кредити во минута на аудио
Гласовно клонирање 4 кредити на 1.000 знаци
Менувач на глас 3 кредити во минута на аудио
Звучно подобрување 2 кредити во минута на аудио
Отстранување на гласови / разделување 3-4 кредити во минута на аудио
Преведување на говор 5 кредити во минута на аудио
Гласовен разговор 3 кредити на свртување
Пронаоѓач на клучеви и BPM Слободен --
Аудио- претворач Слободен --

Текст за говор

POST /v1/tts/

Конвертирајте го текстот во говорно аудио. Враќа аудио датотека во бараниот формат.

Барај тело

ПараметрТипНеопходноОпис
model string Да. Ид. на моделот (на пример, kokoro, chatterbox, piper)
text string Да. Текст за претворање во говор (максимум 5.000 знакови за Про, 50.000 за Ентерпрајз)
voice string Да. Гласовниот ID (користи /v1/voices/ за да ги наведеш достапните гласови)
format string Не. Формат на излез: >mp3 (стандардно), wav, flac,
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 јазици со автоматска детекција.

Барај тело (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

Одговор

Одговорот на 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 Да. Циљна идентификација на гласот во која ќе се конвертираат (користи /v1/voices/ за да набројат достапни гласови)
model string Не. Модел на претворање на глас: openvoice (стандардно), knn- vc
format string Не. Формат на излез: < code>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 Не. Обиди се да го зачуваш оригиналниот говорник

Одговор

Одговорот на 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/

Transform speech style, emotion, or delivery while keeping the content. Useful for adjusting tone, pacing, and expressiveness.

Барај тело (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

Одговор

Ја враќа трансформираната аудио датотека како бинарни податоци.

Аудио алатки

Audio processing endpoints for enhancement, vocal removal, stem splitting, and more.

POST /v1/audio/enhance/

Зајакни го аудио квалитетот: деноизирај, подобруј ја јасноста, супер резолуција.

file fileАудио датотека за подобрување
denoise booleanОвозможи денозирање (стандардно: true)
enhance_clarity booleanЗајакни ја чистотата на говорот (стандардно: true)
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 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 stringTarget format: mp3, wav, flac, ogg, m4a, aac
bitrate integerИзлезна брзина во kbps: 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
}

Модели на листа

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 Филтрирај по идентитет на моделот (на пример, kokoro)
language string Филтрирај по јазичен код (на пример, en )
gender string Филтрирај по пола: male , ženа, 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
}

Примери за кодирање

Текст за говор

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)

Текст за говор

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);

Текст за говор

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 Недоволно кредити.
403 forbidden API пристапот не е достапен во вашиот план.
404 not_found Не е пронајден модел или глас.
413 file_too_large Внесената датотека ја надминува ограничувањето на големината.
429 rate_limited Премногу барања. Проверете ги ограничувањата на стапката.
500 internal_error Грешка на серверот. Обиди се подоцна.
503 model_loading Моделот се вчитува, повторете за неколку секунди.

Веб- куќи

За долготрајни задачи (разделување на стем, пакетна TTS), можете да го дадете параметрот webhook_url. Кога задачата ќе заврши, ќе го ставиме резултатот на вашиот URL.

Веб- заклучок за исплата
{
  "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"
}
Резултатите од веб куќите се достапни за симнување 24 часа по завршувањето. Погрижете се да ги симнете веднаш.

Подготвен си за градење?

Земи си го API клучот и почни да ги интегрираш TTS.ai во твоите апликации.