Документация

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 сорауларына аутентификация кирәк 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 тизлек чикләре планга карап үзгәрә:

План Сораулар/минут Берьюлы Макс. текст озынлыгы
Профиль 60 5 5000 гә якын төре билгеле.
Идарә итү 300 20 50 000 сүз

Һәр җавапта тизлек чикләүләре башлыклары кертелә: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредит бәясе

Хезмәт Төзелеш Берлек
TTS (халыкара модельләр: Piper, VITS, MeloTTS) 1 кредит 1000 символ өчен
РФ су реестры мәгълүматлары: Кострома-2 (Кострома-2). 2 гыйнвар 1000 символ өчен
РФ су реестры мәгълүматлары: Чатыр-Яха (Чатыр-Яха, Чатыр-Яха). 4 нче бит 1000 символ өчен
Сүздән тексткаComment 2 гыйнвар аудио минутына
Сүзләрне клонлау 4 нче бит 1000 символ өчен
Тел үзгәрткеч 3 нче бит аудио минутына
Аудио яхшырту 2 гыйнвар аудио минутына
Башкорт Википедиясе – Википедиянең башкорт бүлеге. 3-4 нче битләр аудио минутына
Сөйләү тәрҗемәсе 5 нче бит аудио минутына
Тел чаты 3 нче бит әйләнә өчен
Клавиатураны эзләү Бушлай --
Аудио әйләндергеч Бушлай --

Тексттан сөйләмгәComment

POST /v1/tts/

Мәкаләне сөйләм аудиосына әйләндерә. Соралган форматтагы аудио файлны кайтара.

Талапның эчке өлеше

ПараметрларТипТаләп ителәСүзтезмә
model string Әйе Модель идентификаторы (мәсәлән, 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 Юк Тел коды (мәсәлән, ru, ru). Юк икән, автоматик рәвештә ачыклана.
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

Сүздән тексткаComment

POST /v1/stt/

Аудионы текстка күчерү. 99 телне автоматик ачыклау белән яклый.

Талапның эчке өлеше (multipart/form-data)

ПараметрларТипТаләп ителәСүзтезмә
file file Әйе Аудио файл (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Макс. 100 МБ.
model string Юк STT моделе: шыбыр (стандарт), шыбыр-шыбыр, сәнгатьле тавыш
language string Юк РФ су реестры мәгълүматлары: Автодорожная (Автодорожная).
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 ахыры белән бертигез.

Тел үзгәрткеч

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

Җавап

Ияртелгән аудиофайлны бинар мәгълүмат буларак кайтара.

Сөйләү тәрҗемәсе

POST /v1/speech-translate/

Сүзләшкән аудионы бер телдән икенчесенә тәрҗемә итегез. Сүзләүдән-матнга, тәрҗемә итүдән һәм тексттан-сөйләүгә бер чакыруда берләштерә.

Талапның эчке өлеше (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
}

Сүздән сүзгәComment

POST /v1/speech-to-speech/

Сүзләү стилен, хис-кичерешләрне яки сөйләүне үзгәртү, эчтәлекне саклап калу. Тонны, темпны һәм белдерүне көйләү өчен файдалы.

Талапның эчке өлеше (multipart/form-data)

ПараметрларТипТаләп ителәСүзтезмә
file file Әйе Сүзләү аудиофайлының чыганагы. Макс. 50 МБ.
voice string Әйе Сүз чыгару өчен максатлы тавыш идентификаторы
model string Юк Модель: openvoice (стандарт), чатербокс
emotion string Юк
speed float Юк Тизлекне көйләү. Әдәттә: 1.0. Диапазон: 0.5 дан 2.0 га кадәр

Җавап

Трансформацияләнгән аудиофайлны бинар мәгълүмат буларак кайтара.

Аудио җиһазлары

Аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны, аудио- һәм видеоязмаларны эшкәртү.

POST /v1/audio/enhance/

Әдәбият фәннәре кандидаты, доцент, Татарстанның атказанган сәнгать эшлеклесе.

file fileБоерылган аудиофайл
denoise booleanШомлылыкны бетерүне активлаштыру (өстәмә: дөрес)
enhance_clarity booleanСүзләүнең ачыклыгын яхшырту (өстәмә: дөрес)
super_resolution booleanАудио сыйфатын яхшырту (өстәмә: ялган)
strength integer1-3 (яшел, уртача, көчле). Әүвәлге: 2
POST /v1/audio/separate/

Сөйләшүчеләрнең күпчелеге — татарлар, яки башкортлар, яки чуашлар.

file fileАерыр өчен аудиофайл
model stringdemucs (default:mm) яки 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Почта индексы — 422050, ГАТОБК коды — 802048.
channels stringmono яки stereo

Тел чаты

POST /v1/voice-chat/

Аудио яки текстны җибәрегез һәм синтетик сөйләм белән AI җавапны алыгыз.

Талапның эчке өлеше (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
}

Модельләр исемлеге

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 Тел коды буенча фильтрлау (мәсәлән, ru)
gender string Гендер буенча фильтрлау: ир, хатын, нейтраль

Җавап

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
}

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

Тексттан сөйләмгәComment

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')}")

Сүздән тексткаComment

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)

Тексттан сөйләмгәComment

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

Сүздән тексткаComment

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

Тексттан сөйләмгәComment

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

Сүздән тексткаComment

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 торышыКата кодыСүзтезмә
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 Модель йөкләнә. Берничә секундтан кабатлап карагыз.

Веб-хоклар

Озак вакытка сузылган бурычлар өчен (стемманы аеру, пакетлы 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-ны сезнең кушымталарга интеграцияләүне башлагыз.