API दस्तऐवजीकरण
TTS.ai ला आपल्या अनुप्रयोगांमध्ये आमचे REST API सोबत एकत्रित करा.
ओळख
TTS.ai API सर्व प्लॅटफॉर्म वैशिष्ट्यांसाठी प्रोग्रामिंग प्रवेश प्रदान करते: पाठ-ते-भाषण संश्लेषण, भाषण-ते-भाषण रूपांतर, आवाज क्लोनिंग, ऑडिओ सुधारणे, आणि अधिक.
API कि
येथे तुमची API किल्ली मिळवा खाते संयोजना. या कंपनीचे मुख्यालय औरंगाबाद येथे आहे.
आधार URL
https://api.tts.ai/v1/
अधिप्रमाणन
वाहक टोकन द्वारे Authorization शिर्षक
अधिप्रमाणन
सर्व API विनंती करीता खालीलमधील बेअरर टोकन द्वारे अधिप्रमाणन आवश्यक आहे 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) |
| 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 -X POST https://api.tts.ai/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "kokoro",
"text": "Hello from TTS.ai! This is a test.",
"voice": "af_bella",
"format": "mp3"
}' \
--output output.mp3
प्रतिसाद
योग्य Content-Type हेडरसह ऑडिओ फाइलला बाइनरी डेटा म्हणून परत करतो (audio/mpeg, audio/wav, इ.
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
वक्तव्य ते पाठ्यName
ऑडिओ पाठ्य करीता रूपांतरित करा. स्वचलित शोध सह 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 | 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 चा वापर करा.
पैरामीटर
| परिमाण | प्रकार | वर्णन@ 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
}
कोड उदाहरण
पाठ्य ते वक्तव्य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.