API баримт бичиг

REST API-г ашиглан TTS.ai-г програмдаа нэгтгэх. OpenAI-тай нийцтэй формат нь хялбар шилжилтийг хангадаг.

REST API OpenAI-тэй нийцтэй JSON хариулт Цахилгаан дамжуулах дэмжлэг

Тодорхойлолт

TTS.ai API нь бүх платформын онцлог шинж чанаруудад програм хангамжаар нэвтрэх боломжийг олгодог: текстээс ярианд шилжүүлэх синтез, ярианаас текст рүү хөрвүүлэх, дууны клончлол, аудио сайжруулалт гэх мэт. API нь JSON хүсэлт / хариултын биетэй стандарт REST конвенцийг ашигладаг.

API түлхүүр

Таны API түлхүүрийг эндээс аваарай Тооцооны тохиргоо. Pro болон Enterprise төлөвлөгөөнд ашиглаж болно.

Үндсэн URL

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

Үнэлгээ

Үйлчлүүлэгч Authorization хавтас

Идентификатор

Бүх API хүсэлтүүд нь Bearer token- ээр баталгаажуулахыг шаарддаг Authorization хавтас.

HTTP хавтас
Authorization: Bearer sk-tts-your-api-key-here
API түлхүүрийг нууц байлга. Энэ түлхүүрийг хэрэглэгчийн код, нийтийн нөөцөд, эсвэл тэмдэглэлд хуваалцаж болохгүй. Тохиргооноосоо түлхүүрүүдийг тогтмол солих хэрэгтэй.

СДК

Официйн SDK- ууд нь таны програмд TTS.ai- ийг нэгтгэх боломжийг олгодог. Хоёр нь ч нээлттэй эхийн кодтой бөгөөд GitHub дээр байдаг.

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

Үндсэн URL

Үндсэн URL: https://api.tts.ai/v1/

Бүх төгсгөлийн цэг нь энэ үндсэн URL- тэй харьцангуй байдаг. Жишээ нь, TTS төгсгөлийн цэг нь:

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

Хязгаарлалтууд

API хурдны хязгаар төлөвлөгөөнөөс хамаарна:

Зүүн Асуулт/минут Нэг зэрэг Максимум текстийн урт
Хязгааргүй 10 2 500 тэмдэгт
Эхлүүлэгч 30 3 100,000 тэмдэгт
Про 60 5 100,000 тэмдэгт
Компани 300 20 50,000 тэмдэгт

Хариулт бүрт багтсан хурдны хязгаар: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Кредитийн үнэ

Хэрэгсэл Үнэ Нэгж
TTS (Үнэгүй загварууд: Piper, VITS, MeloTTS) 1000 тэмдэгт 1000 тэмдэгт тутамд
TTS (стандарт загварууд: Kokoro, CosyVoice 2, гэх мэт) 2000 тэмдэгт 1000 тэмдэгт тутамд
TTS (Premium загварууд: Tortoise, Chatterbox, гэх мэт) 4000 тэмдэгт 1000 тэмдэгт тутамд
Хэлнээс текст рүүName 2000 тэмдэгт минутын аудио
Хөгжүүлэгч 4000 тэмдэгт 1000 тэмдэгт тутамд
Сонсголыг өөрчлөгч 3000 тэмдэгт минутын аудио
Аудио сайжруулалт 2000 тэмдэгт минутын аудио
Хөгжимийг устгах / Хослох 3000-4000 тэмдэгт минутын аудио
Хэлний орчуулгаName 5000 тэмдэгт минутын аудио
Дуу яриа 3000 тэмдэгт Бүх гүйлт
Товч хайгч Хязгааргүй --
Аудио хөрвүүлэгч Хязгааргүй --

Үгнээс үсэг рүүName

POST /v1/tts/

Мэдээллийг ярианд хөрвүүлнэ. Сонсголын файлыг хүссэн хэлбэрээр нь буцаана.

Асуултын бие

ПараметрүүдБүлэгЗаавалТохиргоонууд
model string Тийм Модель ID (жишээ нь kokoro, chatterbox, piper)
text string Тийм Хэлнээс бичлэгт хөрвүүлэх текст (хүсэлт бүрт 100,000 хүртэлх тэмдэгт)
voice string Тийм Дууны ID (/v1/voices/ ашиглан дуунуудын жагсаалтыг гаргах)
format string Үгүй Гаралтын формат: mp3 (стандарт), wav, flac, ogg
speed float Үгүй Хэлний хурдны олонлог. Өмнө нь: 1.0. Хязгаар: 0.52.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

Хариулт

Аудио файлыг тохирох Content-Type хавтсыг агуулсан хоёрын өгөгдөл болгон буцаана (audio/mpeg, audio/wav гэх мэт).

Хариултын толгой
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Хэлнээс текст рүүName

POST /v1/stt/

Аудиог текст болгон хөрвүүлэх. 99 хэлийг автоматаар олж илрүүлнэ.

Асуултын бие (multipart/form-data)

ПараметрүүдБүлэгЗаавалТохиргоонууд
file file Тийм Аудио файл (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Хамгийн ихдээ 100МБ.
model string Үгүй STT загвар: шүү (стандарт), шүү-шүү, шинжлэх ухааны дуу
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 секунд зөвлөж байна). Max 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). Максимум 50МБ.
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

Хариулт

Өөрчлүүлсэн аудио файлыг хоёрын утгатай болгож буцаана.

Хэлний орчуулгаName

POST /v1/speech-translate/

Нэг хэлнээс нөгөө рүү орчуулах. Нэг дуудлагад яриа-мэдээлэл, орчуулга, текст-мэдээлэлийг нэгтгэх.

Асуултын бие (multipart/form-data)

ПараметрүүдБүлэгЗаавалТохиргоонууд
file file Тийм Эхний хэл дээрх аудио файл. Хамгийн ихдээ 100МБ.
target_language string Тийм Зориулсан хэлний код (жишээ нь es, fr, de, ja)
voice string Үгүй Зохиогчийн нэр:
preserve_voice boolean Үгүй Орчин үеийн дуу хоолойн шинж чанарыг хадгалж үлдэх. Өгөгдөл: false

Хариулт

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 Тийм Эх үүсвэр ярианы аудио файл. Хамгийн ихдээ 50МБ.
voice string Тийм Үгний гарчгийн дууны ID
model string Үгүй Модель: openvoice (стандарт), chatterbox
emotion string Үгүй Зорилтот сэтгэл хөдлөл: neutral, happy, sad, angry, excited
speed float Үгүй Хурд тохируулах. Өмнө нь: 1.0. Хязгаар: 0.52.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 (үндсэн) эсвэл 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Жишээ авах хурд: 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 Үгүй Өөрийн системийн дохиоComment
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
}

Бүтээгдэхүүн

POST /v1/tts/batch/

Олон текстийг нийлмэл TTS үүсгэхийн тулд илгээнэ. Бүх ажлууд дууссаны дараа webhook- ийн дуудлагыг хүлээн авахыг сонгоно уу.

Параметрүүд

ПараметрБүлэгТодорхойлолт
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Хариулт

JSON хариулт
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

/v1/tts/batch/result/?batch_id=abc123-ийн тусламжтайгаар асуултын явцыг олж авах

Дуу оруулалт

POST /v1/voice-embed/

Эхнийх нь дууны embed-ийг тооцоолох. Дараагийн дууны embed-ийн хүсэлтийг embed_id-ээр илэрхийлсэн embed_id-ийг ашиглан шууд үүсгэх.

Параметрүүд

ПараметрБүлэгТодорхойлолт
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Хариулт

JSON хариулт
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Эрүүл мэндийн үзлэг

GET /v1/health/

ГПҮ серверийн байдал, ачаалагдсан загварууд, дарааллын хэмжээг шалгана. Идэвхжүүлэх шаардлагагүй. 30 секундын турш хадгалагдсан.

Хариулт

JSON хариулт
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Бүтээгдэхүүний жагсаалт

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 Хэлний кодоор (жишээ нь mn) шүүх
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')}")

Хэлнээс текст рүүName

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

Хэлнээс текст рүүName

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

Хэлнээс текст рүүName

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 characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
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 хийх болно.

Веб- холболт
{
  "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-г програмдаа нэгтгэхээс эхэл.