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

Интегрирайте TTS.ai във вашите приложения с нашия REST API. OpenAI-съответстващ формат за лесна миграция.

РЕЗУЛЬТАТНО АПИ Компатибилен 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 искания изискват автентичност чрез Noiser tokena в 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 (Премиеви модели: Tortoise, Chatterbox и др.) 4 кредита на 1000 символа
Изказване към текст 2 кредита за минута от звука
Гласово клониране 4 кредита на 1000 символа
Промяна на глас 3 кредита за минута от звука
Повишаване на звука 2 кредита за минута от звука
Отстраняване на гласове / разделяне на стем 3-4 кредити за минута от звука
Превод на речта 5 кредита за минута от звука
Гласов разговор 3 кредита на завъртане
Ключово търсене & BPM Безплатен --
Конвертор на аудио Безплатен --

Текст към реч

POST /v1/tts/

Преобразуване на текста в речен звук. Връща аудио файл в поискания формат.

Тяло на искане

ПараметрТипЗадължителноОписание
model string Да. ID модел (напр. kokoro, chatterbox , piper)
text string Да. Текст за преобразуване в реч (макс. 5000 символа за Pro, 50 000 за Enterprise)
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 (по подразбиране), , по-бързо-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 Да. Целевият гласов ID за преобразуване в (използвайте /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

Отговор

Връща преобразувания аудио файл като бинарни данни.

Превод на речта

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/

Трансформиране на стила на речта, емоции или доставка, като поддържа съдържанието. Полезно за регулиране на тона, пейсинг, и изразителност.

Тяло на искане (multipart/form-data)

ПараметрТипЗадължителноОписание
file file Да. Източник на звуков файл.
voice string Да. Целева идентификация на гласа за изходната реч
model string Не. Модел: openvoice (по подразбиране), chatterbox
emotion string Не. Целева емоция: neutral , hady, sad , angry, excited
speed float Не. Регулиране на скоростта. По подразбиране: 1.0. Обхват: 0.5 за 2.0

Отговор

Връща трансформирания аудио файл като бинарни данни.

Звукови инструменти

Звукова обработка крайни точки за повишаване, отстраняване на глас, разделяне на стволови стебла и други.

POST /v1/audio/enhance/

Повишаване на качеството на звука: деноазиране, подобряване на яснотата, супер резолюция.

file fileАудио файл за подобряване
denoise booleanВключване на деноизиране (по подразбиране: true)
enhance_clarity booleanПовишаване на яснотата на речта (по подразбиране: вярно)
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 stringФормат на целта: >m3, wav, flac, >m4a, aac
bitrate integerИзходна битова скорост в кб/ч: 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 Филтрирайте по модел ID (напр. kokoro)
language string Филтрирайте по езиков код (напр. en )
gender string Филтрирайте по пола: male , жена , 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
  }
}
Състояние на HTTPError 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. Когато задачата завърши, ние ще POST резултата към вашия URL.

Уебхук Payload
{
  "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 в приложенията си.