API ଦଲିଲିକରଣ
ଆମର REST API ସହିତ ଆପଣଙ୍କର ପ୍ରୟୋଗଗୁଡ଼ିକରେ TTS.aiକୁ ଏକୀକୃତ କରନ୍ତୁ। ସହଜ ପରିବହନ ପାଇଁ OpenAI-ସଂଗତିପୂର୍ଣ୍ଣ ଶୈଳୀ।
ସମୀକ୍ଷା
TTS.ai API ସମସ୍ତ ପ୍ଲାଟଫର୍ମ ଗୁଣଧର୍ମ ପାଇଁ ପ୍ରଗ୍ରାମମୂଳକ ପ୍ରବେଶ ସୁବିଧା ପ୍ରଦାନ କରେ: ପାଠ୍ୟ-ରୁ-ବାକ୍ୟ ସଂଶ୍ଲେଷଣ, ବାକ୍ୟ-ରୁ-ବାକ୍ୟ ଅନୁବାଦ, ସ୍ୱର କ୍ଲୋନିଂ, ଧ୍ୱନି ସମ୍ପ୍ରସାରଣ, ଏବଂ ଅଧିକ। API JSON ଅନୁରୋଧ/ପ୍ରତିକ୍ରିୟା ଶରୀର ସହିତ ମାନକ REST ସମ୍ମିଳନୀ ବ୍ୟବହାର କରେ।
API କି
ଆପଣଙ୍କର API କିକୁ ଏଠାରୁ ପାଇବେ ଖାତା ବିନ୍ୟାସଗୁଡ଼ିକ. ପ୍ରୋ ଏବଂ ଏଣ୍ଟରପ୍ରାଇଜ ଯୋଜନାରେ ଉପଲବ୍ଧ ।
ଆଧାର URL
https://api.tts.ai/v1/
ପ୍ରାଧିକରଣ
ଧାରକ ଟୋକନ ମାଧ୍ୟମରେ Authorization ଶୀର୍ଷକ
ବୈଧିକରଣ
/v1/tts/ କୌଣସି ପ୍ରମାଣପତ୍ର ବିନା କାର୍ଯ୍ୟ କରନ୍ତୁ, ପ୍ରତି IP ପାଇଁ 5,000 ଅକ୍ଷର/ଦିନ ପର୍ଯ୍ୟନ୍ତ, ଆମର ଯେକୌଣସି ମୁକ୍ତ ମଡେଲକୁ ବ୍ୟବହାର କରି (piper, vits, melotts, kokoro). 15,000 ବନାମ୍ ଅକ୍ଷର ଏବଂ ପ୍ରୀମିୟମ ମଡେଲକୁ ପ୍ରବେଶ କରିବା ପାଇଁ ମୁକ୍ତ ଖାତା ପାଇଁ ସଦସ୍ୟତା ନିଅନ୍ତୁ ।
ପ୍ରୀମିୟମ ମଡେଲ ଏବଂ ଉଚ୍ଚ ହାର ସୀମା ପାଇଁ, ରେ ଗୋଟିଏ ଧାରକ ଟୋକର ସହିତ ବୈଧିକରଣ କରନ୍ତୁ Authorization ଶୀର୍ଷକ.
Authorization: Bearer sk-tts-your-api-key-here
SDKଗୁଡ଼ିକName
ସରକାରୀ 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 | 500 ଅକ୍ଷର |
| ଆରମ୍ଭକର୍ତ୍ତା | 30 | 3 | ଅକ୍ଷର |
| ପ୍ରୋ | 60 | 5 | ଅକ୍ଷର |
| କମ୍ପାନୀName | 300 | 20 | 50,000 ଅକ୍ଷର |
ଦର ସୀମା ଶୀର୍ଷକଗୁଡ଼ିକୁ ପ୍ରତ୍ୟେକ ଉତ୍ତରରେ ଅନ୍ତର୍ଭୁକ୍ତ କରାଯାଇଛି: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
ଋଣ ଖର୍ଚ୍ଚ
| ସର୍ଭିସ | ଖର୍ଚ୍ଚ | ଏକକ |
|---|---|---|
| TTS (ମୁକ୍ତ ନମୂନା: Piper, VITS, MeloTTS) | 1,000 ଅକ୍ଷର | ପ୍ରତି 1,000 ଅକ୍ଷର |
| TTS (ମାନକ ନମୂନା: Kokoro, CosyVoice2, ଇତ୍ୟାଦି) | 2,000 ଅକ୍ଷର | ପ୍ରତି 1,000 ଅକ୍ଷର |
| TTS (ପ୍ରୀମିୟମ ନମୂନା: Tortoise, Chatterbox, ଆଦି) | 4,000 ଅକ୍ଷର | ପ୍ରତି 1,000 ଅକ୍ଷର |
| ବାକ୍ୟରୁ ପାଠ୍ୟName | 2,000 ଅକ୍ଷର | ପ୍ରତି ମିନିଟରେ ଧ୍ୱନି |
| ଧ୍ୱନି କ୍ଲୋନିଂName | 4,000 ଅକ୍ଷର | ପ୍ରତି 1,000 ଅକ୍ଷର |
| ଧ୍ୱନି ପରିବର୍ତ୍ତକName | 3,000 ଅକ୍ଷର | ପ୍ରତି ମିନିଟରେ ଧ୍ୱନି |
| ଧ୍ୱନି ଉନ୍ନତି | 2,000 ଅକ୍ଷର | ପ୍ରତି ମିନିଟରେ ଧ୍ୱନି |
| ସ୍ୱର ଅପସାରଣ / ସ୍ୱର ବିଭାଜନ | 3,000-4,000 ଅକ୍ଷର | ପ୍ରତି ମିନିଟରେ ଧ୍ୱନି |
| ଭାଷଣ ଅନୁବାଦName | 5,000 ଅକ୍ଷର | ପ୍ରତି ମିନିଟରେ ଧ୍ୱନି |
| ଧ୍ୱନି ଚାଟName | 3,000 ଅକ୍ଷର | ପ୍ରତି ପାର୍ଶ୍ୱ |
| କି ଏବଂ BPM ସନ୍ଧାନକାରୀ | ମୁକ୍ତ | -- |
| ଧ୍ୱନି ପରିବର୍ତ୍ତକName | ମୁକ୍ତ | -- |
ପାଠ୍ୟରୁ ବାକ୍ୟName
ପାଠ୍ୟକୁ ବାକ୍ୟ ଧ୍ୱନିରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ । ଅନୁରୋଧିତ ଶୈଳୀରେ ଧ୍ୱନି ଫାଇଲକୁ ଫେରାଇଥାଏ ।
ଅନୁରୋଧ ଶରୀରର
| ପ୍ରାଚଳଗୁଡିକ | ପ୍ରକାର | ଆବଶ୍ୟକୀୟ | ବର୍ଣ୍ଣନା |
|---|---|---|---|
| model | string | ନାମ | ନମୂନା ID (ଯେପରିକି, kokoro, chatterbox, piper). ଯଦି ଅଲଗା କରାଯାଏ, ଆମେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଗୋଟିଏ ନମୂନାକୁ ବାଛିବା ଯାହା ଅନୁରୋଧିତ languageକୁ ସମର୍ଥନ କରେ - 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 | ନାମ | କାର୍ଯ୍ୟ କରୁଥିବା / ପ୍ରଦାନ କରୁଥିବା ସନ୍ଦେଶଗୁଡ଼ିକ (≤500 ଅକ୍ଷର)। ଉଦାହରଣ ସ୍ୱରୂପ \ |
| 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-31December thirty-first, nineteen ninety-nine 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.Full example
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
ଧ୍ୱନିକୁ ପାଠ୍ୟରେ ଅନୁବାଦ କରନ୍ତୁ। ସ୍ୱୟଂଚାଳିତ ଅନୁସନ୍ଧାନ ସହିତ 99ଟି ଭାଷାକୁ ସମର୍ଥନ କରିଥାଏ।
ଅନୁରୋଧ ଶରୀରର (multipart/form-data)
| ପ୍ରାଚଳଗୁଡିକ | ପ୍ରକାର | ଆବଶ୍ୟକୀୟ | ବର୍ଣ୍ଣନା |
|---|---|---|---|
| file | file | ହଁ | ଧ୍ୱନି ଫାଇଲ (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). ସର୍ବାଧିକ 100MB। |
| 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"
}
]
}
ଧ୍ୱନି କ୍ଲୋନିଂName
ଗୋଟିଏ କ୍ଲୋନ ଧ୍ୱନିରେ ଭାଷଣ ସୃଷ୍ଟି କରନ୍ତୁ। ଗୋଟିଏ ସଂଯୋଗ ଧ୍ୱନି ଏବଂ ପାଠ୍ୟକୁ ଅପଲୋଡ କରନ୍ତୁ।
ଅନୁରୋଧ ଶରୀରର (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 | ନାମ | ଲକ୍ଷ୍ୟ ଭାବନା: ନିର୍ଦ୍ଦିଷ୍ଟ, ଖୁସି, ଦୁଃଖୀ, କ୍ଷୋଭିତ, ପ୍ରଫୁଲ୍ଲିତ |
| speed | float | ନାମ | ବେଗ ସଂରଚନା. ପୂର୍ବନିର୍ଦ୍ଧାରିତ: 1.0. ପରିସର: 0.5 ରୁ 2.0 |
ଉତ୍ତର ଦିଅନ୍ତୁ
ପରିବର୍ତ୍ତିତ ଧ୍ୱନି ଫାଇଲକୁ ଦ୍ୱିମାତ୍ର ତଥ୍ୟ ଭାବରେ ଫେରାଇଥାଏ।
ଧ୍ୱନି ସାଧନଗୁଡ଼ିକ
ଉନ୍ନତି ପାଇଁ ଧ୍ୱନି ପ୍ରକ୍ରିୟାକରଣ ସମାପ୍ତି ବିନ୍ଦୁ, ସ୍ୱର ଅପସାରଣ, ସ୍ତମ୍ଭ ବିଭାଜନ, ଏବଂ ଅଧିକ।
ଧ୍ୱନି ଗୁଣବତ୍ତାକୁ ବଢ଼ାନ୍ତୁ: ଶବ୍ଦ ହ୍ରାସ କରନ୍ତୁ, ସ୍ପଷ୍ଟତାକୁ ବଢ଼ାନ୍ତୁ, ସୁପର ରିଜୋଲ୍ୟୁସନ।
| 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) |
କି, 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 | kbit/s ରେ ନିର୍ଗମ ବିଟହାର: 64, 128, 192, 256, 320 |
| sample_rate integer | ନମୁନା ହାର: 22050, 44100, 48000 |
| 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 ପାଇଁ ଇଚ୍ଛାରୂପଣ ତନ୍ତ୍ର ପ୍ରସ୍ତାବ |
| 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 ଉତ୍ପାଦନ ପାଇଁ ଏକାଧିକ ପାଠ୍ୟ ଦାଖଲ କରନ୍ତୁ। ସମସ୍ତ କାର୍ଯ୍ୟ ସମାପ୍ତ ହେବା ସମୟରେ ଇଚ୍ଛାନୁସାରେ ଗୋଟିଏ ୱେବହୁକ କଲବ୍ୟାକ ଗ୍ରହଣ କରନ୍ତୁ।
ପ୍ରାଚଳଗୁଡ଼ିକ
| ପ୍ରାଚଳଗୁଡ଼ିକ | ପ୍ରକାର | ବର୍ଣ୍ଣନା |
|---|---|---|
| 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 କୁ ବ୍ୟବହାର କରନ୍ତୁ।
ପ୍ରାଚଳଗୁଡ଼ିକ
| ପ୍ରାଚଳଗୁଡ଼ିକ | ପ୍ରକାର | ବର୍ଣ୍ଣନା |
|---|---|---|
| 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
}
ଉପଶୀର୍ଷକ (SRT / VTT) ନୂତନ
ଯେକୌଣସି ସମାପ୍ତ TTS କାର୍ଯ୍ୟ ପାଇଁ ସମକାଳୀନ ଉପଶୀର୍ଷକ ସୃଷ୍ଟିକରନ୍ତୁ। ଧ୍ୱନି ଉପରେ Whisper ସଂଯୋଜକତା ଚଲାଏ ଏବଂ 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
ଉଚ୍ଚାରଣ ଅଭିଧାନName ନୂତନ
TTS ଯନ୍ତ୍ରକୁ କହିବା କିପରି ନିର୍ଦ୍ଦିଷ୍ଟ ଶବ୍ଦଗୁଡ଼ିକୁ ଉଚ୍ଚାରଣ କରାଯିବ। ସଂରକ୍ଷିତ ଭରଣଗୁଡ଼ିକ ଆପଣ କରିଥିବା ପ୍ରତ୍ୟେକ TTS ଅନୁରୋଧକୁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ପ୍ରୟୋଗ କରିଥାଏ। ପ୍ରତି ଖାତାରେ 200-ଭରଣ ସୀମା।
ଅନୁରୋଧ ଶରୀରର (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 ଅନ୍ତିମ ବିନ୍ଦୁ ପ୍ରାଚଳଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ)।
ଲେଖା ବର୍ଣ୍ଣନାକାରୀ ନୂତନ
ଯେକୌଣସି ଲେଖା ପୃଷ୍ଠାରେ ଗୋଟିଏ ଟ୍ୟାଗକୁ ଛାଡିଦିଅନ୍ତୁ ଏବଂ ପରିଦର୍ଶକମାନେ ଗୋଟିଏ ସ୍ଥିର ପାଠକ ପଟି ପାଇବେ ଯାହାକି କ୍ଲିକ କରିବା ସମୟରେ ପୃଷ୍ଠାକୁ ବର୍ଣ୍ଣନା କରିଥାଏ । ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଲେଖା ଶରୀରକୁ ଚିହ୍ନଟ କରିଥାଏ, ଇଚ୍ଛାରୂପୀ ସ୍ୱର / ନମୂନା / ସ୍ଥାନ / ଉଚ୍ଚାରଣ ରଙ୍ଗକୁ ସମର୍ଥନ କରିଥାଏ ।
<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-...). ଡ଼େମେନ ପ୍ରତିବନ୍ଧକଗୁଡ଼ିକ କିର ଅନୁମତିପ୍ରାପ୍ତ_ଡ଼େମେନଗୁଡ଼ିକ କ୍ଷେତ୍ର ମାଧ୍ୟମରେ ଦୃଢ଼ କରାଯାଏ। |
data-voice | ଧ୍ୱନି ID। ପୂର୍ବନିର୍ଦ୍ଧାରିତ af_bella। |
data-model | TTS ନମୂନା ID। ପୂର୍ବନିର୍ଦ୍ଧାରିତ kokoro। |
data-extract | auto (ଡିଫଲ୍ଟ) — ଲେଖା/ମୂଳ/.post-content/.entry-content ଚୟନକର୍ତ୍ତାଙ୍କୁ ଚେଷ୍ଟାକରନ୍ତି, ସବୁଠାରୁ ଘନ ବର୍ଗ କ୍ଳଷ୍ଟରକୁ ଫେରିଯାଏ। କିମ୍ବା କୌଣସି ନିର୍ଦ୍ଦିଷ୍ଟ ଉପାଦାନକୁ ଲକ୍ଷ୍ୟ କରିବା ପାଇଁ କୌଣସି CSS ଚୟନକର୍ତ୍ତାକୁ ପାସ କରନ୍ତୁ। |
data-position | bottom ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ) କିମ୍ବା top। |
data-color | ଉଲ୍ଲେଖ ରଙ୍ଗ (ଯେଉଁ କୌଣସି CSS ରଙ୍ଗ)। ପୂର୍ବନିର୍ଦ୍ଧାରିତ #e60000। |
data-min-chars / data-max-chars | ଯଦି ବସ୍ତୁଟି ସର୍ବନିମ୍ନ-ଅକ୍ଷରଗୁଡ଼ିକ ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ 200) ଠାରୁ ଛୋଟ ତେବେ ପଟିକୁ ଛାଡ଼ନ୍ତୁ। ସର୍ବାଧିକ-ଅକ୍ଷରଗୁଡ଼ିକରେ ନିବେଶକୁ ବନ୍ଦ କରନ୍ତୁ ( ପୂର୍ବନିର୍ଦ୍ଧାରିତ 50,000)। |
ଶୁଣନ୍ତୁ ବଟନ ୱିଜେଟName
ଅନ୍ତର୍ଭୁକ୍ତ ବଟନ-ଶୈଳୀ ସନ୍ନିବେଶିତ। ଏହାର ଟ୍ୟାଗ ପାଖକୁ ପ୍ରଦର୍ଶନ କରେ ଏବଂ ଗୋଟିଏ ବଟନ-ପ୍ରେରିତ ସରୁ ସ୍ନିପେଟକୁ ଚାଲାଇଥାଏ। ଉପରସ୍ଥିତ ଲେଖା ବକ୍ତାରୁ ଭିନ୍ନ ଆକାର (ଯେଉଁଟି ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଗୋଟିଏ ପୃଷ୍ଠା-ସମସ୍ତ ବାରକୁ ପ୍ରବେଶ କରାଇଥାଏ ଏବଂ ସମ୍ପୂର୍ଣ୍ଣ ଲେଖାକୁ ବର୍ଣ୍ଣନା କରେ)।
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
ସଂରକ୍ଷିତ ଧ୍ୱନି (ସ୍ଥାୟୀ କ୍ଲୋନ)
ଗୋଟିଏ ସଂଯୋଗ ଧ୍ୱନିକୁ ଗୋଟିଏ ଥର ଅଦ୍ୟତନ କରନ୍ତୁ, ଗୋଟିଏ ନିରନ୍ତର ସ୍ୱର IDକୁ ଫେରାଇ ନିଅନ୍ତୁ, ତା'ପରେ ପ୍ରତ୍ୟେକ କଲରେ ଧ୍ୱନିକୁ ପୁନଃଅଦ୍ୟତନ କରିବା ବଦଳରେ TTS ଅନୁରୋଧରେ ସେହି id କୁ ସଂଯୋଗ କରନ୍ତୁ। ଉଚ୍ଚ-ବ୍ଯସ୍ତତା ଏକୀକରଣଗୁଡ଼ିକ ପାଇଁ ଆଦର୍ଶ।
ଗୋଟିଏ ଧ୍ୱନିକୁ ଅଦ୍ୟତନ କରନ୍ତୁ
POST
https://tts.ai/api/v1/user-voices/
ବୈଧିକରଣ ଆବଶ୍ୟକ
ବହୁଭାଗୀୟ ଫର୍ମ। କ୍ଷେତ୍ରଗୁଡ଼ିକ: ଫାଇଲ (ଅବଶ୍ୟକ, 5-30s ଧ୍ୱନି), ନାମ (ଅବଶ୍ୟକ), ଭାଷା (ବୈକଳ୍ପିକ, ପୂର୍ବନିର୍ଦ୍ଧାରିତ en), ଆକାର (ବୈକଳ୍ପିକ - zh/ja/ko ଅଥବା openvoice ପାଇଁ cosyvoice2କୁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ବାଛିଥାଏ), ଅନୁମତି_ସ୍ୱୀକାର (ଅବଶ୍ୟକ, ଯେକୌଣସି ସତ୍ୟ ମୂଲ୍ୟ)।
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 ରେ ସଂରକ୍ଷିତ ଭାଷାକୁ ବ୍ୟବହାର କରନ୍ତୁ
/api/v1/tts/ (ଟିପ୍ପଣୀ: ୱେବ VPS ହୋଷ୍ଟ, api.tts.ai ନୁହେଁ) ରେ ଚାଳକ_ବାକ୍ୟ_ID ସହିତ 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"])
ଧ୍ୱନି କ୍ଲୋନିଂName
# 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"
ଧ୍ୱନି କ୍ଲୋନିଂName
# 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 |
ନମୂନା ଧାରଣ କରାଯାଉଛି। କିଛି ସେକେଣ୍ଡ ପରେ ପୁଣିଥରେ ଚେଷ୍ଟାକରନ୍ତୁ। |
ୱେବହୁକ୍ସ
ଦୀର୍ଘଚାଳିତ କାର୍ଯ୍ୟଗୁଡ଼ିକ ପାଇଁ (ଷ୍ଟେମ ବିଭାଜନ, ବ୍ୟାଚ 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କୁ ଏକୀକୃତ କରିବା ଆରମ୍ଭ କରନ୍ତୁ ।