API दस्तऐवजीकरण

TTS.ai ला आपल्या अनुप्रयोगांमध्ये आमचे REST API सोबत एकत्रित करा.

REST API OpenAI सुसंगत JSON प्रतिसाद स्ट्रीमिंग समर्थन

ओळख

TTS.ai API सर्व प्लॅटफॉर्म वैशिष्ट्यांसाठी प्रोग्रामिंग प्रवेश प्रदान करते: पाठ-ते-भाषण संश्लेषण, भाषण-ते-भाषण रूपांतर, आवाज क्लोनिंग, ऑडिओ सुधारणे, आणि अधिक.

API कि

येथे तुमची API किल्ली मिळवा खाते संयोजना. या कंपनीचे मुख्यालय औरंगाबाद येथे आहे.

आधार URL

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

अधिप्रमाणन

वाहक टोकन द्वारे Authorization शिर्षक

अधिप्रमाणन

गडावर प्रवेशासाठी कोणतीही परवानगी आवश्यक नाही. Anonymous POSTs करीता /v1/tts/ कोणत्याही प्रमाणपत्राशिवाय काम करा, 5,000 अक्षरे/दिवस प्रति आयपी पर्यंत, आमच्या कोणत्याही मोफत मॉडेलचा वापर करून (piper, vits, melotts, kokoro). या पुस्तकात १५,००० पेक्षा जास्त मराठी व इंग्रजी शब्दांचा समावेश आहे.

प्रीमियम मॉडेल आणि उच्च दर मर्यादा साठी, मधील बेअरर टोकन सह प्रमाणीकरण करा Authorization शिर्षक.

HTTP शिर्षक
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")
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 अक्षर
प्रारंभकर्ता 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

POST /v1/tts/

पाठ्य संवाद ऑडिओ करीता रूपांतरीत करा. विनंतीकृत स्वरूपन अंतर्गत ऑडिओ फाइल परत करतो.

विनंतीचे मुख्य भाग

पैरामीटरप्रकारआवश्यकवर्णन
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
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 टॅग्ज

संख्या, तारखे, चलन, फोन क्रमांक, आणि संक्षिप्तनावे

वर्तनइनपुटअसे बोलले
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."
}

प्रतिसाद

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.

संपूर्ण उदाहरण

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.

वक्तव्य ते पाठ्यName

POST /v1/stt/

ऑडिओ पाठ्य करीता रूपांतरित करा. स्वचलित शोध सह 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

प्रतिसाद

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 अंतबिंदू सारखे.

आवाज बदलविकर्ताName

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

प्रतिसाद

रूपांतरीत ऑडिओ फाइल बायनरी माहिती नुरूप परत करतो.

वक्तृत्व अनुवादName

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
}

वक्तव्य ते वक्तव्यName

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

प्रतिसाद

रूपांतरीत ऑडिओ फाइल बायनरी माहिती नुरूप परत करतो.

ऑडिओ साधनName

ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण, ध्वनी प्रदूषण.

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/ मोकळे

याचा वापर रेकॉर्डिंग, रेकॉर्डिंग, रेकॉर्डिंग आणि रेकॉर्डिंगसाठी केला जातो.

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२४०, २४१, २४२, २४३.
channels stringmono किंवा stereo

आवाज संवादName

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 करीता इच्छिक प्रणाली प्रॉम्प्टName
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 निर्मितीसाठी अनेक पाठ्य सादर करा. सर्व कार्य पूर्ण झाल्यावर वैकल्पिकरित्या वेबहॉक कॉलबॅक प्राप्त करा.

पैरामीटर

परिमाणप्रकारवर्णन@ title: window
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringबॅच पूर्ण झाल्यावर POST परिणाम करीता वैकल्पिक URL.

प्रतिसाद

JSON प्रतिसाद
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

GET /v1/tts/batch/result/?batch_id=abc123 सह पोलिंग प्रगती

आवाज अंतर्भूतीत

POST /v1/voice-embed/

संदर्भ ऑडिओ पासून आवाज अंतर्भूत करण्याकरीता पूर्व-गणना करा. जवळजवळ तत्काळ निर्मितीसाठी पुढील आवाज क्लोन विनंती अंतर्गत परत आलेले embed_id चा वापर करा.

पैरामीटर

परिमाणप्रकारवर्णन@ title: window
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
}

उपशीर्षक (SRT / VTT) नविन

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

TTS कार्य पूर्ण करण्याकरीता समक्रमित उपशीर्षक निर्माण करा. ऑडिओ वर Whisper alignment चालवा व SRT किंवा WebVTT परत करा. परिणाम डिस्क वर कॅशे केले जाते जेणेकरून सारखेच uuid करीता दुसरे कॉल डिस्क वाचन आहे.

क्वेरी पैरामीटर

पैरामीटरआवश्यकवर्णन
uuidहोययाचा वापर /v1/tts/ किंवा /v1/voice-clone/ द्वारे परत आलेला काम UUID.
formatनाहीsrt (डिफॉल्ट) किंवा vtt.
downloadनाही1 Content-Disposition:attachment पाठविण्यासाठी, म्हणजेच ब्राउझरने प्रदर्शनाऐवजी साठवणूक करावी.
languageनाहीयाचा वापर शस्त्रक्रिया (अर्थात शस्त्रक्रिया न करता) करण्यासाठी केला जातो.
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

उच्चारण शब्दकोशName नविन

GET POST DELETE /api/v1/pronunciations/

TTS इंजिनला विशिष्ट शब्द कसे उच्चारावे ते सांगा. संचयीत नोंदणी तुम्ही केलेले प्रत्येक TTS विनंती करीता स्वयं-अनुप्रयोग करतात. 200- नोंदणी प्रति-खाते मर्यादा.

विनंतीचे मुख्य भाग (POST)

पैरामीटरप्रकारवर्णन
wordstringओव्हरराइड करण्याकरीता शब्द (उदा. GIF, Anthropic). शब्द-बाहेरील जुळवणी.
replacementstringउदाहरणार्थ, jiff, ann THROP ick हे लिप्यंतरण करताना वापरले जाते.
languagestringवैकल्पिक ISO कोड. रिकामे = सर्व भाषांकरीता लागू होते.
case_sensitivebooleanमुलभूत false. true वेळी अक्षरे जुळवा.
cURL
# 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.

HTML
<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-modelTTS model ID. Default kokoro.
data-extractauto (मूलभूत) — article/main/.post-content/.entry-content selectors चा प्रयत्न करतो, घनता जास्त असलेल्या अनुच्छेद क्लस्टरकडे परत जातो. किंवा विशिष्ट घटकाला लक्ष्य करण्यासाठी कोणत्याही CSS selector ला पास करतो.
data-positionbottom (डिफॉल्ट) किंवा top.
data-colorअधोरेखित रंग (कोणताही CSS रंग). मुलभूत #e60000.
data-min-chars / data-max-charsलेख किमान अक्षरांपेक्षा कमी असल्यास (मुलभूत 200) पट्टी सोडून द्या. कमाल अक्षरांपेक्षा जास्त असल्यास (मुलभूत 50, 000) इनपुट बंद करा.

गूगल प्ले स्टोअरवर:

ऐका बटण विजेटName

इनलाईन बटण- शैली अंतर्भूत. < code>< script> टॅग पासून पुढे रेंडरिंग करते व बटण- ट्रिगर केलेले लहान स्निपेट चालविते. वरील लेख वाचक पासून वेगळा आकार (जो स्वतःच पान- विस्तारीत पट्टी अंतर्भूत करतो व संपूर्ण लेख वाचतो).

HTML
<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 संदर्भित करा. उच्च आवाज एकत्रीकरणासाठी आदर्श.

किंमत: स्त्रोत मोफत आहे (दिवसाच्या भाड्याने नाही, स्लॉट कपात नाही). अपलोड फी: 500 अक्षरे एकदा प्रति आवाज. प्रति वापर अतिरिक्त फी: +50 अक्षरे प्रत्येक TTS निर्मिती करीता जोडले जाते जे संचयीत आवाजाचा संदर्भ देते, सामान्य निर्मिती खर्चाच्या वर. तुम्हाला आता आवश्यक नसलेले आवाज आर्काइव्ह करा त्यांना निष्क्रीय ठेवण्यासाठी; कोणत्याही वेळी पुन्हा सक्रीय करा. दोन्ही मोफत API कॉल आहेत.

आवाज अपलोड करा

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

Python - विनंतीStencils
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 - विनंतीStencils
# 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 - विनंतीStencils
# 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 - फेच
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 - फेच
// 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

ऑडिओ सुधारणName

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"
}
Webhook परिणाम पूर्णत्वानंतर २४ तासांसाठी डाऊनलोड करीता उपलब्ध आहेत. ते त्वरित डाऊनलोड करण्याची खात्री करा.

तयार आहात का?

Get your API key and start integrating TTS.ai into your applications.