API दस्तऐवजीकरण
TTS.ai ला आपल्या अनुप्रयोगांमध्ये आमचे REST API सोबत एकत्रित करा.
ओळख
TTS.ai API सर्व प्लॅटफॉर्म वैशिष्ट्यांसाठी प्रोग्रामिंग प्रवेश प्रदान करते: पाठ-ते-भाषण संश्लेषण, भाषण-ते-भाषण रूपांतर, आवाज क्लोनिंग, ऑडिओ सुधारणे, आणि अधिक.
API कि
येथे तुमची API किल्ली मिळवा खाते संयोजना. या कंपनीचे मुख्यालय औरंगाबाद येथे आहे.
आधार URL
https://api.tts.ai/v1/
अधिप्रमाणन
वाहक टोकन द्वारे Authorization शिर्षक
अधिप्रमाणन
/v1/tts/ कोणत्याही प्रमाणपत्राशिवाय काम करा, 5,000 अक्षरे/दिवस प्रति आयपी पर्यंत, आमच्या कोणत्याही मोफत मॉडेलचा वापर करून (piper, vits, melotts, kokoro). या पुस्तकात १५,००० पेक्षा जास्त मराठी व इंग्रजी शब्दांचा समावेश आहे.
प्रीमियम मॉडेल आणि उच्च दर मर्यादा साठी, मधील बेअरर टोकन सह प्रमाणीकरण करा Authorization शिर्षक.
Authorization: Bearer sk-tts-your-api-key-here
एसडीके
TTS.ai ची एकत्रितपणे वापरणी करणे अधिकृत SDKs ने सोपे केले आहे. दोन्ही ओपन सोर्स आहेत आणि 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 | अक्षर |
| प्रारंभकर्ता | 30 | 3 | अक्षरे |
| प्रो | 60 | 5 | अक्षरे |
| एंटरप्राइज | 300 | 20 | अक्षरे |
दर मर्यादा शिर्षक प्रत्येक उत्तरात समाविष्टीत आहे: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
क्रेडिट खर्च
| सेवा | किंमत | एकक |
|---|---|---|
| TTS (मुफ्त मॉडेल: पाइपर, VITS, MeloTTS) | अक्षरे | प्रति 1000 अक्षरे |
| टीटीएस (मानक मॉडेल: कोकोरो, कोसीव्हॉइस २, इ. | 2,000 अक्षरे | प्रति 1000 अक्षरे |
| TTS (प्रीमियम मॉडेल: Tortoise, Chatterbox, इत्यादी) | अक्षरे | प्रति 1000 अक्षरे |
| वक्तव्य ते पाठ्यName | 2,000 अक्षरे | ऑडिओ प्रति मिनिट |
| आवाज क्लोनिंग | अक्षरे | प्रति 1000 अक्षरे |
| आवाज बदलविकर्ताName | 3,000 अक्षरे | ऑडिओ प्रति मिनिट |
| ऑडिओ सुधारणName | 2,000 अक्षरे | ऑडिओ प्रति मिनिट |
| आवाज काढून टाकणे / आवाज विभाजन | अक्षरे | ऑडिओ प्रति मिनिट |
| वक्तृत्व अनुवादName | 5,000 अक्षरे | ऑडिओ प्रति मिनिट |
| आवाज संवादName | 3,000 अक्षरे | प्रत्येक फेरी करीता |
| कि (BPM) शोधकर्ता | मोकळे | -- |
| ऑडिओ कनवर्टरName | मोकळे | -- |
पाठ्य ते वक्तव्यName
पाठ्य संवाद ऑडिओ करीता रूपांतरीत करा. विनंतीकृत स्वरूपन अंतर्गत ऑडिओ फाइल परत करतो.
विनंतीचे मुख्य भाग
| पैरामीटर | प्रकार | आवश्यक | वर्णन |
|---|---|---|---|
| model | string | नाही | मॉडेल ID (उदा., kokoro, chatterbox, piper). गळून पडल्यास, आम्ही स्वचलितपणे एक मॉडेल निवडतो जे विनंती केलेली भाषा समर्थन करते - 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 अक्षरे (अननोंदित), 5,000 (मुफ्त खाते), 1,000,000 (पेड योजना). लांब इनपुट स्वयं-चँक्ड सर्वर-साईड आहे. |
| 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 | नाही | कृती / वितरण संकेत (≤५०० अक्षरे). उदा. |
| 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-31डिसेंबर ३१, १९९९ 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.संपूर्ण उदाहरण
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.
वक्तव्य ते पाठ्यName
ऑडिओ पाठ्य करीता रूपांतरित करा. स्वचलित शोध सह 99 भाषांना समर्थन देतो.
विनंतीचे मुख्य भाग (multipart/form-data)
| पैरामीटर | प्रकार | आवश्यक | वर्णन |
|---|---|---|---|
| file | file | होय | ऑडिओ फाइल (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). कमाल 100MB. |
| model | string | नाही | STT मॉडेल: whisper (मूलभूत), faster-whisper, sensevoice |
| language | string | नाही | Unknown parameter |अॅक्सेसदिनांक= ignored (सहाय्य); Unknown parameter |अॅक्सेसदिनांक= ignored (सहाय्य) |
| 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 अंतबिंदू सारखे.
आवाज बदलविकर्ताName
ऑडिओला वेगळ्या आवाजासारखा आवाज देण्याकरीता रूपांतरित करा. स्त्रोत ऑडिओ अपलोड करा व लक्ष्य आवाज निवडा.
विनंतीचे मुख्य भाग (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
प्रतिसाद
रूपांतरीत ऑडिओ फाइल बायनरी माहिती नुरूप परत करतो.
वक्तृत्व अनुवादName
एका भाषेतून दुसऱ्या भाषेत बोललेले ऑडिओचे भाषांतर करा. एका कॉलमध्ये भाषण-ते-पाठ्य, अनुवाद, व पाठ्य-ते-भाषण एकत्रित करा.
विनंतीचे मुख्य भाग (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
}
वक्तव्य ते वक्तव्यName
संवाद शैली, भावना, किंवा सादरीकरण बदलवा, संदर्भ राखून. स्वर, गती, व अभिव्यक्ती समायोजित करण्याकरीता उपयोगी पडते.
विनंतीचे मुख्य भाग (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 |
प्रतिसाद
रूपांतरीत ऑडिओ फाइल बायनरी माहिती नुरूप परत करतो.
ऑडिओ साधनName
ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण.
मराठी साहित्य संमेलन, पुणे, मराठी विश्वकोश निर्मिती मंडळ, पुणे, इ.
| 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किंवा6(मुलभूत: 2) |
| format string | आऊटपुट स्वरूप: wav, mp3, flac |
ऑडिओ रेकॉर्डिंग पासून प्रतिध्वनी व प्रतिध्वनी काढून टाका.
| file file | प्रक्रिया करीता ऑडिओ फाइल |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
याचा वापर रेकॉर्डिंग, रेकॉर्डिंग, रेकॉर्डिंग आणि रेकॉर्डिंगसाठी केला जातो.
| 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 | २४०, २४१, २४२, २४३. |
| channels string | mono किंवा stereo |
आवाज संवादName
ऑडिओ किंवा टेक्स्ट पाठवा आणि सिंथेसाइज्ड स्पीचसह 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 करीता इच्छिक प्रणाली प्रॉम्प्टName |
| 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 निर्मितीसाठी अनेक पाठ्य सादर करा. सर्व कार्य पूर्ण झाल्यावर वैकल्पिकरित्या वेबहॉक कॉलबॅक प्राप्त करा.
पैरामीटर
| परिमाण | प्रकार | वर्णन@ title: window |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | बॅच पूर्ण झाल्यावर POST परिणाम करीता वैकल्पिक URL. |
प्रतिसाद
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 सह पोलिंग प्रगती
आवाज अंतर्भूतीत
संदर्भ ऑडिओ पासून आवाज अंतर्भूत करण्याकरीता पूर्व-गणना करा. जवळजवळ तत्काळ निर्मितीसाठी पुढील आवाज क्लोन विनंती अंतर्गत परत आलेले embed_id चा वापर करा.
पैरामीटर
| परिमाण | प्रकार | वर्णन@ title: window |
|---|---|---|
| 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
}
उपशीर्षक (SRT / VTT) नविन
TTS कार्य पूर्ण करण्याकरीता समक्रमित उपशीर्षक निर्माण करा. ऑडिओ वर Whisper alignment चालवा व SRT किंवा WebVTT परत करा. परिणाम डिस्क वर कॅशे केले जाते जेणेकरून सारखेच uuid करीता दुसरे कॉल डिस्क वाचन आहे.
क्वेरी पैरामीटर
| पैरामीटर | आवश्यक | वर्णन |
|---|---|---|
| uuid | होय | याचा वापर /v1/tts/ किंवा /v1/voice-clone/ द्वारे परत आलेला काम UUID. |
| format | नाही | srt (डिफॉल्ट) किंवा vtt. |
| download | नाही | 1 Content-Disposition:attachment पाठविण्यासाठी, म्हणजेच ब्राउझरने प्रदर्शनाऐवजी साठवणूक करावी. |
| language | नाही | याचा वापर शस्त्रक्रिया (अर्थात शस्त्रक्रिया न करता) करण्यासाठी केला जातो. |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
उच्चारण शब्दकोशName नविन
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-..."
याशिवाय, आपण त्यांना साठवून न घेता प्रति-आज्ञावली ओव्हरराइड्स पास करू शकता - कोणत्याही /v1/tts/ कॉलवर pronunciations समाविष्ट करा जे एक वस्तु किंवा एक अॅरे आहे (TTS endpoint params पहा).
लेख वाचक नविन
Drop a single <script> tag on any article page and visitors get a fixed reader bar that narrates the page on click. Auto-detects the article body, supports custom voice / model / position / accent color.
<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 model ID. Default kokoro. |
data-extract | auto (मूलभूत) — article/main/.post-content/.entry-content selectors चा प्रयत्न करतो, घनता जास्त असलेल्या अनुच्छेद क्लस्टरकडे परत जातो. किंवा विशिष्ट घटकाला लक्ष्य करण्यासाठी कोणत्याही CSS selector ला पास करतो. |
data-position | bottom (डिफॉल्ट) किंवा top. |
data-color | अधोरेखित रंग (कोणताही CSS रंग). मुलभूत #e60000. |
data-min-chars / data-max-chars | लेख किमान अक्षरांपेक्षा कमी असल्यास (मुलभूत 200) पट्टी सोडून द्या. कमाल अक्षरांपेक्षा जास्त असल्यास (मुलभूत 50, 000) इनपुट बंद करा. |
ऐका बटण विजेटName
इनलाईन बटण- शैली अंतर्भूत. < code>< script> code> टॅग पासून पुढे रेंडरिंग करते व बटण- ट्रिगर केलेले लहान स्निपेट चालविते. वरील लेख वाचक पासून वेगळा आकार (जो स्वतःच पान- विस्तारीत पट्टी अंतर्भूत करतो व संपूर्ण लेख वाचतो).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
संचयीत आवाज (स्थायी क्लोन)
एकदा संदर्भ ऑडिओ अपलोड करा, एक स्थिर voice_id परत मिळवा, मग प्रत्येक कॉल ऑडिओ पुन्हा अपलोड करण्याऐवजी TTS विनंतीत ते id संदर्भित करा. उच्च आवाज एकत्रीकरणासाठी आदर्श.
आवाज अपलोड करा
POST
https://tts.ai/api/v1/user-voices/
अधिप्रमाणन आवश्यक
बहुभाग फॉर्म. क्षेत्रे: फाइल (आवश्यक, 5-30s ऑडिओ), नाव (आवश्यक), भाषा (वैकल्पिक, मुलभूत en), मॉडेल (वैकल्पिक — zh/ja/ko साठी cosyvoice2 किंवा openvoice साठी स्वयं-निवडते), consent_confirmed (आवश्यक, कोणतीही सत्य मूल्य).
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 अंतर्गत संचयीत आवाज वापरा
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.
यादी / काढूण टाका
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/
कोड उदाहरण
पाठ्य ते वक्तव्यName
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
# 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)
पाठ्य ते वक्तव्यName
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
// 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
# 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
# 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
ऑडिओ सुधारणName
# 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"
}
तयार आहात का?
Get your API key and start integrating TTS.ai into your applications.