API ডকুমেন্টেশন

আপনার অ্যাপ্লিকেশনে আমাদের REST API এর সাথে TTS.ai একীভূত করুন। সহজ মাইগ্রেশনের জন্য OpenAI-এর সাথে সামঞ্জস্যপূর্ণ ফরম্যাট।

REST API OpenAI সমর্থিত JSON প্রতিক্রিয়া স্ট্রিমিং সমর্থন

সারসংক্ষেপ

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 শীর্ষচরণ.

HTTP হেডার
Authorization: Bearer sk-tts-your-api-key-here
আপনার API কী গোপন রাখুন। ক্লায়েন্ট-সাইড কোড, পাবলিক রিপোজিটরি অথবা লগ-এ এটি শেয়ার করবেন না। আপনার অ্যাকাউন্টের বৈশিষ্ট্য থেকে নিয়মিতভাবে কী পাল্টান।

ভিত্তি ইউ- আর- এল

ভিত্তি ইউ- আর- এল: https://api.tts.ai/v1/

সমস্ত শেষ বিন্দু এই মৌলিক ইউ- আর- এল এর সাথে সম্পর্কিত । উদাহরণস্বরূপ, TTS শেষ বিন্দু হল:

POST https://api.tts.ai/v1/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

POST /v1/tts/

টেক্সটকে বক্তৃতার অডিওতে রূপান্তর করে । অনুরোধ করা ফরম্যাটে অডিও ফাইল ফিরিয়ে দেয় ।

অনুরোধের মূল অংশ

প্যারামিটারধরনআবশ্যকবর্ণনা
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
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

POST /v1/stt/

অডিও থেকে টেক্সট অনুবাদ করুন। স্বয়ংক্রিয় সনাক্তকরণ সহ ৯৯টি ভাষা সমর্থন করে।

অনুরোধের মূল অংশ (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

প্রতিক্রিয়া

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 হ্যাঁ রেফারেন্স ভয়েস অডিও (১০-৩০ সেকেন্ড সুপারিশ করা হয়)। সর্বোচ্চ ২০ মেগাবাইট।
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)। সর্বাধিক ৫০ মেগাবাইট।
target_voice string হ্যাঁ যে ভয়েস আইডিতে রূপান্তর করা হবে (প্রযোজ্য ভয়েস তালিকাভুক্ত করতে /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 হ্যাঁ মূল ভাষায় উৎস অডিও ফাইল। সর্বোচ্চ ১০০ মেগাবাইট।
target_language string হ্যাঁ লক্ষ্য ভাষার কোড (যেমন, es, fr, de, ja)
voice string না অনুবাদকৃত আউটপুটের জন্য ভয়েস। উপেক্ষা করা হলে স্বয়ংক্রিয়ভাবে বেছে নেওয়া হবে।
preserve_voice boolean না প্রাথমিক স্পিকার সংরক্ষণ করার চেষ্টা করুন

প্রতিক্রিয়া

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
}

বক্তৃতা থেকে বক্তৃতা

POST /v1/speech-to-speech/

বক্তব্যের ধরন, আবেগ, অথবা বিষয়বস্তু বজায় রেখে উপস্থাপনা পরিবর্তন করুন। টোন, গতি এবং অভিব্যক্তি সংশোধন করার জন্য উপযোগী।

অনুরোধের মূল অংশ (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

উন্নতির জন্য অডিও প্রসেসিং এন্ডপয়েন্ট, ভয়েস অপসারণ, স্টেম বিভাজন এবং আরও অনেক কিছু।

POST /v1/audio/enhance/

অডিও গুণমান উন্নত করুন: ঝামেলা দূর করুন, সুস্পষ্টতা উন্নত করুন, সুপার রেজোলিউশন।

file fileউন্নত করার জন্য অডিও ফাইল
denoise booleanনিঃশব্দীকরণ সক্রিয় করো (ডিফল্ট: সত্য)
enhance_clarity booleanবক্তৃতার স্পষ্টতা বাড়াও (ডিফল্ট: সত্য)
super_resolution booleanঅডিও গুণমান উন্নত করুন (ডিফল্ট: মিথ্যা)
strength integer১- ৩ (হালকা, মাঝারি, শক্তিশালী) । ডিফল্ট: ২
POST /v1/audio/separate/

বাদ্যযন্ত্র থেকে কণ্ঠস্বর আলাদা করুন (কণ্ঠস্বর অপসারণ) অথবা স্টেম- এ বিভক্ত করুন।

file fileযে অডিও ফাইলটি আলাদা করা হবে
model stringdemucs (ডিফল্ট) অথবা spleeter
stems integerস্টেম- এর সংখ্যা: ২, ৪, ৫, অথবা ৬ (ডিফল্ট: ২)
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/ মুক্ত

কী, BPM এবং টাইম স্বাক্ষর সনাক্ত করার জন্য অডিও বিশ্লেষণ করুন।

file fileAudio 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"]
}
POST /v1/audio/convert/ মুক্ত

ফরম্যাটের মধ্যে অডিও রূপান্তর করুন।

file fileযে অডিও ফাইল রূপান্তর করা হবে
format stringলক্ষ্য ফরম্যাট: mp3, wav, flac, ogg, m4a, aac
bitrate integerআউটপুট বিটরেট কিলোবাইট/ সেকেন্ডে: ৬৪, ১২৮, ১৯২, ২৫৬, ৩২০
sample_rate integerনমুনা হার: ২২০৫০, ৪৪১০০, ৪৮০০০
channels stringmono অথবা stereo

ভয়েস আড্ডা

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 এর জন্য স্বনির্বাচিত সিস্টেম প্রম্পট
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
}

মডেলের তালিকা

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 লিঙ্গ অনুযায়ী পরিশোধক: পুরুষ, মহিলা, নিরপেক্ষ

প্রতিক্রিয়া

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
}

কোড উদাহরণ

টেক্সট- থেকে- কথাName

Python - requests
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 - requests
# 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 - requests
# 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 - fetch
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 - fetch
// 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

অডিও উন্নতি

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 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"
}
ওয়েবহুক ফলাফল সম্পূর্ণ হওয়ার ২৪ ঘণ্টার মধ্যে ডাউনলোডের জন্য উপলব্ধ হবে। নিশ্চিত হয়ে তা দ্রুত ডাউনলোড করুন।

নির্মাণের জন্য প্রস্তুত?

আপনার এপিআই কী পেয়ে নিন এবং আপনার অ্যাপ্লিকেশনে টিটিএস. এআই একীভূত করা শুরু করুন।