API দস্তাবেজ
আমাৰ REST API ৰ সৈতে আপোনাৰ এপ্লিকেচনত TTS.ai একত্ৰিত কৰক। সহজ প্ৰব্ৰজনৰ বাবে OpenAI-সমৰ্থিত বিন্যাস।
চমু পৰিচয়
TTS.ai API য়ে সকলো প্লেটফৰ্ম বৈশিষ্ট্যৰ বাবে প্ৰগ্ৰামিক প্ৰৱেশ প্ৰদান কৰে: টেক্সট-টু-স্পিচ সংশ্লেষণ, টেক্সট-টু-স্পিচ অনুবাদ, শব্দ ক্লোনিং, অডিঅ' উন্নয়ন, আৰু অধিক। API য়ে JSON অনুৰোধ/প্ৰতিক্ৰিয়া শৰীৰৰ সৈতে প্ৰমিত REST কনভেনচন ব্যৱহাৰ কৰে।
API চাবি
আপোনাৰ API চাবি প্ৰাপ্ত কৰক একাওন্ট সংহতিসমূহ. Pro আৰু Enterprise পৰিকল্পনাত উপলব্ধ।
ভিত্তি URL
https://api.tts.ai/v1/
প্ৰমাণীকৰণ
বাহক টোকেন Authorization হেডাৰ
প্ৰমাণীকৰণ
/v1/tts/ কোনো প্ৰমাণীকৰণ অবিহনে কাম কৰক, প্ৰতি IP লৈ ৫,০০০ আখৰ/দিন, আমাৰ কোনো বিনামূলীয়া মডেল ব্যৱহাৰ কৰি (piper, vits, melotts, kokoro). ১৫,০০০টা বনাম আখৰ আৰু প্ৰিমিয়াম মডেলসমূহৰ বাবে এটা বিনামূলীয়া একাওন্টৰ বাবে নিবন্ধন কৰক।
সকলো API অনুৰোধৰ বাবে এটা Bearer টোকেনৰ দ্বাৰা প্ৰমাণীকৰণৰ প্ৰয়োজন Authorization হেডাৰ.
Authorization: Bearer sk-tts-your-api-key-here
SDKs
কৰ্তৃপক্ষীয় SDKs সমূহে আপোনাৰ এপ্লিকেচনত TTS.ai একত্ৰিত কৰাটো সহজ কৰে। দুয়োটা মুক্ত উৎস আৰু 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 (মুক্ত মডেল: Piper, VITS, MeloTTS) | ১ ক্ৰেডিট | প্ৰতি ১,০০০ আখৰ |
| TTS (প্ৰমিত আৰ্হি: Kokoro, CosyVoice ২, ইত্যাদি) | ২ ক্ৰেডিট | প্ৰতি ১,০০০ আখৰ |
| TTS (প্ৰিমিয়াম মডেল: Tortoise, Chatterbox, ইত্যাদি) | ৪ ক্রেডিট | প্ৰতি ১,০০০ আখৰ |
| কথাৰ পৰা লিপিলৈName | ২ ক্ৰেডিট | প্ৰতি মিনিটত অডিঅ' |
| ধ্বনি ক্লোনিং | ৪ ক্রেডিট | প্ৰতি ১,০০০ আখৰ |
| শব্দ পৰিবৰ্তনকাৰী | ৩ ক্রেডিট | প্ৰতি মিনিটত অডিঅ' |
| অডিঅ' উন্নয়ন | ২ ক্ৰেডিট | প্ৰতি মিনিটত অডিঅ' |
| কণ্ঠ অপসাৰণ / কণ্ঠ বিভাজন | 3-4 ক্ৰেডিট | প্ৰতি মিনিটত অডিঅ' |
| ভাষণ অনুবাদ | ৫ ক্রেডিট | প্ৰতি মিনিটত অডিঅ' |
| ভয়েস চেট | ৩ ক্রেডিট | প্ৰতি আৱৰ্জনা |
| কি' আৰু BPM অনুসন্ধানকাৰী | মুক্ত | -- |
| অডিঅ' পৰিবৰ্তনকাৰী | মুক্ত | -- |
টেক্সট-টু-স্পীচName
টেক্সটক কথোপকথনৰ অডিঅ'লৈ ৰূপান্তৰ কৰক । অনুৰোধ কৰা বিন্যাসত অডিঅ' ফাইল ঘুৰাই দিয়ে ।
অনুৰোধৰ মূল অংশ
| প্ৰাচলসমূহ | ধৰণ | প্ৰয়োজনীয় | বৰ্ণনা |
|---|---|---|---|
| model | string | নহয় | আৰ্হি ID (যেনে, kokoro, chatterbox, piper) |
| text | string | হ্যাঁ | কথোপকথনে ৰূপান্তৰ কৰিব লগিয়া লিপি (Pro ৰ বাবে সৰ্বাধিক ৫,০০০ আখৰ, Enterprise ৰ বাবে ৫০,০০০) |
| 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
অডিঅ'ক টেক্সটলৈ অনুবাদ কৰক। স্বয়ংক্ৰিয় অনুসন্ধানৰ সৈতে ৯৯টা ভাষা সমৰ্থন কৰে।
অনুৰোধৰ মূল অংশ (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 অন্তবিন্দুৰ সৈতে একে।
শব্দ পৰিবৰ্তনকাৰী
অডিঅ'ক এটা ভিন্ন শব্দৰ দৰে শব্দ কৰিবলৈ পৰিবৰ্তন কৰক। উৎস অডিঅ' আপলোড কৰক আৰু এটা লক্ষ্য শব্দ বাছক।
অনুৰোধৰ মূল অংশ (multipart/form-data)
| প্ৰাচলসমূহ | ধৰণ | প্ৰয়োজনীয় | বৰ্ণনা |
|---|---|---|---|
| file | file | হ্যাঁ | উৎস অডিঅ' নথিপত্ৰ (MP3, WAV, FLAC) । সৰ্বাধিক ৫০ মেগাবাইট । |
| 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
প্ৰতিক্ৰিয়া
পৰিবৰ্তন কৰা অডিঅ' নথিপত্ৰক বাইনাৰি তথ্য হিচাপে ঘুৰাই দিয়ে।
ভাষণ অনুবাদ
এটা ভাষাৰ পৰা আন এটা ভাষালৈ কথোপকথনৰ অডিঅ' অনুবাদ কৰক। এটা কলত কথোপকথন-থেকে-লিপি, অনুবাদ, আৰু লিপি-থেকে-কথোপকথন একত্ৰিত কৰে।
অনুৰোধৰ মূল অংশ (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
}
কথাৰ পৰা কথালৈName
বিষয়বস্তু সংৰক্ষণ কৰি কথাৰ শৈলী, অনুভূতি, অথবা উপস্থাপন পৰিবৰ্তন কৰক। টোন, পেচিং, আৰু অভিব্যক্তিৰ পৰিবৰ্তনৰ বাবে ব্যৱহাৰযোগ্য।
অনুৰোধৰ মূল অংশ (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 |
প্ৰতিক্ৰিয়া
পৰিবৰ্তন কৰা অডিঅ' নথিপত্ৰক বাইনাৰি তথ্য হিচাপে ঘুৰাই দিয়ে।
অডিঅ' সঁজুলিসমূহ
উন্নতি, কণ্ঠ অপসাৰণ, ষ্টেম বিভাজন, আৰু অধিকৰ বাবে অডিঅ' প্ৰক্ৰিয়াকৰণৰ অন্তিম বিন্দু।
অডিঅ'ৰ গুণমান উন্নত কৰক: ধ্বনি প্ৰতিৰোধ, সুস্পষ্টতা উন্নত কৰক, অতিৰিক্ত বিভাজন।
| 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 | বিশ্লেষণৰ বাবে অডিঅ' নথিপত্ৰ |
{
"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 ত আউটপুট বিটৰেট: ৬৪, ১২৮, ১৯২, ২৫৬, ৩২০ |
| 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
}
ব্যাচ TTS
সমান্তৰাল TTS সৃষ্টিৰ বাবে একাধিক টেক্সট প্ৰেৰণ কৰক। সকলো কাম সম্পূৰ্ণ হ'লে বৈকল্পিকভাৱে এটা webhook কলব্যাক প্ৰাপ্ত কৰক।
প্ৰাচলসমূহ
| প্ৰাচলসমূহ | ধৰণ | বৰ্ণনা |
|---|---|---|
| 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 ব্যৱহাৰ কৰক।
প্ৰাচলসমূহ
| প্ৰাচলসমূহ | ধৰণ | বৰ্ণনা |
|---|---|---|
| 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 চাৰ্ভাৰৰ অৱস্থা, ল'ড কৰা মডেল, আৰু লাইন আকাৰ পৰীক্ষা কৰক। প্ৰমাণীকৰণৰ প্ৰয়োজন নাই। ৩০ ছেকেণ্ডৰ বাবে ক্যাশ কৰা হৈছে।
প্ৰতিক্ৰিয়া
{
"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
উচ্চাৰণ অভিধান নতুন
TTS ইঞ্জিনক কওক কিদৰে নিৰ্দিষ্ট শব্দ উচ্চাৰণ কৰিব। সংৰক্ষিত নিবেশসমূহ আপুনি কৰা প্ৰতিটো TTS অনুৰোধত স্বয়ংক্ৰিয়ভাৱে প্ৰয়োগ কৰা হয়। প্ৰতি একাওন্টত ২০০-নিবেশৰ সীমা।
অনুৰোধৰ মূল অংশ (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 চাওক) ।
প্ৰবন্ধ বৰ্ণনাকাৰী নতুন
যিকোনো প্ৰবন্ধ পৃষ্ঠাত এটা টেগ পেলাওক আৰু ভ্ৰমণকাৰীসকলে এটা স্থায়ী পঢ়ক বাৰ পাব যি ক্লিক কৰিলে পৃষ্ঠাক বৰ্ণনা কৰে। প্ৰবন্ধৰ মূল অংশ স্বয়ংক্ৰিয়ভাৱে চিনাক্ত কৰে, স্বনিৰ্বাচিত শব্দ / মডেল / অৱস্থান / উচ্চাৰণ ৰং সমৰ্থন কৰে।
<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 মডেল ID। অবিকল্পিত kokoro। |
data-extract | auto (অবিকল্পিত) — article/main/.post-content/.entry-content নিৰ্বাচকসমূহ চেষ্টা কৰে, সৰ্বাধিক ঘন অনুচ্ছেদ ক্লাস্টাৰত ফিৰিয়ে আনে। অথবা কোনো CSS নিৰ্বাচকক এটা নিৰ্দিষ্ট উপাদান লক্ষ্য কৰিবলৈ দিয়ে। |
data-position | bottom (অবিকল্পিত) অথবা top। |
data-color | উজ্জ্বল ৰং (যেকোনো CSS ৰঙ) । অবিকল্পিত #e60000 । |
data-min-chars / data-max-chars | যদি প্ৰবন্ধৰ আখৰ সংখ্যা সৰ্বনিম্ন আখৰৰ সংখ্যা (অবিকল্পিত ২০০) ৰ কম হয়, বাৰটি এড়িয়ে যাওক। আখৰ সংখ্যা সর্বোচ্চ হ'লে ইনপুট বন্ধ কৰক (অবিকল্পিত ৫০,০০০)। |
ৱিকিপিডিয়া:অনুবাদ
শুনিব বুটাম উইজেট
ইনলাইন বুটাম-শৈলীৰ এম্বেড। টেগৰ ওচৰত প্ৰদৰ্শন কৰা হয় আৰু বুটাম-প্ৰদৰ্শিত এটা সৰু স্নিপেট বজায়। উপৰ উল্লিখিত প্ৰবন্ধ বৰ্ণনাকাৰীৰ পৰা ভিন্ন আকৃতি (যি পৃষ্ঠা-বিস্তৃত বাৰ স্বয়ংক্ৰিয়ভাৱে প্ৰৱেশ কৰে আৰু সম্পূৰ্ণ প্ৰবন্ধ বৰ্ণনা কৰে)।
<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/
প্ৰমাণীকৰণৰ প্ৰয়োজন
বহু-অংশৰ বিন্যাস। ক্ষেত্ৰসমূহ: ফাইল (অৱশ্যক, ৫-৩০s অডিঅ'), নাম (অৱশ্যক), ভাষা (বৈকল্পিক, অবিকল্পিত en), আৰ্হি (বৈকল্পিক — zh/ja/ko else openvoice ৰ বাবে cosyvoice2 স্বয়ংক্ৰিয়ভাবে বাচি ল'ব), 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 ত সংৰক্ষিত শব্দ ব্যৱহাৰ কৰক
user_voice_id ৰ সৈতে /api/v1/tts/ (নিজেই লিখা: ৱেব VPS হস্ট, api.tts.ai নহয়) লে POST কৰক। আমি আপোনাৰ সংৰক্ষিত অডিঅ' আৰু পথক ক্লোনিং পাইপলাইনলৈ ল'ড কৰোঁ।
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
অডিঅ' উন্নয়ন
# 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 |
যথেষ্ট ক্ৰেডিট নাই। /pricing/ ত অধিক কিনক। |
| 403 | forbidden |
এই সম্পদ ব্যৱহাৰৰ বাবে আপোনাৰ অনুমতি নাই (যেনে অন্য ব্যৱহাৰকাৰীৰ কাম প'লিং কৰা)। API ব্যৱহাৰ প্ৰত্যেক প্ল্যানত অন্তৰ্ভুক্ত আছে। |
| 404 | not_found |
মডেল অথবা শব্দ পোৱা নগল। |
| 413 | file_too_large |
আপলোড কৰা নথিপত্ৰৰ আকাৰ সীমা অতিক্ৰম কৰিছে । |
| 429 | rate_limited |
অত্যাধিক অনুৰোধ। হাৰ সীমা হেডাৰ পৰীক্ষা কৰক। |
| 500 | internal_error |
চাৰ্ভাৰ সংক্ৰান্ত ত্ৰুটি। পিছত পুনৰ চেষ্টা কৰক। |
| 503 | model_loading |
মডেল ল'ড কৰা হৈছে । কিছু ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক । |
ৱেবহুকসমূহ
দীৰ্ঘমেয়াদী কাৰ্য্যসমূহৰ বাবে (stem splitting, batch 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"
}
নিৰ্মাণৰ বাবে প্ৰস্তুত?
আপোনাৰ API কি' প্ৰাপ্ত কৰক আৰু আপোনাৰ এপ্লিকেচনসমূহত TTS.ai একত্ৰিত কৰা আৰম্ভ কৰক।