Report Bug / Feature Request

API دستاویزات

REST API کے ساتھ TTS.ai کو آپ کی ایپلیکیشن میں شامل کریں۔ آسان ہجرت کے لئے OpenAI-مطابق فارمیٹ۔

REST API OpenAI سازگار JSON جوابات اسٹریمنگ مدد

نظرثاني

TTS.ai API تمام پلیٹ فارم خصوصیات تک پروگرامی رسائی فراہم کرتا ہے: متن سے کلام ترکیب، کلام سے متن نقل، آواز کلوننگ، آڈیو بہتری، اور مزید۔ API JSON درخواست/جواب بدنوں کے ساتھ معیاری REST کنوانشنز کا استعمال کرتا ہے۔

API کلید

آپ کی API کلید یہاں سے حاصل کریں اکاؤنٹس. پرو اور انٹرپرائز منصوبوں پر دستیاب.

بنياد URL

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

تصدیق

بیئر ٹوکن کے ذریعے Authorization هيڈر

توثیق

Free tier — no key required. Anonymous POSTs to /v1/tts/ work without any auth, up to 5,000 characters/day per IP, using any of our free models (piper, vits, melotts, kokoro). Sign up for a free account to get 15,000 bonus characters and access to premium models.

تمام API درخواستوں کو توثیق کی ضرورت ہے Authorization هيڈر.

HTTP ہیڈر
Authorization: Bearer sk-tts-your-api-key-here
آپ کی API کی راز رکھیں. اسے کلائنٹ-سائڈ کوڈ، عوامی ذخیروں، یا لاگ میں شریک نہ کریں. اپنے اکاؤنٹ کی ترتیبات سے منظم طور پر کلیدوں کی گردش کریں.

ايس ڈی کي

سرکاری SDKs آپ کی ایپلیکیشن میں 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, etc.) 2000 حروف ہر 1000 حروف
TTS (پریمیئم ماڈل: Tortoise, Chatterbox, etc.) 4 کریڈٹ ہر 1000 حروف
زبان سے متن 2000 حروف پر منٹ
آواز کا کلوننگ 4 کریڈٹ ہر 1000 حروف
آواز بدلنے والا 3000 حروف پر منٹ
آڈیو بہتری 2000 حروف پر منٹ
آواز ختم کر نے/ آواز تقسيم کر نے 3000-4000 حروف پر منٹ
ترجمہ 5000 حروف پر منٹ
آواز چیٹ 3000 حروف ہر دور
کلید & BPM تلاش کرنے والا مفت --
آڈیو تبدیل کرنے والا مفت --

تحریر سے کلام

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.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

جواب

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Full example

Python
import requests, time

API_KEY = "sk-tts-your-key"
BASE = "https://api.tts.ai"

# 1. Submit TTS request
resp = requests.post(f"{BASE}/v1/tts/", json={
    "model": "kokoro",
    "text": "Hello from TTS.ai!",
    "voice": "af_bella"
}, headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()
uuid = data["uuid"]

# 2. Poll for result
while True:
    result = requests.get(f"{BASE}/v1/speech/results/",
        params={"uuid": uuid}).json()
    if result["status"] == "completed":
        # 3. Download audio
        audio = requests.get(result["result_url"])
        with open("output.mp3", "wb") as f:
            f.write(audio.content)
        break
    elif result["status"] == "failed":
        raise Exception(result.get("error", "Generation failed"))
    time.sleep(1.5)

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

زبان سے متن

POST /v1/stt/

آڈیو کو ٹیکس میں تبدیل کریں. خودکار دریافت کے ساتھ 99 زبانوں کی حمایت کرتا ہے.

درخواست کا جسم (multipart/form-data)

پیرامیٹرزقسمضروریوضاحت
file file جی ہاں آڈیو فائل (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). زیادہ سے زیادہ 100MB.
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 سیکنڈ کی رائے دی جاتی ہے). زیادہ سے زیادہ 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 نہیں اصل اسپیکر کی آواز کی خصوصیات محفوظ رکھنے کی کوشش کریں. دیفالٹ: 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 جی ہاں آواز کی سرچشمہ آڈیو فائل. زیادہ سے زیادہ 50MB.
voice string جی ہاں خروجی بولنے کے لیے مقصد آواز ID
model string نہیں ماڈل: openvoice (دفٹر)، chatterbox
emotion string نہیں مقصدي احساس: neutral, happy, sad, angry, excited
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 (دیفالٹ) يا spleeter
stems integerسٹم کی تعداد: 2, 4, 5, or 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آؤٹ پٹ بٹرائٹ 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 نہیں 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
}

بٹ TTS

POST /v1/tts/batch/

TTS کی متوازی پیدائش کے لیے متعدد تحریریں پیش کریں. اختیاری طور پر ایک ویب ہوک کالبیکٹ حاصل کریں جب تمام کام مکمل ہوں.

پرائمرز

پرائمریقسموضاحت
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"
}

پو ل ترقی GET /v1/tts/batch/result/؟batch_id=abc123 کے ساتھ

آواز شامل کرنا

POST /v1/voice-embed/

ریفرنس آڈیو سے آواز کو داخل کرنے کا پیش-حساب کریں. قریب-حالت پیداوار کے لیے بعد میں آواز کلوننگ درخواستوں میں واپسی 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/

GPU سرور کی حالت، لوڈ ماڈلز، اور قطار کی سائز چکیں. توثیق کی ضرورت نہیں. 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 زبان کوڈ کے مطابق فلٹر کریں (مثال، en)
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
}

Saved Voices (Persistent Clones)

Upload a reference audio once, get back a persistent voice_id, then reference that id in TTS requests instead of re-uploading audio every call. Ideal for high-volume integrations.

Pricing: Storage is free (no daily rent, no slot cap). Upload fee: 500 characters one-time per voice. Per-use surcharge: +50 characters added to each TTS generation that references the saved voice, on top of the normal generation cost. Archive voices you don't need right now to keep them dormant; reactivate any time. Both are free API calls.

Upload a voice

POST https://tts.ai/api/v1/user-voices/ Auth required

Multipart form. Fields: file (required, 5-30s audio), name (required), language (optional, default en), model (optional — auto-picks cosyvoice2 for zh/ja/ko else openvoice), consent_confirmed (required, any truthy value).

curl -X POST https://tts.ai/api/v1/user-voices/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@reference.wav" \
  -F "name=My Narrator" \
  -F "language=en" \
  -F "consent_confirmed=true"

# Response:
{
  "public_id": "uv_a1b2c3d4e5f6",
  "id": 42,
  "name": "My Narrator",
  "model_name": "openvoice",
  "language": "en",
  "reference_audio_url": "https://tts.ai/media/user-voices/....wav",
  "storage_status": "active",
  "created_at": "2026-04-17T03:45:00+00:00"
}

Use the saved voice in TTS

POST to /api/v1/tts/ (NOTE: web VPS host, not api.tts.ai) with user_voice_id. We load your stored audio and route to the cloning pipeline.

curl -X POST https://tts.ai/api/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'

# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.

List / delete

GET    https://tts.ai/api/v1/user-voices/           # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6

Archive / reactivate (free)

Archived voices stay in your account but can't be used in TTS. Useful for dormant end users so your list stays clean.

POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/

کوڈ مثالیں

تحریر سے کلام

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 characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTPحالتغلطی کوڈوضاحت
400 bad_request ناجائز درخواست پیرامیٹرز. تفصیلات کے لیے غلطی کا پیغام چکیے.
401 unauthorized گم شدہ یا غیر معتبر API کلید.
402 insufficient_credits کافی حروف نہیں. /price/ پر مزید خریدیں.
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 ایکجائز شروع.