API دستاویزات
REST API کے ساتھ TTS.ai کو آپ کی ایپلیکیشن میں شامل کریں۔ آسان ہجرت کے لئے OpenAI-مطابق فارمیٹ۔
نظرثاني
TTS.ai API تمام پلیٹ فارم خصوصیات تک پروگرامی رسائی فراہم کرتا ہے: متن سے کلام ترکیب، کلام سے متن نقل، آواز کلوننگ، آڈیو بہتری، اور مزید۔ API JSON درخواست/جواب بدنوں کے ساتھ معیاری REST کنوانشنز کا استعمال کرتا ہے۔
API کلید
آپ کی API کلید یہاں سے حاصل کریں اکاؤنٹس. پرو اور انٹرپرائز منصوبوں پر دستیاب.
بنياد URL
https://api.tts.ai/v1/
تصدیق
بیئر ٹوکن کے ذریعے Authorization هيڈر
توثیق
/v1/tts/ کوئی بھی تصدیق کے بغیر کام کریں، 5000 حروف/روز تک ہر IP، ہمارے مفت ماڈلوں کا استعمال کرتے ہوئے (piper, vits, melotts, kokoro). 15,000 بونس حروف اور پرائم ماڈلز تک رسائی حاصل کرنے کے لئے ایک مفت اکاؤنٹ کے لئے رجسٹر کریں.
پرائم ماڈلز اور اعلی ریت حدوں کے لئے، ایک بییئر ٹوکن کے ساتھ توثیق کریں Authorization هيڈر.
Authorization: Bearer sk-tts-your-api-key-here
ايس ڈی کي
سرکاری 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")
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');
بنياد URL
تمام انتہا پوائنٹس اس بیس URL کے نسبت ہیں. مثال کے طور پر، TTS انتہا پوائنٹ ہے:
حدیں
API شرح حدوں پلان کے مطابق مختلف ہیں:
| پلان | درخواستیں/منٹ | متوازی | زیادہ سے زیادہ متن کی لمبائی |
|---|---|---|---|
| مفت | 10 | 2 | 500 حروف |
| شروع | 30 | 3 | 1,000,000 حروف |
| پرو | 60 | 5 | 1,000,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 تلاش کرنے والا | مفت | -- |
| آڈیو تبدیل کرنے والا | مفت | -- |
تحریر سے کلام
متن کو بولنے والی آڈیو میں تبدیل کریں. درخواست شدہ فارمیٹ میں آڈیو فائل واپس کرتا ہے.
درخواست کا جسم
| پیرامیٹرز | قسم | ضروری | وضاحت |
|---|---|---|---|
| model | string | نہیں | ماڈل ID (مثال، kokoro, chatterbox, piper). اگر چھوڑ دیا گیا تو، ہم خودکار طور پر ایک ماڈل منتخب کرتے ہیں جو درخواست شدہ language کو مدد دیتا ہے - en/ja/zh/ko/fr/de/it/pt/es/hi/ru کے ليے kokoro، اور دیگر مدد شدہ زبانوں کے ليے piper (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.) |
| text | string | جی ہاں | متن جو کہ بولنے میں تبدیل کیا جائے گا. ہر درخواست کے لیے حد: 500 حروف (نامعلوم)، 5000 (فری اکاؤنٹ)، 1000000 (پیش پرداخت پلان). لمبے انٹیج خودکار طور پر سرور کی طرف سے جوڑ دیے جاتے ہیں. |
| voice | string | جی ہاں | آواز ID (موجود آوازوں کی فہرست بنانے کے لیے /v1/voices/ استعمال کریں) |
| format | string | نہیں | خروجی فارمیٹ: mp3 (دیفالٹ)، wav، flac، ogg |
| speed | float | نہیں | بولنے کی رفتار کا ضربي. ديفا لوٹ: 1.0 رينج: 0.5 سے 2.0 |
| language | string | نہیں | زبان کا کوڈ (مثال، en, es). اگر چھوڑ دیا جائے تو خودکار طور پر دریافت کیا جائے گا. |
| instructions | string | نہیں | عمل / فراہمی کیو (≤500 حروف). مثال: <کوڈ>\ |
| pronunciations | object | array | نہیں | پر-مطلبی آواز غلبہ. یا تو {\ |
| stream | boolean | نہیں | ڈفالٹ: false |
مثال درخواست
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
SSML ٹیگ
نمبرات، تاريخیں، رقم، فون نمبرات اور مختصر ناموں کو تاریخ کا فارمیٹ دیفالٹ The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
ان کا تعبیر کريں ان پٹ اس طرح بولا گیا cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31December thirty-first, nineteen ninety-nine time14:30two thirty PM telephone+1-555-867-5309plus one five five five eight six seven… currency$1,234.56one thousand two hundred thirty-four dollars and fifty-six cents spell-outNASAN A S A mdy انگریزی کے لیے اور dmy دیگر جگہوں پر؛ format=\ کے ساتھ اووررائڈ{
"model": "kokoro",
"voice": "af_bella",
"text": "Your appointment is on <say-as interpret-as=\"date\">2026-04-26</say-as> at <say-as interpret-as=\"time\">14:30</say-as>. Please call <say-as interpret-as=\"telephone\">+1-555-867-5309</say-as> if you need to reschedule."
}جواب
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.Full example
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)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
زبان سے متن
آڈیو کو ٹیکس میں تبدیل کریں. خودکار دریافت کے ساتھ 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 |
جواب
{
"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"
}
]
}
آواز کا کلوننگ
کلونڈ آواز میں بولنا پيدا کريں رفرنس آڊيو اور ٹیکس اپ لوڈ کريں
درخواست کا جسم (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 انتہا پوائنٹ.
آواز بدلنے والا
مختلف آواز کے طور پر آواز کے طور پر آڈیو تبدیل کریں. سرچشمہ آڈیو اپ لوڈ کریں اور مقصد آواز منتخب کریں.
درخواست کا جسم (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 -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
جواب
تبدیل شدہ آڈیو فائل کو بائنری ڈیٹا کے طور پر واپس کرتا ہے.
ترجمہ
ایک زبان سے دوسری زبان میں بولی ہوئی آڈیو کا ترجمہ کریں۔ ایک کال میں بولی سے تحریر، ترجمہ اور تحریر سے بولی کا ترکیب کرتے ہیں۔
درخواست کا جسم (multipart/form-data)
| پیرامیٹرز | قسم | ضروری | وضاحت |
|---|---|---|---|
| file | file | جی ہاں | اصل زبان میں سرچشمہ آڈیو فائل. زیادہ سے زیادہ 100MB. |
| target_language | string | جی ہاں | مقصد زبان کا کوڈ (مثال، es, fr, de, ja) |
| voice | string | نہیں | ترجمہ خروجی کے لیے آواز. اگر چھوڑ دیا جائے تو خودکار طور پر منتخب کیا جائے گا. |
| preserve_voice | boolean | نہیں | اصل اسپیکر کی آواز کی خصوصیات محفوظ رکھنے کی کوشش کریں. دیفالٹ: false |
جواب
{
"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
}
کلام سے کلام
مضمون کو محفوظ رکھتے ہوئے بولنے کے انداز ، احساس يا پيش کر نے کو تبديل کريں. تنا ر ، پيسنگ اور اظہار کي ترتيب کے ليے فائده مند
درخواست کا جسم (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 |
جواب
تبدیل شدہ آڈیو فائل کو بائنری ڈیٹا کے طور پر واپس کرتا ہے.
آڈیو ٹولز
بہتری کے لیے آڈیو پروسیسنگ انتہا پوائنٹس، آواز کو ہٹانا، سٹیم تقسیم کرنا، اور مزید.
آڈیو کی کیفیت کو بہتر بنائیں: شور کو ختم کریں، واضحی کو بہتر کریں، سپر رزولوشن.
| file file | اوڈیو فائل جسے بہتر بنانا ہے |
| denoise boolean | نویز ختم کرنے کو فعال کریں (دیفالٹ: صحیح) |
| enhance_clarity boolean | بولنے کی واضحی بڑھاؤ (معیار: صحیح) |
| super_resolution boolean | اوڈيو کي معيار کي بلندي (دفترِاصل: غلط) |
| strength integer | 1-3 (اُجھلا, متوسط, مضبوط). دیفالٹ: 2 |
آوازوں کو سازوں سے جدا کريں ( آوازوں کو ہٹا ديں ) يا ان کو ٹکڑے کريں
| file file | آڈیو فائل جدا کرنے کے لیے |
| model string | demucs (دیفالٹ) يا spleeter |
| stems integer | سٹم کی تعداد: 2, 4, 5, or 6 (دفٹر: 2) |
| format string | خروجی فارمیٹ: wav, mp3, flac |
اوڈيو ریکارڈنگ سے ایکو اور ری بیرر کو ہٹاو
| file file | پروسیسنگ کے لیے آڈیو فائل |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
کی، 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"]
}
اوڈیو فارمیٹ کے درمیان تبدیل کریں
| 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 string | mono يا stereo |
آواز چیٹ
آڈیو یا ٹیکس بھیجیں اور سنتھسیزڈ کلام کے ساتھ ایک 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 | نہیں | موجود گفتگو جاری رکھیں |
جواب
{
"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
TTS کی متوازی پیدائش کے لیے متعدد تحریریں پیش کریں. اختیاری طور پر ایک ویب ہوک کالبیکٹ حاصل کریں جب تمام کام مکمل ہوں.
پرائمرز
| پرائمری | قسم | وضاحت |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
جواب
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
پو ل ترقی GET /v1/tts/batch/result/؟batch_id=abc123 کے ساتھ
آواز شامل کرنا
ریفرنس آڈیو سے آواز کو داخل کرنے کا پیش-حساب کریں. قریب-حالت پیداوار کے لیے بعد میں آواز کلوننگ درخواستوں میں واپسی embed_id استعمال کریں.
پرائمرز
| پرائمری | قسم | وضاحت |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
جواب
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
صحت کی جانچ
GPU سرور کی حالت، لوڈ ماڈلز، اور قطار کی سائز چکیں. توثیق کی ضرورت نہیں. 30 سیکنڈ کے لیے کیچ کیا گیا.
جواب
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
ماڈلز کی فہرست
ان کی صلاحیتوں کے ساتھ تمام دستیاب ماڈلز کی فهرست واپس کرتا ہے.
جواب
{
"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
}
]
}
آوازیں شامل کریں
تمام دستیاب آوازوں کی فهرست واپس کرتا ہے، اختیاری طور پر ماڈل یا زبان کے مطابق فلٹر کیا جاتا ہے.
سوالات
| پیرامیٹرز | قسم | وضاحت |
|---|---|---|
| model | string | ماڈل ID کے مطابق فلٹر کریں (مثال، kokoro) |
| language | string | زبان کوڈ کے مطابق فلٹر کریں (مثال، en) |
| gender | string | جنس کے مطابق فلٹر: male, female, neutral |
جواب
{
"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
}
سب ٹیٹرز نیا
کسی بھی مکمل TTS کام کے لیے ہم آہنگ سب ٹیٹلز پیدا کریں. اوڈیو پر ویشپر الائنمنٹ چلاتا ہے اور SRT یا WebVTT واپس کرتا ہے. نتیجہ ڈسک پر کیچ کیا جاتا ہے تاکہ اسی uuid کے لیے دوسرا کال ایک ڈسک پڑھنا ہو.
سوالات
| پیرامیٹرز | ضروری | وضاحت |
|---|---|---|
| uuid | جی ہاں | کام UUID /v1/tts/ یا /v1/voice-clone/ سے واپس کیا گیا. |
| format | نہیں | srt (دفٹر) یا vtt. |
| download | نہیں | 1 Content-Disposition: attachment بھیجنے کے لیے تاکہ براؤزر محفوظ کرے اس کی بجائے کہ دکھائے. |
| language | نہیں | alignment ماڈل کے لیے اشارہ (خودکار طور پر دریافت کیا جاتا ہے اگر چھوڑ دیا جاتا ہے) |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
لفظي ديکشنري نیا
خاص لفظوں کو بولنے کے ليے TTS انجن کي بتايں محفوظ کردہ دخلات آپ کو هر TTS درخواست پر خودکاري سے لا گيا جاتا هے 200 دخلات پر اکاونٹ حد
درخواست کا جسم (POST)
| پیرامیٹرز | قسم | وضاحت |
|---|---|---|
| word | string | لفظ جس پر غلبہ کريں (مثال: GIF, Anthropic). لفظي حد ميں ميلاپ |
| replacement | string | ماڈل کے لیے اسے کیسے فہرست کیا جائے (مثال کے لیے jiff, ann THROP ick). |
| language | string | اختیاری ISO کوڈ. خالی = تمام زبانوں پر لاگو ہوتا ہے. |
| case_sensitive | boolean | دیفالٹ false. اگر true تو صحیح طور پر کاس ملیں. |
# Save an entry
curl -X POST https://tts.ai/api/v1/pronunciations/ \
-H "Authorization: Bearer sk-tts-..." \
-H "Content-Type: application/json" \
-d '{"word": "GIF", "replacement": "jiff"}'
# List your entries
curl https://tts.ai/api/v1/pronunciations/ -H "Authorization: Bearer sk-tts-..."
# Delete entry by id
curl -X DELETE "https://tts.ai/api/v1/pronunciations/?id=42" -H "Authorization: Bearer sk-tts-..."
آپ بھی ان کو محفوظ کرنے کے بغیر پر درخواست اووررائڈز بھی منتقل کر سکتے ہیں - شامل کریں pronunciations کسی بھی /v1/tts/ کال پر یا تو ایک چیز یا ایک آرری کے طور پر (TTS انتہا نقطہ params دیکھیں).
آرٽيڪل راوی نیا
يه واحد ٹائگل کو ايک آرٽيڪل صفحے پر ڈاليں اور سياحوں کو يه ثابت ريڈر بار ملے گا جو کلک کر کے صفحے کو بيان کر تا هے آرٽيڪل کے با ڑي خودکار طور پر تلاش کر تا هے ، خاص آواز / ماڈل / مقام / رنگ کو مدد ديتا هے
<script src="https://tts.ai/narrator.js"
data-pk="pk-tts-your-publishable-key"
data-voice="af_bella"
data-model="kokoro"
data-extract="auto"
data-position="bottom"
data-color="#e60000"
data-locale="en"></script>
اختیارات
| پیرامیٹرز | وضاحت |
|---|---|
data-pk | شائع کرنے والی کلید (pk-tts-...). ڈومین رکاوٹوں کو کلید کے allowed_domains فیلڈ کے ذریعے لاتا ہے. |
data-voice | وائٹ ID. ڈیفالٹ af_bella. |
data-model | TTS ماڈل ID. ڈیفالٹ kokoro. |
data-extract | auto (دفٹر) — آرٽيڪل/ماں/.پسٹ-مواد/.انٹري-مواد منتخب کرنے کا کوشش کرتا ہے، سب سے گھنے فقرہ کلسٹر میں واپس آتا ہے. يا کوئي خاص عنصر کو نشانہ بنانے کے ليے CSS منتخب کرنے والا گزيرا کريں |
data-position | bottom (دفٹر) یا top. |
data-color | رنگ (کوئی بھی CSS رنگ).معیار #e60000. |
data-min-chars / data-max-chars | بار کو چھوڑ دیں اگر مضمون کم سے کم حروف سے چھوٹا ہو (معیار 200). زیادہ سے زیادہ حروف پر انوٹاپ (معیار 50,000) |
گیٹ ہاب پر ذريعہ:
بٹن
ان لائن بٹن انداز embed. اس کے ٹیگ کے پاس رنڈرز اور بٹن سے شروع ہوا مختصر snippet چلاتا ہے. آرٹیکل نائرر سے مختلف شکل اوپر (جو خودکار طور پر ایک صفحہ-سپرنگ بار کو انجیکٹ کرتا ہے اور پورا آرٹیکل نائرر کرتا ہے)
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
محفوظ آوازیں (مثبت کلون)
ایک بار ریفرنس آڈیو اپ لوڈ کریں، ایک ثابت وائٹس_آئی ڈی واپس حاصل کریں، پھر ہر کال کے بجائے آڈیو کو دوبارہ اپ لوڈ کرنے کی بجائے TTS درخواستوں میں اس آئی ڈی کا حوالہ دیں. اعلی حجم انٹیگریشن کے لئے ایڈیل.
آواز اپ لوڈ کریں
POST
https://tts.ai/api/v1/user-voices/
توثیق لازمی ہے
چند حصوں والا فارم.فيلڈز: فائل (ضروري، 5-30س آ ديو)، نام (ضروري)، زبان (اختياري، ديفا لٹ en)، ماڈل (اختياري — zh/ja/ko کے ليے خودکار طور پر cosyvoice2 منتخب کر تا هے اگر نہیں تو اوپن ويز)، رضا_مندي (ضروري، کوئی سچي قيمت)
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"
}
TTS میں محفوظ آواز استعمال کریں
/api/v1/tts/ پر POST (تذکرہ: ویب VPS ہوسٹ، api.tts.ai نہیں) user_voice_id کے ساتھ ہم آپ کی محفوظ آڈیو اور کلونینگ پائپ لائن کی طرف روٹ لوڈ کرتے ہیں.
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.
فہرست / حذف
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
محفوظہ / دوبارہ فعال کریں (آزاد)
محفوظہ آوازیں آپ کے اکاؤنٹ میں رہتی ہیں لیکن TTS میں استعمال نہیں کی جاسکتی. سست استعمال کرنے والوں کے لیے استعمال کی جاسکتی ہیں تاکہ آپ کی فہرست صاف رہے.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
کوڈ مثالیں
تحریر سے کلام
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
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"])
آواز کا کلوننگ
# 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)
تحریر سے کلام
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
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);
تحریر سے کلام
# 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 -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"
آواز کا کلوننگ
# 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
آڈیو بہتری
# 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"
}
تیار بننے کے لئے؟
آپ کی API کی کلید حاصل اور اپنے ایپلیکیشن میں TTS.ai ایکجائز شروع.