API ডকুমেন্টেশন
আপনার অ্যাপ্লিকেশনে আমাদের REST API এর সাথে TTS.ai একীভূত করুন। সহজ মাইগ্রেশনের জন্য OpenAI-এর সাথে সামঞ্জস্যপূর্ণ ফরম্যাট।
সারসংক্ষেপ
The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.
API কী
এখানে থেকে আপনার API কী প্রাপ্ত করুন অ্যাকাউন্ট সেটিংস. প্রো এবং এন্টারপ্রাইজ প্ল্যানে উপলব্ধ।
ভিত্তি ইউ- আর- এল
https://api.tts.ai/v1/
অনুমোদন
বিয়ারার টোকেন Authorization শীর্ষচরণ
অনুমোদন
সমস্ত API অনুরোধের জন্য প্রমাণীকরণের প্রয়োজন Authorization শীর্ষচরণ.
Authorization: Bearer sk-tts-your-api-key-here
ভিত্তি ইউ- আর- এল
সমস্ত শেষ বিন্দু এই মৌলিক ইউ- আর- এল এর সাথে সম্পর্কিত । উদাহরণস্বরূপ, TTS শেষ বিন্দু হল:
গতিসীমা
API হার সীমা পরিকল্পনা অনুযায়ী পরিবর্তিত হয়:
| প্ল্যান | অনুরোধ/মিনিট | Concurrent | টেক্সটের সর্বোচ্চ দৈর্ঘ্য |
|---|---|---|---|
| প্রফেসর | 60 | 5 | ৫,০০০ অক্ষর |
| এন্টারপ্রাইজ | 300 | 20 | ৫০,০০০ অক্ষর |
প্রতিটি উত্তরে রেট লিমিট হেডার অন্তর্ভুক্ত করা হবে: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
ক্রেডিট খরচ
| সার্ভিস | খরচ | একক |
|---|---|---|
| TTS (মুক্ত মডেল: পাইপার, VITS, MeloTTS) | ১ ক্রেডিট | প্রতি ১০০০ অক্ষর |
| TTS (প্রমিত মডেল: Kokoro, CosyVoice ২, ইত্যাদি) | ২ ক্রেডিট | প্রতি ১০০০ অক্ষর |
| TTS (প্রিমিয়াম মডেল: Tortoise, Chatterbox, ইত্যাদি) | ৪ ক্রেডিট | প্রতি ১০০০ অক্ষর |
| বক্তৃতা থেকে লেখাName | ২ ক্রেডিট | প্রতি মিনিটে অডিও |
| ভয়েস ক্লোন | ৪ ক্রেডিট | প্রতি ১০০০ অক্ষর |
| শব্দ পরিবর্তকName | ৩ ক্রেডিট | প্রতি মিনিটে অডিও |
| অডিও উন্নতি | ২ ক্রেডিট | প্রতি মিনিটে অডিও |
| ভেক্টর অপসারণ / স্টেম বিভাজন | ৩-৪ ক্রেডিট | প্রতি মিনিটে অডিও |
| ভাষণ অনুবাদName | ৫ ক্রেডিট | প্রতি মিনিটে অডিও |
| ভয়েস আড্ডা | ৩ ক্রেডিট | প্রতি ধাপে |
| কী (key) BPM অনুসন্ধানকারী | মুক্ত | -- |
| অডিও রূপান্তরকারী | মুক্ত | -- |
টেক্সট- থেকে- কথাName
টেক্সটকে বক্তৃতার অডিওতে রূপান্তর করে । অনুরোধ করা ফরম্যাটে অডিও ফাইল ফিরিয়ে দেয় ।
অনুরোধের মূল অংশ
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
| model | string | হ্যাঁ | মডেল ID (যেমন, kokoro, chatterbox, piper) |
| text | string | হ্যাঁ | যে টেক্সটকে কথায় রূপান্তর করা হবে (প্রো-র জন্য সর্বোচ্চ ৫,০০০ অক্ষর, এন্টারপ্রাইজ-এর জন্য ৫০,০০০ অক্ষর) |
| voice | string | হ্যাঁ | ভয়েস ID (প্রয়োজনীয় ভয়েস তালিকাভুক্ত করতে /v1/voices/ ব্যবহার করুন) |
| format | string | না | আউটপুট ফরম্যাট: mp3 (ডিফল্ট), wav, flac, ogg |
| speed | float | না | কথা বলার গতি বহুগুণক। ডিফল্ট: ১.০। পরিধি: ০.৫ থেকে ২.০ |
| 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
প্রতিক্রিয়া
Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
বক্তৃতা থেকে লেখাName
অডিও থেকে টেক্সট অনুবাদ করুন। স্বয়ংক্রিয় সনাক্তকরণ সহ ৯৯টি ভাষা সমর্থন করে।
অনুরোধের মূল অংশ (multipart/form-data)
| প্যারামিটার | ধরন | আবশ্যক | বর্ণনা |
|---|---|---|---|
| file | file | হ্যাঁ | অডিও ফাইল (MP3, WAV, FLAC, OGG, M4A, MP4, WebM)। সর্বোচ্চ ১০০ মেগাবাইট। |
| model | string | না | STT মডেল: whisper (ডিফল্ট), faster-whisper, sensevoice |
| 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 | হ্যাঁ | রেফারেন্স ভয়েস অডিও (১০-৩০ সেকেন্ড সুপারিশ করা হয়)। সর্বোচ্চ ২০ মেগাবাইট। |
| 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)। সর্বাধিক ৫০ মেগাবাইট। |
| target_voice | string | হ্যাঁ | যে ভয়েস আইডিতে রূপান্তর করা হবে (প্রযোজ্য ভয়েস তালিকাভুক্ত করতে /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 | হ্যাঁ | মূল ভাষায় উৎস অডিও ফাইল। সর্বোচ্চ ১০০ মেগাবাইট। |
| target_language | string | হ্যাঁ | লক্ষ্য ভাষার কোড (যেমন, es, fr, de, ja) |
| voice | string | না | অনুবাদকৃত আউটপুটের জন্য ভয়েস। উপেক্ষা করা হলে স্বয়ংক্রিয়ভাবে বেছে নেওয়া হবে। |
| preserve_voice | boolean | না | প্রাথমিক স্পিকার সংরক্ষণ করার চেষ্টা করুন |
প্রতিক্রিয়া
{
"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 | হ্যাঁ | উৎস বাক্য অডিও ফাইল। সর্বোচ্চ ৫০ মেগাবাইট। |
| 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 | ১- ৩ (হালকা, মাঝারি, শক্তিশালী) । ডিফল্ট: ২ |
বাদ্যযন্ত্র থেকে কণ্ঠস্বর আলাদা করুন (কণ্ঠস্বর অপসারণ) অথবা স্টেম- এ বিভক্ত করুন।
| file file | যে অডিও ফাইলটি আলাদা করা হবে |
| model string | demucs (ডিফল্ট) অথবা spleeter |
| stems integer | স্টেম- এর সংখ্যা: ২, ৪, ৫, অথবা ৬ (ডিফল্ট: ২) |
| format string | আউটপুট ফরম্যাট: wav, mp3, flac |
অডিও রেকর্ড থেকে প্রতিধ্বনি এবং প্রতিধ্বনি অপসারণ করুন।
| file file | যে অডিও ফাইলটি প্রসেস করা হবে |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
কী, BPM এবং টাইম স্বাক্ষর সনাক্ত করার জন্য অডিও বিশ্লেষণ করুন।
| file file | Audio file to analyze |
{
"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 | আউটপুট বিটরেট কিলোবাইট/ সেকেন্ডে: ৬৪, ১২৮, ১৯২, ২৫৬, ৩২০ |
| sample_rate integer | নমুনা হার: ২২০৫০, ৪৪১০০, ৪৮০০০ |
| 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
}
মডেলের তালিকা
সমস্ত উপলব্ধ মডেল এবং তাদের বৈশিষ্ট্যের একটি তালিকা প্রদান করে ।
প্রতিক্রিয়া
{
"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 | লিঙ্গ অনুযায়ী পরিশোধক: পুরুষ, মহিলা, নিরপেক্ষ |
প্রতিক্রিয়া
{
"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
অডিও উন্নতি
# 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 credits for this request.",
"credits_required": 4,
"credits_available": 2
}
}
| HTTP স্ট্যাটাস | Error Code | বর্ণনা |
|---|---|---|
| 400 | bad_request |
অকার্যকর অনুরোধ পরামিতি । বিস্তারিত তথ্যের জন্য ত্রুটি বার্তা পরীক্ষা করুন । |
| 401 | unauthorized |
API কী অনুপস্থিত অথবা অবৈধ। |
| 402 | insufficient_credits |
যথেষ্ট ক্রেডিট নেই। /pricing/-এ আরো কিনুন। |
| 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"
}
নির্মাণের জন্য প্রস্তুত?
আপনার এপিআই কী পেয়ে নিন এবং আপনার অ্যাপ্লিকেশনে টিটিএস. এআই একীভূত করা শুরু করুন।