ሰነዶች
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 ቁልፉን ከ የሂሳብ ምርጫዎች. በፕሮ እና ኢንተርፕራይዝ ዕቅዶች ላይ ይገኛል
መሠረታዊ URL
https://api.tts.ai/v1/
ማረጋገጫ
የቀን/ሰዓት ቶኬን Authorization የገጽ አናት
ማረጋገጫ
/v1/tts/ ያለ ማንኛውም ፈቃድ, እስከ 5,000 አሃዞች / ቀን ለ IP, ማንኛውም ነፃ ሞዴሎችን በመጠቀም (piper, vits, melotts, kokoro). ለነጻ መለያ ለመመዝገብ 15,000 የቦና ፊደላትን እና የፕሪሚየም ሞዴሎችን ለመድረስ.
ለፕሪሚየም ሞዴሎችና ለከፍተኛ ፍጥነት ገደቦች፣ በበርየር ቶኬን ውስጥ ማረጋገጥ Authorization የገጽ አናት.
Authorization: Bearer sk-tts-your-api-key-here
ሴኮንዶች
የመንግስት 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 (አስፈላጊ ሞዴሎች: ኮኮሮ, ኮሲቮይስ 2, ወዘተ.) | ፊደላት | ፊደል(ሎች) |
| TTS (Premium ሞዴሎች: Tortoise, Chatterbox, ወዘተ.) | አንቀጽ | ፊደል(ሎች) |
| ንግግር ወደ ጽሑፍ | ፊደላት | የድምፅ መጠን |
| የድምፅ ክሎኒንግ | አንቀጽ | ፊደል(ሎች) |
| የድምፅ መለወጫ | አንቀጽ | የድምፅ መጠን |
| የድምፅ ማሻሻያ | ፊደላት | የድምፅ መጠን |
| የድምፅ ማስወገድ / የድምፅ ክፍፍል | ፊደላት | የድምፅ መጠን |
| የንግግር ትርጉም | አንቀጽ | የድምፅ መጠን |
| የድምፅ ውይይት | አንቀጽ | ዙር |
| የፊደል ቅርጽ ምርጫዎች | ነጻ | -- |
| የድምፅ መለወጫ | ነጻ | -- |
ጽሑፉን ወደ ንግግር ለውጥ
ጽሑፉን ወደ ንግግር ድምፅ ይለውጡ. የድምፅ ፋይሉን በተጠየቀው ቅርጸት ይመልሳል
የጠየቀው አካል
| መለኪያ | ዓይነት | ያስፈልጋል | መግለጫ የለም |
|---|---|---|---|
| model | string | አዎ | ሞዴል ID (ለምሳሌ kokoro, chatterbox, piper). ካልተጠቀሰ፣ የተጠየቀውን language የሚደግፍ ሞዴል በራስ-ሰር እንመርጣለን - kokoro ለ en/ja/zh/ko/fr/de/it/pt/es/hi/ru፣ piper ለሌሎች የተደገፉ ቋንቋዎች (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.) |
| text | string | አዎ | ወደ ንግግር የሚቀየር ጽሑፍ. ለአንድ ጥያቄ 500 ፊደላት (የማይታወቁ), 5,000 (የነፃ ምዝገባ), 1,000,000 (የተሸፈነ) ፊደላት. ረዥም መዝገቦች በሰርቨር በኩል በራሳቸው ይከፈላሉ. |
| voice | string | አዎ | የድምፅ አይዲ (/v1/voices/ን በመጠቀም የሚገኙትን ድምጾች ዝርዝር ውስጥ ያስገቡ) |
| format | string | አዎ | የምርቱ ቅርጸት: mp3 (የተለመደው), wav, flac, ogg |
| speed | float | አዎ | የንግግር ፍጥነት ማብዛኛ. ቅድመ-ሁኔታ: 1.0. ክልል: 0.5 እስከ 2.0 |
| language | string | አዎ | የቋንቋ ኮድ (ለምሳሌ en, es). ካልተጠቀሰ በራስ-ሰር ይታወቃል። |
| instructions | string | አዎ | ተግባር / ማቅረብ cues (≤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
አተረጓጎም ፋይል (_F) እንደተናገረ cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31ጥር 31, 1999 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.
ንግግር ወደ ጽሑፍ
ድምፅን ወደ ጽሑፍ ይለውጡ. 99 ቋንቋዎችን በራስ-ሰር ለይቶ ማወቅን ይደግፋል።
የጠየቀው አካል (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 | አዎ | የድምፅ ድምፅ (10-30 ሰከንዶች ይታሰባል) |
| 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 | አዎ | ወደሚቀየርበት የድምፅ አይዲ (/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 | አዎ | የድምፅ ባህሪያትን ለመጠበቅ ይሞክሩ. ቅድመ-ተዘጋጅ: 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
}
ንግግር ወደ ንግግር
የንግግር ዘይቤን፣ ስሜትን ወይም ይዘትን በማስቀመጥ ላይ ማስተካከል። ለድምፅ፣ ለፍጥነት እና ለግልጽነት ማስተካከል ጠቃሚ ነው።
የጠየቀው አካል (multipart/form-data)
| መለኪያ | ዓይነት | ያስፈልጋል | መግለጫ የለም |
|---|---|---|---|
| file | file | አዎ | የድምፅ ፋይል |
| voice | string | አዎ | የድምፅ ዒላማ |
| 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 | 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 | የምርጫው ቢትሬት በኪ.ቢ.ፒ.: 64, 128, 192, 256, 320 |
| 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 | አዎ | የቀን መቁጠሪያውን ቀለም |
| 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 | የምርጫው URL ለ POST ውጤቶች በባች ወቅት ሙሉ |
መልስ
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
የምርጫው ሂደት /v1/tts/batch/result/?batch_id=abc123 ጋር GET
የድምፅ መተካት
ከመዝገብ ቤት ውስጥ የድምፅ መተካት ይጫኑ
መለኪያዎች
| መለኪያ | ዓይነት | መግለጫ የለም |
|---|---|---|
| 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
}
የጤና ምርመራ
የጂፒዩ ሰርቨር ሁኔታን፣ የተጫኑ ሞዴሎችን፣ የፍተሻ መጠንን ይመልከቱ። ምንም ማረጋገጫ አይጠበቅም። ለ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 ወይም WebVTT ይመለሳል. ውጤቱ በዲስክ ላይ ይቀመጣል ስለዚህም ለተመሳሳይ uuid ሁለተኛ ጥሪ የዲስክ መጻፍ ነው
የጥያቄው መለኪያዎች
| መለኪያ | ያስፈልጋል | መግለጫ የለም |
|---|---|---|
| uuid | አዎ | የስራ UUID በ /v1/tts/ ወይም /v1/voice-clone/ ተመልሷል |
| 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
የድምፅ መዝገበ ቃላት አዲስ
የቲቲኤስ ማሽንን የተወሰኑ ቃላትን እንዴት እንደሚናገሩ ንገረው። የተጠበቁ መዝገቦች በራስ-ሰር ለሚያደርጉት የቲቲኤስ ጥያቄ ሁሉ ይተገበራሉ። ለእያንዳንዱ ሒሳብ 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-..."
በየጠየቁት ላይ ያለማስቀመጥ መቀየር ይችላሉ - pronunciationsን በየትኛውም /v1/tts/ ጥሪ ላይ እንደ አካል ወይም እንደ አሬጅ ያካትቱ (የ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>
ምርጫዎች (_O)
| መለኪያ | መግለጫ የለም |
|---|---|
data-pk | የዳሜን ማስታወቂያ (pk-tts-...). የዳሜን ማስታወቂያዎች በallowed_domains ፋይል ውስጥ ተጭነው ይወጣሉ |
data-voice | የድምፅ በይነገጽ. ቅድመ-ተዘጋጅ af_bella. |
data-model | የቲቲኤስ ሞዴል ቁጥር። መደበኛ 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) ላይ ነው። |
የድምፅ ቁልፍ
በመስመር ውስጥ የቡድን-ስዕል ቅርጽ ያለው መተካት. መለያውን ይከተላል እና በቡድን-ስዕል የተነሳ ቅርጽ ያለውን ፊደል ይጫወታል. ከላይ ካለው የመጣጥፍ ተናጋሪ የተለየ ዓይነት (የሚሰጥ ገጽ-የሚሸፍን ባር እና የሙሉውን ጽሑፍ ይነግረዋል)
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
የድምፅ ፋይል
አንድ ጊዜ የድምፅ መዝገብ ቤትን ጫን፣ የቋሚ voice_idን ማግኘት፣ ከዚያም የቲቲኤስ ጥያቄዎችን ጫን፣ ድምፅን በየጥሪው ከፍ ለማድረግ ይልቅ። ለከፍተኛ መጠን ያለው ማቀናጀት ተስማሚ ነው።
ድምፅ
POST
https://tts.ai/api/v1/user-voices/
ማረጋገጫ ያስፈልጋል
የብዙ ክፍል ፎርም. መስኮቶች: ፋይል (ያስፈልጋል, 5-30s ድምፅ), ስም (ያስፈልጋል), ቋንቋ (የተመረጠ, መነሻ 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"
}
የድምፅ ፋይል
POST ወደ /api/v1/tts/ (እውቀት: ዌብ VPS ሆስት, አይደለም api.tts.ai) ጋር user_voice_id. እኛ የተጠበቀ ድምፅ እና መንገድ ወደ ክሎኒንግ ቧንቧ ጫን.
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
መዝገብ ቤትን አስጀምር
የመዝገብ ቤት ድምጾች በሂሳብዎ ውስጥ ይቀራሉ ግን በቲቲኤስ ውስጥ ሊጠቀሙ አይችሉም. ለተዘጋው መጨረሻ ተጠቃሚዎች ጠቃሚ ነው ስለዚህ ዝርዝሩዎ ንጹህ ይቀራል.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
ምሳሌዎች
ጽሑፉን ወደ ንግግር ለውጥ
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')}")
ንግግር ወደ ጽሑፍ
# 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)
ጽሑፉን ወደ ንግግር ለውጥ
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();
ንግግር ወደ ጽሑፍ
// 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);
ጽሑፉን ወደ ንግግር ለውጥ
# 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
ንግግር ወደ ጽሑፍ
# 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 |
ሞዴል ይጫናል. በጥቂት ሰከንዶች ውስጥ ይሞክሩ |
ዌብሆክስ
ለረጅም ጊዜ የሚሠሩ ስራዎች (የስቴም ክፍፍል፣ የባች ቲቲኤስ) webhook_url ፓራሜትር መስጠት ይችላሉ። ስራው ከተጠናቀቀ በኋላ ውጤቱን ወደ ዩ.አር.ኤል.ዎ እናስገባለን።
{
"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 ወደ ፕሮግራሞችዎ ማቀናጀት ይጀምሩ.