Senedler

TTS.ai-i öz programmaňyza biziň REST API bilen birleşdiriň. Aňsat göçüm üçin OpenAI-a laýyk format.

REST API OpenAI Uýgunlaşýan JSON jogaplar Akym goldawy

_Gözleg

TTS.ai API ähli platforma aýratynlyklara programmatik elýeterliligi berýär: metinden söze sintez, sözden metine transkripsiýa, ses klonlama, ses güýçlendiriji, we başgalar. API JSON soraş/jogap bedenleri bilen standart REST konwensiýalary ulanýar.

API Ady

Siziň API adyny şundan al Hasabyň konfigurasiýasy. Pro we Enterprise planlarda elýeterli.

Asly URL

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

Auth

Barlaýjy token Authorization başlyk

Tanyşdyrma

Ehli API soraglar şunda bir Berer tokeni arkaly tanyşdyrmagy talap edýär Authorization başlyk.

HTTP Heder
Authorization: Bearer sk-tts-your-api-key-here
API adyny gizlin sakla Ony ulanyjy tarap kody, halk repozytoriýalary, ýa-da ýazgylarda paýlaşmaň. Hasabyňyzyň aňlatmalaryndan açarlary düzenli doňduryň.

SDK

Resmi SDKs TTS.ai-i siziň programmaňyza birikdirmek aňsat edýär. Ikisi hem açyk çeşme we GitHub-da elýeterli.

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

Asly URL

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

Ehli ahtar nokatlary şu esas URL bilen bagly. Meselem, TTS ahtar nokat şudur:

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

_Gün tertibi

API tizligi plandan plana üýtgeýär:

Plan Dilegler/min Bir wagtda Metin Uzunlugy
_Boş 10 2 500 karakter
Başlançy 30 3 100,000 karakter
Pro 60 5 100,000 karakter
Enterprise 300 20 50,000 karakter

Her bir jogapda tizlik çäklendirme başlyglary goşulýar: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Saýlaw

Hyzmat Maliýe Birlik
TTS (Free models: Piper, VITS, MeloTTS) 1,000 karakter her 1000 karakter üçin
TTS (Standard modeller: Kokoro, CosyVoice 2, etc.) 2,000 karakter her 1000 karakter üçin
TTS (Premium modeller: Tortoise, Chatterbox, etc.) 4,000 karakter her 1000 karakter üçin
Speech to Text 2,000 karakter minutda ses
Ses Klonlama 4,000 karakter her 1000 karakter üçin
Ses Saýlawçy 3,000 karakter minutda ses
Ses güýçlendiriji 2,000 karakter minutda ses
Ses Çykar 3,000-4,000 karakter minutda ses
Terjime 5000 karakter minutda ses
Ses gürleşmesi 3,000 karakter her aýlawda
Açarlary Tap _Boş --
Audio Konwerter _Boş --

Metinden Söze

POST /v1/tts/

Metini ses sesine öwür. Ses faýlyny islendik formatda gaýtarýar.

Sorag Bedeni

Parametr_TäzeMugt_Çykar
model string Model ID (m.a. kokoro, chatterbox, piper)
text string Metinden söze öwürmekçi (her bir soragda ençeme 100,000 karakter)
voice string Ses ID (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac, ogg
speed float _Ýok Sözleme tizligi faýalçy. Öň bellenen: 1.0. Aralyk: 0.5 dan 2.0
language string _Ýok Dil kody (m.a. en, es). Eger goýberilmese otomatik tapylar.
stream boolean _Ýok Ýüklenen jogapy mümkin et. Öň bellenen: false

Mesele soragy

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

Jawa

Ses faýlyny ikilik maglumaty hökmünde Content-Type başlyk bilen gaýtar (audio/mpeg, audio/wav, we ş.m.d.)

Jawa başlyglary
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Speech to Text

POST /v1/stt/

Sesleri metinlere geçir. 99 dili awtomatik tapmak bilen goldaýar.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Ses faýly (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks 100MB.
model string _Ýok STT mody: whisper (öň bellenen), faster-whisper, sensevoice
language string _Ýok Dil kody. auto otomatik tapmak üçin (öň bellenen).
timestamps boolean _Ýok Söz derejeli wagt damgalaryny goş. Öň bellenen: false
diarize boolean _Ýok Sesçi diaryzasiýasyny işe giriz. Öň bellenen: false

Jawa

JSON jogap
{
  "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"
    }
  ]
}

Ses Klonlama

POST /v1/tts/clone/

Klon edilen ses bilen gürleş. Referans audio we metin ýükle.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
reference_audio file Ses ses referensy (10-30 sekunt maslahat berlen). Maks 20MB.
text string Klon ses bilen aýtmak üçin metin.
model string _Ýok Klon mody: chatterbox (öň bellenen), cosyvoice2, gpt-sovits
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac
language string _Ýok Dilin maksat ködi. Saýlanan model tarapyndan goldanylmalydyr.

Jawa

Ses faýlyny ikilik maglumaty hökmünde gaýtar, TTS soň noktasy bilen deň.

Ses Saýlawçy

POST /v1/voice-convert/

Sesleri başga ses ýaly çalşyr. Metin sesi ýükle we maksat sesi saýla.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Metin ses faýly (MP3, WAV, FLAC). Maks 50MB.
target_voice string Öwrediljek ses identifikatory (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
model string _Ýok Ses öwürme modeli: openvoice (öň bellenen), knn-vc
format string _Ýok Çykyş hili: wav (öň bellenen), mp3, flac

Mesele soragy

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

Jawa

Öňki ses faýlyny ikilik maglumaty hökmünde gaýtalaýar.

Terjime

POST /v1/speech-translate/

Sesli audiony bir dilden başga dilde terjime et. Sesden metine, terjimeden we metinden sesli bir çakylykda birleşdir.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Ahyrky ses faýly aňsatlyk bilen okalyp bilner. Maks. 100MB.
target_language string Dil kody (m.a. es, fr, de, ja)
voice string _Ýok Terjime çykdajy üçin ses. Eger goýberilmese otomatik saýlanar.
preserve_voice boolean _Ýok Ozalky sözleýjiniň ses häsiýetlerini sakla

Jawa

JSON jogap
{
  "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
}

Speech to Speech

POST /v1/speech-to-speech/

Sözi, emosiýany ýa-da mazmuny saklaýan wagtynda berjaý et. Tony, tizligi we beýany düzmek üçin peýdaly.

Sorag Bedeni (multipart/form-data)

Parametr_TäzeMugt_Çykar
file file Söz çeşme ses faýly. Maks. 50MB.
voice string Çykyş sözi üçin ses ID-ni saýla
model string _Ýok Model: openvoice (öň bellenen), chatterbox
emotion string _Ýok Target emotion: neutral, happy, sad, angry, excited
speed float _Ýok Tizlik düzedişi. Öň bellenen: 1.0. Aralyk: 0.5 dan 2.0

Jawa

Öňki ses faýlyny ikilik maglumaty hökmünde gaýtarýar.

Ses Esbaplary

Ses işleýşini gowulandyrmak, ses çykarmak, kök bölmek, we başgalar üçin ses işlemek üçin ahtar nokatlary.

POST /v1/audio/enhance/

Ses hilini gowulandyr: gürleşiki aýyr, açgözlügi gowulandyr, süper çözgüt.

file fileBejeriljek ses faýly
denoise booleanSesi aýyrmagy mümkin et (öň bellenen: dogry)
enhance_clarity booleanSesiň aýdyňlygyny ýokarlandyr (öň bellenen: dogry)
super_resolution booleanSes hiliňi ýokarlandyr (öň bellenen: faýl)
strength integer1-3 (ýagly, orta, güýçli). Öň bellenen: 2
POST /v1/audio/separate/

Wokallary instrumentlerden aýr (wokal aýyr) ýa-da olary köklere böl.

file fileAýryljak audio faýly
model stringdemucs (öň bellenen) ýa-da spleeter
stems integerÇyzyklaryň sany: 2, 4, 5, ýa-da 6 (öň bellenen: 2)
format stringÇykyş hili: wav, mp3, flac
POST /v1/audio/dereverb/

Ses ýazgylardan echo we reverb aýyr

file fileIşlemeli ses faýly
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Boş

Alkym, BPM, we wagt nyşanyny tapmak üçin sesleri analiz et

file fileSesi analiz etmek üçin faýl
Jawa
{
  "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/ Boş

Sesleri formatlar arasyna öwür

file fileÖňki ses faýly
format stringHedef format: mp3, wav, flac, ogg, m4a, aac
bitrate integerÇykyş bitrate in kbps: 64, 128, 192, 256, 320
sample_rate integerMysal tizligi:
channels stringmono ýa-da stereo

Ses gürleşmesi

POST /v1/voice-chat/

Awdio ýa-da metin iber we sözi sintezläp AI jogap al.

Sorag Bedeni (multipart/form-data ýa-da JSON)

Parametr_TäzeMugt_Çykar
audio file _Ýok* Ses girdisi (ýa audio ýa text zerur)
text string _Ýok* Metin girişi (ýa audio ýa-da text zerur)
voice string _Ýok AI jogap üçin ses. Öň bellenen: af_bella
tts_model string _Ýok Jawa üçin TTS modeli. Öň bellenen: kokoro
system_prompt string _Ýok AI üçin özboluşly sistem soragy
conversation_id string _Ýok Meşhur gürleşige dowam et

Jawa

JSON jogap
{
  "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/

Paralel TTS emele etmek üçin birnäçe metinleri iber. Eýsem ähli işler tamamlananda bir webhook çakylyk gaýtarygyny al.

Parametrler

Parametr_Täze_Aç
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Jawa

JSON jogap
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

GET /v1/tts/batch/result/?batch_id=abc123 bilen soraň

Ses Eňkaldy

POST /v1/voice-embed/

Referans audiodan ses äpişgesini öňden hasap et. Diňe bir pursatda döremek üçin soňky ses klon isleglerinde embed_id'i ullan.

Parametrler

Parametr_Täze_Aç
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Jawa

JSON jogap
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Saglyk barlagy

GET /v1/health/

GPU serweriň halyny, ýüklenen modelleri we nobat ululygyny barla. Tanyşlyk gerek däl. 30 sekunt üçin keşf edildi.

Jawa

JSON jogap
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Modelleri Çykar

GET /v1/models/

Ehli elýeterli modelleriň bir sanawyny we olaryň ukybyny gaýtarýar.

Jawa

JSON jogap
{
  "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
    }
  ]
}

Sesleri Çykar

GET /v1/voices/

Ehli elýeterli sesleriň bir sanawyny gaýtar, islendik model ýa dil boýunça süzgüçlenipdir.

_Sorag

Parametr_Täze_Çykar
model string Model ID bilen süz (m.a. kokoro)
language string Dil kody bilen süz (m.a. en)
gender string male, female, neutral

Jawa

JSON jogap
{
  "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
}

Kod Meseleleri

Metinden Söze

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

Speech to Text

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"])

Ses Klonlama

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)

Metinden Söze

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

Speech to Text

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

Metinden Söze

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

Speech to Text

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"

Ses Klonlama

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

Ses güýçlendiriji

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

Hata Kody

Ehli hatalar bir JSON jogap bilen dogrylaýar error meýdança

Hata jogap hili
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP HaltyHata Kody_Çykar
400 bad_request Saýlanan parametrler dogry däl. Täzelik üçin hata islegini barlaň.
401 unauthorized Eksik ýa-da ýalňyş API adyny görkez
402 insufficient_credits Yeterli karakter ýok. /pricing/ adresinden has köp alyň.
403 forbidden Siziň planyňyzda API elýeterli däl.
404 not_found Model ýa-da ses tapylmady.
413 file_too_large Faýl ululyk çäkden aşdy.
429 rate_limited Çok talaplar. Tizlik çäklendirme başlyklaryny barlaň.
500 internal_error Serwer hatasy. Soňra ýene synla.
503 model_loading Model ýüklenilýär. Birnäçe sekuntdan soň ýene synla.

Webhooks

Uzak giden iş üçin (stamp bölmek, batch TTS), siz bir webhook_url parametri berip bilersiňiz. iş tamamlananda, biz netijäni URL'iňize POST ederis.

Webhook 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 netijeleri tamamlanandan soň 24 sagat içinde ýüklenmek üçin elýeterlidir. Olary çalt ýükle.

Bina etmäge taýýarmy?

API adyny al we TTS.ai'i öz programleriňe birikdir.