ឯកសារ API

បញ្ចូល TTS.ai ទៅក្នុងកម្មវិធីរបស់អ្នកជាមួយ REST API របស់យើង។ ទ្រង់ទ្រាយ OpenAI ឆបគ្នាសម្រាប់ការផ្លាស់ប្តូរងាយស្រួល។

REST API ឆបគ្នា​ជាមួយ OpenAI ការ​ឆ្លើយតប JSON ការ​គាំទ្រ​ស្ទ្រីម

សេចក្ដី​សង្ខេប

TTS.ai API ផ្តល់នូវការចូលដំណើរការកម្មវិធីទៅនឹងលក្ខណៈពិសេសទាំងអស់នៃវេទិកា: អត្ថបទទៅជាសំឡេងសំយោគ, សំឡេងទៅជាអត្ថបទបកប្រែ, ក្លូនសំឡេង, ការពង្រឹងអូឌីយ៉ូនិងច្រើនទៀត។ API ប្រើសន្ធិសញ្ញាស្តង់ដារ REST ជាមួយសំណើ JSON / រាងកាយឆ្លើយតប។

កូនសោ API

យក​សោ API របស់​អ្នក​ពី ការ​កំណត់​គណនី. មាននៅលើផែនការ Pro និង Enterprise ។

URL មូលដ្ឋាន

https://api.tts.ai/v1/

ការ​អនុញ្ញាត

និមិត្ត​សញ្ញា​របស់​អ្នក​កាន់​តាម Authorization បឋមកថា

ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ

កម្រិត​ឥត​គិត​ថ្លៃ — មិន​ត្រូវការ​សោ​ទេ & # 160; ។ ប្រកាស​អនាមិក​ទៅ /v1/tts/ ធ្វើការដោយគ្មានការអនុញ្ញាតណាមួយឡើយ, រហូតដល់ទៅ 5,000 តួអក្សរ / ថ្ងៃក្នុងមួយ IP, ដោយប្រើម៉ូដែលឥតគិតថ្លៃណាមួយរបស់យើង (piper, vits, melotts, kokoro). ចុះឈ្មោះសម្រាប់គណនីឥតគិតថ្លៃដើម្បីទទួលបាន 15,000 តួអក្សរប្រាក់រង្វាន់និងចូលដំណើរការទៅម៉ូដែលប្រាក់រង្វាន់.

សម្រាប់ម៉ូដែលប្រាក់រង្វាន់និងដែនកំណត់អត្រាខ្ពស់, ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវជាមួយតួអក្សរ Bearer នៅក្នុង Authorization បឋមកថា.

បឋមកថា HTTP
Authorization: Bearer sk-tts-your-api-key-here
រក្សា​សម្ងាត់​សោ API របស់​អ្នក & # 160; ។ កុំ​ចែក​រំលែក​វា​ក្នុង​កូដ​ផ្នែក​ម៉ាស៊ីន​ភ្ញៀវ ឃ្លាំង​សាធារណៈ ឬ​កំណត់ហេតុ & # 160; ។ បង្វិល​គ្រាប់ចុច​ជា​ទៀងទាត់​ពី​ការ​កំណត់​គណនី​របស់​អ្នក & # 160; ។

SDKs

SDK ផ្លូវការធ្វើឱ្យវាងាយស្រួលក្នុងការរួមបញ្ចូល 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")
GitHub

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');
GitHub

URL មូលដ្ឋាន

URL មូលដ្ឋាន: https://api.tts.ai/v1/

ចំណុច​បញ្ចប់​ទាំងអស់​គឺ​ទាក់ទង​នឹង URL មូលដ្ឋាន​នេះ & # 160; ។ ឧទាហរណ៍ ចំណុច​បញ្ចប់ TTS គឺ & # 160; ៖

POST https://api.tts.ai/v1/tts/

អត្រា​កំណត់

ដែនកំណត់អត្រា API ប្រែប្រួលដោយផែនការ ៖

ផែនការ សំណើ/ នាទី កំពុង​រត់ ប្រវែង​អត្ថបទ​អតិបរមា
ឥត​គិត​ថ្លៃ 10 2 ៥០០ តួអក្សរ
កម្មវិធី​ចាប់ផ្ដើម 30 3 1,000,000 តួអក្សរ
ជំនាញ 60 5 1,000,000 តួអក្សរ
សហគ្រាស 300 20 ៥០, ០០០ តួអក្សរ

បឋមកថា​ដែន​កំណត់​អត្រា​ត្រូវ​បាន​រួម​បញ្ចូល​ក្នុង​ការ​ឆ្លើយតប​នីមួយៗ & # 160; ៖ X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

តម្លៃ​ឥណទាន

សេវា តម្លៃ ឯកតា
TTS (ម៉ូដែល​ឥតគិតថ្លៃ & # 160; ៖ Piper, VITS, MeloTTS) ១, ០០០ តួអក្សរ ក្នុង​មួយ ១, ០០០ តួអក្សរ
TTS (គំរូ​ស្តង់ដារ & # 160; ៖ Kokoro, CosyVoice2ល) ២, ០០០ តួអក្សរ ក្នុង​មួយ ១, ០០០ តួអក្សរ
TTS (ម៉ូដែល​ពិសេស & # 160; ៖ Tortoise, Chatterbox, ល) ៤, ០០០ តួអក្សរ ក្នុង​មួយ ១, ០០០ តួអក្សរ
ការ​និយាយ​ទៅ​អត្ថបទ ២, ០០០ តួអក្សរ ចំនួន​អូឌីយ៉ូ​ក្នុង​មួយ​នាទី
ការ​ក្លូន​សំឡេង ៤, ០០០ តួអក្សរ ក្នុង​មួយ ១, ០០០ តួអក្សរ
កម្មវិធី​ប្ដូរ​សំឡេង ៣, ០០០ តួអក្សរ ចំនួន​អូឌីយ៉ូ​ក្នុង​មួយ​នាទី
ការ​ពង្រឹង​អូឌីយ៉ូ ២, ០០០ តួអក្សរ ចំនួន​អូឌីយ៉ូ​ក្នុង​មួយ​នាទី
ការ​យក​ចេញ​សំឡេង / ការ​បំបែក​សំឡេង 3,000-4,000 តួអក្សរ ចំនួន​អូឌីយ៉ូ​ក្នុង​មួយ​នាទី
ការ​បកប្រែ​ការ​និយាយ ៥, ០០០ តួអក្សរ ចំនួន​អូឌីយ៉ូ​ក្នុង​មួយ​នាទី
ជជែក​កំសាន្ត​សំឡេងName ៣, ០០០ តួអក្សរ ក្នុង​មួយ​វេន
កម្មវិធី​រក​គ្រាប់ចុច BPM ឥត​គិត​ថ្លៃ --
កម្មវិធី​បម្លែង​អូឌីយ៉ូ ឥត​គិត​ថ្លៃ --

អត្ថបទ​ទៅ​ការ​និយាយ

POST /v1/tts/

បម្លែង​អត្ថបទ​ទៅ​ជា​អូឌីយ៉ូ​និយាយ & # 160; ។ ត្រឡប់​ឯកសារ​អូឌីយ៉ូ​ក្នុង​ទ្រង់ទ្រាយ​ដែល​បាន​ស្នើ & # 160; ។

តួ​សំណើ

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
model string គ្មាន លេខ​សម្គាល់​ម៉ូដែល (ឧទាហរណ៍ 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 បាទ/ ចាស អត្ថបទ​ត្រូវ​បម្លែង​ទៅ​ជា​ការ​និយាយ & # 160; ។ កម្រិត​សំណើ​ក្នុង​មួយ​សំណើ & # 160; ៖ ៥០០ តួអក្សរ (អនាមិក) ៥, ០០០ (គណនី​ឥតគិតថ្លៃ) ១, ០០០, ០០០ (ផែនការ​បង់ប្រាក់) & # 160; ។ ធាតុ​បញ្ចូល​វែង​ត្រូវ​បាន​បែងចែក​ដោយ​ស្វ័យប្រវត្តិ​នៅ​ខាង​ម៉ាស៊ីន​បម្រើ & # 160; ។
voice string បាទ/ ចាស លេខ​សម្គាល់​សំឡេង (ប្រើ /v1/voices/ ដើម្បី​រាយ​សំឡេង​ដែល​មាន)
format string គ្មាន ទ្រង់ទ្រាយ​លទ្ធផល & # 160; ៖ mp3 (លំនាំដើម), wav, flac, ogg
speed float គ្មាន គុណ​ប្រភាគ​ល្បឿន​និយាយ & # 160; ។ លំនាំដើម & # 160; ៖ < code> 1.0 & # 160; ។ ជួរ & # 160; ៖ < code> 0.5 ទៅ < code> 2.0
language string គ្មាន កូដ​ភាសា (ឧទាហរណ៍ en, es) & # 160; ។ រក​ឃើញ​ដោយ​ស្វ័យប្រវត្តិ ប្រសិន​បើ​បាន​រំលង & # 160; ។
instructions string គ្មាន ដើរតួជា / ការដឹកជញ្ជូន cues (≤500 តួអក្សរ) ។ ឧ. <កូដ>\
pronunciations object | array គ្មាន ការ​បដិសេធ​ការ​បញ្ចេញ​សំឡេង​តាម​សំណើ & # 160; ។ ទាំង {\
stream boolean គ្មាន អនុញ្ញាត​ការ​ឆ្លើយតប​ស្ទ្រីម & # 160; ។ លំនាំដើម & # 160; ៖ < code> 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

ស្លាក < say- as > SSML

លេខវេចខ្ចប់, កាលបរិច្ឆេទ, រូបិយប័ណ្ណ, លេខទូរស័ព្ទ, និង acronyms ក្នុង

បកប្រែ​ជាបញ្ចូលបាន​និយាយ​ជា
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."
}

ការ​ឆ្លើយតប

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

ឧទាហរណ៍​ពេញលេញ

Python
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)

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

ការ​និយាយ​ទៅ​អត្ថបទ

POST /v1/stt/

បម្លែង​អូឌីយ៉ូ​ទៅ​អត្ថបទ & # 160; ។ គាំទ្រ​ភាសា ៩៩ ជាមួយ​ការ​រក​ឃើញ​ដោយ​ស្វ័យប្រវត្តិ & # 160; ។

តួ​សំណើ (multipart/form-data)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
file file បាទ/ ចាស ឯកសារអូឌីយ៉ូ (MP3, WAV, FLAC, OGG, M4A, MP4, WebM) ។ អតិបរមា 100MB ។
model string គ្មាន ម៉ូដែល STT & # 160; ៖ whisper (លំនាំដើម), faster-whisper, sensevoice
language string គ្មាន កូដ​ភាសា & # 160; ។ auto សម្រាប់​ការ​រក​ឃើញ​ដោយ​ស្វ័យ​ប្រវត្តិ (លំនាំដើម) & # 160; ។
timestamps boolean គ្មាន រួម​បញ្ចូល​ត្រា​ពេលវេលា​កម្រិត​ពាក្យ & # 160; ។ លំនាំដើម & # 160; ៖ false
diarize boolean គ្មាន អនុញ្ញាត​ការ​កំណត់​ទិនានុប្បវត្តិ​អ្នក​និយាយ & # 160; ។ លំនាំដើម & # 160; ៖ < code> 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/

បង្កើត​ការ​និយាយ​ក្នុង​សំឡេង​ក្លូន & # 160; ។ ផ្ទុក​អូឌីយ៉ូ និង​អត្ថបទ​យោង​ឡើង & # 160; ។

តួ​សំណើ (multipart/form-data)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
reference_audio file បាទ/ ចាស សំឡេង​អូឌីយ៉ូ​យោង (10-30 វិនាទី​ដែល​បាន​ផ្ដល់​អនុសាសន៍) ។ 20MB អតិបរមា ។
text string បាទ/ ចាស អត្ថបទ​ដែល​ត្រូវ​និយាយ​ក្នុង​សំឡេង​ក្លូន & # 160; ។
model string គ្មាន ម៉ូដែល​ក្លូន & # 160; ៖ chatterbox (លំនាំដើម), cosyvoice2, gpt-sovits
format string គ្មាន ទ្រង់ទ្រាយ​លទ្ធផល & # 160; ៖ mp3 (លំនាំដើម), wav, flac
language string គ្មាន កូដ​ភាសា​គោលដៅ & # 160; ។ ត្រូវ​តែ​គាំទ្រ​ដោយ​ម៉ូដែល​ដែល​បាន​ជ្រើស & # 160; ។

ការ​ឆ្លើយតប

ត្រឡប់​ឯកសារ​អូឌីយ៉ូ​ជា​ទិន្នន័យ​គោលពីរ​ដូច​ជា​ចំណុច​បញ្ចប់ TTS & # 160; ។

កម្មវិធី​ប្ដូរ​សំឡេង

POST /v1/voice-convert/

បម្លែង​អូឌីយ៉ូ​ទៅ​ជា​សំឡេង​ផ្សេង​ទៀត & # 160; ។ ផ្ទុក​អូឌីយ៉ូ​ប្រភព​ឡើង និង​ជ្រើស​សំឡេង​គោលដៅ & # 160; ។

តួ​សំណើ (multipart/form-data)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
file file បាទ/ ចាស ឯកសារ​អូឌីយ៉ូ​ប្រភព (MP3, WAV, FLAC) & # 160; ។ អតិបរមា 50MB & # 160; ។
target_voice string បាទ/ ចាស លេខ​សម្គាល់​សំឡេង​គោលដៅ​ត្រូវ​បម្លែង​ទៅ (ប្រើ /v1/voices/ ដើម្បី​រាយ​សំឡេង​ដែល​មាន)
model string គ្មាន ម៉ូដែល​បម្លែង​សំឡេង & # 160; ៖ openvoice (លំនាំដើម), knn-vc
format string គ្មាន ទ្រង់ទ្រាយ​លទ្ធផល & # 160; ៖ 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

ការ​ឆ្លើយតប

ត្រឡប់​ឯកសារ​អូឌីយ៉ូ​ដែល​បាន​បម្លែង​ជា​ទិន្នន័យ​គោលពីរ & # 160; ។

ការ​បកប្រែ​ការ​និយាយ

POST /v1/speech-translate/

បកប្រែ​អូឌីយ៉ូ​ដែល​បាន​និយាយ​ពី​ភាសា​មួយ​ទៅ​ភាសា​មួយ​ទៀត ។ រួមបញ្ចូល​ការ​និយាយ​ទៅ​អត្ថបទ ការ​បកប្រែ និង​អត្ថបទ​ទៅ​ការ​និយាយ​ក្នុង​ការ​ហៅ​តែ​មួយ ។

តួ​សំណើ (multipart/form-data)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
file file បាទ/ ចាស ឯកសារ​អូឌីយ៉ូ​ប្រភព​ក្នុង​ភាសា​ដើម & # 160; ។ អតិបរមា ១០០ មេកាបៃ & # 160; ។
target_language string បាទ/ ចាស កូដ​ភាសា​គោលដៅ (ឧ. es, fr, de, ja)
voice string គ្មាន សំឡេង​សម្រាប់​លទ្ធផល​បកប្រែ & # 160; ។ ត្រូវ​បាន​ជ្រើស​ដោយ​ស្វ័យ​ប្រវត្តិ ប្រសិន​បើ​បាន​រំលង & # 160; ។
preserve_voice boolean គ្មាន ព្យាយាម​រក្សា​លក្ខណៈ​ពិសេស​សំឡេង​របស់​អ្នក​និយាយ​ដើម & # 160; ។ លំនាំដើម & # 160; ៖ < code> false

ការ​ឆ្លើយតប

ការ​ឆ្លើយតប 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/

បម្លែង​រចនាប័ទ្ម​និយាយ អារម្មណ៍ ឬ​ការ​ផ្ដល់​ខណៈ​ពេល​រក្សា​មាតិកា & # 160; ។ មាន​ប្រយោជន៍​សម្រាប់​លៃតម្រូវ​សំឡេង ល្បឿន និង​ភាព​បង្ហាញ & # 160; ។

តួ​សំណើ (multipart/form-data)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
file file បាទ/ ចាស ឯកសារ​អូឌីយ៉ូ​និយាយ​ប្រភព & # 160; ។ អតិបរមា ៥០ មេកាបៃ & # 160; ។
voice string បាទ/ ចាស លេខ​សម្គាល់​សំឡេង​គោលដៅ​សម្រាប់​ការ​និយាយ​លទ្ធផល
model string គ្មាន ម៉ូដែល & # 160; ៖ openvoice (លំនាំដើម), chatterbox
emotion string គ្មាន អារម្មណ៍​គោលដៅ & # 160; ៖ អព្យាក្រឹត, សប្បាយ, សោក, ខឹង, រំភើប
speed float គ្មាន ការ​លៃតម្រូវ​ល្បឿន & # 160; ។ លំនាំដើម & # 160; ៖ < code> 1.0 & # 160; ។ ជួរ & # 160; ៖ < code> 0.5 ទៅ < code> 2.0

ការ​ឆ្លើយតប

ត្រឡប់​ឯកសារ​អូឌីយ៉ូ​ដែល​បាន​បម្លែង​ជា​ទិន្នន័យ​គោលពីរ & # 160; ។

ឧបករណ៍​អូឌីយ៉ូ

ចំណុច​បញ្ចប់​ដំណើរការ​អូឌីយ៉ូ​សម្រាប់​ការ​ពង្រីក ការ​យក​សំឡេង​ចេញ ការ​បំបែក​ដើម និង​ច្រើន​ទៀត ។

POST /v1/audio/enhance/

បង្កើន​គុណភាព​អូឌីយ៉ូ & # 160; ៖ denoise បង្កើន​ភាព​ច្បាស់ គុណភាព​បង្ហាញ​ខ្ពស់ & # 160; ។

file fileឯកសារ​អូឌីយ៉ូ​ត្រូវ​ពង្រីក
denoise booleanអនុញ្ញាត​ការ​បំបាត់​សំឡេង​រំខាន (លំនាំដើម & # 160; ៖ ពិត)
enhance_clarity booleanបង្កើន​ភាព​ច្បាស់​នៃ​ការ​និយាយ (លំនាំដើម & # 160; ៖ ពិត)
super_resolution booleanធ្វើ​មាត្រដ្ឋាន​គុណភាព​អូឌីយ៉ូ​ឡើង​វិញ (លំនាំដើម & # 160; ៖ មិន​ពិត)
strength integer១- ៣ (ស្រាល មធ្យម ខ្លាំង) & # 160; ។ លំនាំដើម & # 160; ៖ ២
POST /v1/audio/separate/

បំបែក​សំឡេង​ពី​ឧបករណ៍​ភ្លេង (យក​សំឡេង​ចេញ) ឬ​បំបែក​ទៅ​ជា​ដើម & # 160; ។

file fileឯកសារ​អូឌីយ៉ូ​ដែល​ត្រូវ​បំបែក
model stringdemucs (លំនាំដើម) ឬ spleeter
stems integerចំនួន​ដើម & # 160; ៖ ២, ៤, ៥ ឬ ៦ (លំនាំដើម & # 160; ៖ ២)
format stringទ្រង់ទ្រាយ​លទ្ធផល & # 160; ៖ wav, mp3, flac
POST /v1/audio/dereverb/

យក​សំឡេង​រំខាន និង​សំឡេង​រំខាន​ចេញ​ពី​ការ​ថត​អូឌីយ៉ូ & # 160; ។

file fileឯកសារ​អូឌីយ៉ូ​ដែល​ត្រូវ​ដំណើរការ
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ ទំនេរ

វិភាគ​អូឌីយ៉ូ​ដើម្បី​រក​ឃើញ​គ្រាប់ចុច 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"]
}
POST /v1/audio/convert/ ទំនេរ

បម្លែង​អូឌីយ៉ូ​រវាង​ទ្រង់ទ្រាយ & # 160; ។

file fileឯកសារ​អូឌីយ៉ូ​ដែល​ត្រូវ​បម្លែង
format stringទ្រង់ទ្រាយ​គោលដៅ & # 160; ៖ mp3, wav, flac, ogg, m4a, aac
bitrate integerអត្រាប៊ីត​លទ្ធផល​គិត​ជា​គីឡូបៃ & # 160; ៖ ៦៤, ១២៨, ១៩២, ២៥៦, ៣២០
sample_rate integerអត្រាគំរូ: 22050, 44100, 48000
channels stringmonostereo

ជជែក​កំសាន្ត​សំឡេងName

POST /v1/voice-chat/

ផ្ញើ​អូឌីយ៉ូ ឬ​អត្ថបទ និង​ទទួល​ការ​ឆ្លើយតប AI ជាមួយ​នឹង​ការ​និយាយ​ដែល​បាន​សំយោគ ។

តួ​សំណើ (multipart/form-data ឬ JSON)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ត្រូវ​ការការ​ពិពណ៌នា
audio file គ្មាន* ការ​បញ្ចូល​អូឌីយ៉ូ (ត្រូវការ audiotext)
text string គ្មាន* ការ​បញ្ចូល​អត្ថបទ (ត្រូវការ audiotext)
voice string គ្មាន សំឡេង​សម្រាប់​ការ​ឆ្លើយតប AI & # 160; ។ លំនាំដើម & # 160; ៖ af_bella
tts_model string គ្មាន ម៉ូដែល TTS សម្រាប់​ការ​ឆ្លើយតប & # 160; ។ លំនាំដើម & # 160; ៖ 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
}

បាច់ TTS

POST /v1/tts/batch/

ដាក់ស្នើ​អត្ថបទ​ច្រើន​សម្រាប់​ការ​បង្កើត TTS ប៉ារ៉ាឡែល & # 160; ។ ទទួល​ការ​ហៅ​ត្រឡប់ webhook នៅពេល​ការងារ​ទាំងអស់​បាន​បញ្ចប់ & # 160; ។

ប៉ារ៉ាម៉ែត្រ

ប៉ារ៉ាម៉ែត្រប្រភេទ​សេចក្ដី​ពិពណ៌នា
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringURL ជម្រើស​ដើម្បី​បង្ហាញ​លទ្ធផល POST ពេល​បាច់​បញ្ចប់ & # 160; ។

ការ​ឆ្លើយតប

ការ​ឆ្លើយតប JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

វឌ្ឍនភាពនៃការស្ទង់មតិជាមួយ GET /v1/tts/batch/result/?batch_id=abc123

ការ​បង្កប់​សំឡេង

POST /v1/voice-embed/

គណនា​ជាមុន​ការ​បង្កប់​សំឡេង​ពី​អូឌីយ៉ូ​យោង & # 160; ។ ប្រើ embed_ id ដែល​បាន​ត្រឡប់​ក្នុង​សំណើ​ក្លូន​សំឡេង​បន្ទាប់​សម្រាប់​ការ​បង្កើត​ឆាប់ៗ & # 160; ។

ប៉ារ៉ាម៉ែត្រ

ប៉ារ៉ាម៉ែត្រប្រភេទ​សេចក្ដី​ពិពណ៌នា
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

ការ​ឆ្លើយតប

ការ​ឆ្លើយតប JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

ពិនិត្យ​មើល​សុខភាព

GET /v1/health/

ពិនិត្យ​មើល​ស្ថានភាព​ម៉ាស៊ីន​បម្រើ GPU ម៉ូដែល​ដែល​បាន​ផ្ទុក និង​ទំហំ​ជួរ & # 160; ។ មិន​ចាំបាច់​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​ទេ & # 160; ។ បាន​ដាក់​ឃ្លាំង​សម្ងាត់​សម្រាប់ ៣០ វិនាទី & # 160; ។

ការ​ឆ្លើយតប

ការ​ឆ្លើយតប JSON
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

បញ្ជី​ម៉ូដែល

GET /v1/models/

ត្រឡប់​បញ្ជី​នៃ​ម៉ូដែល​ដែល​មាន​ទាំងអស់​ជាមួយ​នឹង​សមត្ថភាព​របស់​ពួក​វា & # 160; ។

ការ​ឆ្លើយតប

ការ​ឆ្លើយតប 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/

ត្រឡប់​បញ្ជី​នៃ​សំឡេង​ដែល​មាន​ទាំងអស់ ដែល​បាន​ត្រង​តាម​ម៉ូដែល ឬ​ភាសា & # 160; ។

ប៉ារ៉ាម៉ែត្រ​សំណួរ

ប៉ារ៉ាម៉ែត្រប្រភេទ​ការ​ពិពណ៌នា
model string តម្រង​តាម​លេខ​សម្គាល់​ម៉ូដែល (ឧ. 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
}

ចំណង​ជើង​រង (SRT / VTT) ថ្មី

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

បង្កើត​ចំណង​ជើង​រង​ដែល​បាន​ធ្វើ​សមកាលកម្ម​សម្រាប់​ការងារ TTS ដែល​បាន​បញ្ចប់​ណាមួយ & # 160; ។ រត់​ការ​តម្រឹម Whisper លើ​អូឌីយ៉ូ និង​ត្រឡប់ SRT ឬ WebVTT & # 160; ។ លទ្ធផល​ត្រូវ​បាន​ឃ្លាំង​សម្ងាត់​លើ​ថាស ដូច្នេះ​ការ​ហៅ​លើក​ទីពីរ​សម្រាប់ uuid ដូចគ្នា​គឺ​ជា​ការ​អាន​ថាស & # 160; ។

ប៉ារ៉ាម៉ែត្រ​សំណួរ

ប៉ារ៉ាម៉ែត្រត្រូវ​ការការ​ពិពណ៌នា
uuidបាទ/ ចាសUUID ការងារ​ត្រឡប់​ដោយ / v1/ tts / ឬ / v1/ voice- clone / & # 160; ។
formatគ្មានsrt (លំនាំដើម) ឬ vtt & # 160; ។
downloadគ្មាន1 ដើម្បី​ផ្ញើ Content- Disposition: attachment ដូច្នេះ​កម្មវិធី​រុករក​រក្សាទុក​ជំនួស​ឲ្យ​បង្ហាញ & # 160; ។
languageគ្មានព័ត៌មាន​ជំនួយ​សម្រាប់​ម៉ូដែល​តម្រឹម (រក​ឃើញ​ដោយ​ស្វ័យ​ប្រវត្តិ​បើ​បាន​រំលង) & # 160; ។
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

វចនានុក្រម​ការ​បញ្ចេញ​សំឡេង ថ្មី

GET POST DELETE /api/v1/pronunciations/

ប្រាប់​ម៉ាស៊ីន TTS អំពី​របៀប​បញ្ចេញ​សំឡេង​ពាក្យ​ជាក់លាក់ & # 160; ។ ធាតុ​ដែល​បាន​រក្សាទុក​អនុវត្ត​ដោយ​ស្វ័យ​ប្រវត្តិ​ទៅ​សំណើ TTS ទាំងអស់​ដែល​អ្នក​ធ្វើ & # 160; ។ កំណត់​ចំនួន​ធាតុ​ក្នុង​មួយ​គណនី​ចំនួន 200 & # 160; ។

តួ​សំណើ (POST)

ប៉ារ៉ាម៉ែត្រប្រភេទ​ការ​ពិពណ៌នា
wordstringពាក្យ​ដែល​ត្រូវ​បដិសេធ (ឧ. GIF, Anthropic) & # 160; ។ ព្រំដែន​ពាក្យ​ផ្គូផ្គង & # 160; ។
replacementstringរបៀប​ spell វា​សម្រាប់​ម៉ូដែល (ឧទាហរណ៍ jiff, ann THROP ick) ។
languagestringកូដ ISO ជម្រើស & # 160; ។ ទទេ = អនុវត្ត​ទៅ​ភាសា​ទាំងអស់ & # 160; ។
case_sensitivebooleanលំនាំដើម false ។ ផ្គូផ្គង​តួអក្សរ​តូច​ធំ​នៅពេល​ដែល true
cURL
# 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) ។

កម្មវិធី​និយាយ​អត្ថបទ ថ្មី

ទម្លាក់តែមួយ