ເອກະສານ API
ລວມເອົາ TTS.ai ເຂົ້າໃນໂປແກຼມຂອງທ່ານດ້ວຍ REST API ຂອງພວກເຮົາ. ຮູບແບບ OpenAI ທີ່ສາມາດເຂົ້າກັນໄດ້ ສຳ ລັບການຍ້າຍງ່າຍ.
ເບິ່ງລວມ
TTS.ai API ສະຫນອງການເຂົ້າເຖິງໂປຣແກມສໍາລັບຄຸນສົມບັດທັງຫມົດຂອງເວທີ: ຂໍ້ຄວາມ-to-ຄໍາເວົ້າ synthesization, ຄໍາເວົ້າ-to-ຂໍ້ຄວາມ transcription, ສຽງ cloning, ການປັບປຸງສຽງ, ແລະອື່ນໆ. API ນໍາໃຊ້ມາດຕະຖານ REST ສົນທິສັນຍາກັບ JSON ຄໍາຮ້ອງສະຫມັກ / ຕອບໂຕ້ຮ່າງກາຍ.
គ្រាប់ចុច API
ເອົາກຸນແຈ API ຂອງທ່ານຈາກ ການຕັ້ງຄ່າບັນຊີ. ມີຢູ່ໃນແຜນ Pro ແລະ Enterprise.
URL ພື້ນຖານ
https://api.tts.ai/v1/
ອະນຸຍາດ
ຕົວແທນຜູ້ຖືຜ່ານ Authorization បឋមកថា
ການផ្ទៀងផ្ទាត់ຄວາມຖືກຕ້ອງ
/v1/tts/ ເຮັດວຽກໂດຍບໍ່ມີການ auth ໃດໆ, ເຖິງ 5,000 ຕົວອັກສອນ / ວັນຕໍ່ IP, ໂດຍໃຊ້ແບບຟອມຟຣີຂອງພວກເຮົາ (piper, vits, melotts, kokoro). ລົງທະບຽນບັນຊີຟຣີເພື່ອໄດ້ຮັບ 15,000 ຕົວອັກສອນໂບນັດແລະເຂົ້າເຖິງແບບພິເສດ.
ສຳ ລັບແບບພິເສດແລະ ຈຳ ກັດອັດຕາທີ່ສູງກວ່າ, ຢັ້ງຢືນດ້ວຍໂຕກັ່ນ 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 | 500 ຕົວອັກສອນ |
| ຕົວເລີ່ມ | 30 | 3 | 1,000,000 ຕົວອັກສອນ |
| ມືອາຊີບ | 60 | 5 | 1,000,000 ຕົວອັກສອນ |
| ວິສາຫະກິດ | 300 | 20 | 50,000 ຕົວອັກສອນ |
ຫົວຂໍ້ຈໍາກັດອັດຕາຈະຖືກລວມເຂົ້າໃນການຕອບໂຕ້ທຸກຄັ້ງ: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
ຄ່າກູ້ຢືມ
| ບໍລິການ | ຄ່າໃຊ້ຈ່າຍ | ឯកតា |
|---|---|---|
| TTS (ຕົວແບບຟຣີ: Piper, VITS, MeloTTS) | 1,000 ຕົວອັກສອນ | ຕໍ່ 1,000 តួអក្សរ |
| TTS (ແບບມາດຕະຖານ: Kokoro, CosyVoice 2, ແລະອື່ນໆ) | 2,000 ຕົວອັກສອນ | ຕໍ່ 1,000 តួអក្សរ |
| TTS (ແບບ Premium: Tortoise, Chatterbox, ແລະອື່ນໆ) | 4 ຄະແນນ | ຕໍ່ 1,000 តួអក្សរ |
| ການເວົ້າເປັນຂໍ້ຄວາມName | 2,000 ຕົວອັກສອນ | ສຽງຕໍ່ນາທີ |
| ການກັ່ນຕອງສຽງ | 4 ຄະແນນ | ຕໍ່ 1,000 តួអក្សរ |
| កម្មវិធីປ່ຽນສຽງName | 3 ຄະແນນ | ສຽງຕໍ່ນາທີ |
| ເພີ່ມປະສິດທິພາບສຽງ | 2,000 ຕົວອັກສອນ | ສຽງຕໍ່ນາທີ |
| ເອົາສຽງອອກ / ແບ່ງສຽງອອກ | 3,000-4,000 ຕົວອັກສອນ | ສຽງຕໍ່ນາທີ |
| ການແປຄຳເວົ້າ | 5,000 ຕົວອັກສອນ | ສຽງຕໍ່ນາທີ |
| ການສົນທະນາດ້ວຍສຽງ | 3 ຄະແນນ | ຕໍ່ຮອບ |
| ເຄື່ອງມືຄົ້ນຫາປຸ່ມ & BPM | ບໍ່ມີ | -- |
| កម្មវិធីបម្លែងສຽງ | ບໍ່ມີ | -- |
ຂໍ້ຄວາມເປັນການເວົ້າName
ປ່ຽນຂໍ້ຄວາມເປັນສຽງເວົ້າ & # 160; ។ ສົ່ງຄືນເອກະສານສຽງໃນຮູບແບບທີ່ໄດ້ຮ້ອງຂໍ
ທ້ອງຂອງຄໍາຮ້ອງຂໍ
| ប៉ារ៉ាម៉ែត្រ | ປະເພດ | ຕ້ອງການ | ການອະທິບາຍ |
|---|---|---|---|
| model | string | ບໍ່ | ຕົວລະບຸແບບ (ຕົວຢ່າງ, kokoro, chatterbox, piper). ຖ້າບໍ່ໄດ້ລະບຸ, ພວກເຮົາຈະເລືອກແບບແບບອັດຕະໂນມັດທີ່ສະໜັບສະໜູນ ພາສາ ທີ່ໄດ້ຮ້ອງຂໍ — 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 | ບໍ່ | ປະຕິບັດ / ການສົ່ງຂໍ້ຄວາມ (≤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-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
ແປສຽງເປັນຂໍ້ຄວາມ. ສະໜັບສະໜູນ 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"
}
]
}
ການກັ່ນຕອງສຽງ
ສ້າງການເວົ້າດ້ວຍສຽງທີ່ໄດ້ຖ່າຍທອດມາແລ້ວ. ອັບໂຫລດຂໍ້ຄວາມ ແລະ ສຽງທີ່ໄດ້ອ້າງອີງມາ.
ທ້ອງຂອງຄໍາຮ້ອງຂໍ (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 | ແມ່ນ | ລະຫັດສຽງເປົ້າໝາຍທີ່ຈະປ່ຽນເປັນ (ໃຊ້ /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 | ແມ່ນ | ໄຟລ໌ສຽງຕົ້ນຕໍໃນພາສາຕົ້ນຕໍ. ສູງສຸດ 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
}
ການເວົ້າເປັນການເວົ້າ
ປ່ຽນແບບເວົ້າ, ອາລົມ, ຫຼື ການສົ່ງຕໍ່ໃນຂະນະທີ່ຮັກສາເນື້ອໃນໄວ້. ມີຄວາມໃຊ້ໄດ້ສຳລັບການປັບສຽງ, ຄວາມໄວ, ແລະ ຄວາມສະແດງອອກ.
ທ້ອງຂອງຄໍາຮ້ອງຂໍ (multipart/form-data)
| ប៉ារ៉ាម៉ែត្រ | ປະເພດ | ຕ້ອງການ | ການອະທິບາຍ |
|---|---|---|---|
| file | file | ແມ່ນ | ແຫຼ່ງຂອງໄຟລ໌ສຽງເວົ້າ. ສູງສຸດ 50MB. |
| voice | string | ແມ່ນ | ຕົວລະບຸສຽງເປົ້າໝາຍສຳລັບການເວົ້າຜົນອອກມາ |
| model | string | ບໍ່ | ແບບ: openvoice (ປັ໊ກໄອເດຍ), chatterbox |
| emotion | string | ບໍ່ | ຄວາມຮູ້ສຶກເປົ້າໝາຍ: neutral, happy, sad, angry, excited |
| speed | float | ບໍ່ | ການປັບຄວາມໄວ. ແບບປ້ອນເຂົ້າ: 1.0. ລະດັບ: 0.5 ຫາ 2.0 |
ຕອບໂຕ້
ສົ່ງຄືນເອກະສານສຽງທີ່ໄດ້ປ່ຽນເປັນຂໍ້ມູນແບບສອງຫຼ່ຽມ.
ເຄື່ອງມືສຽງName
ຈຸດຈົບການປະມວນຜົນສຽງເພື່ອເພີ່ມປະສິດທິພາບ, ເອົາສຽງອອກ, ແບ່ງແຍກຕົ້ນໄມ້ ແລະ ອື່ນໆ.
ເພີ່ມຄຸນນະພາບສຽງ: ຫຼຸດສຽງລົບກວນ, ເພີ່ມຄວາມຈະແຈ້ງ, ຄວາມລະອຽດສູງ.
| 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 | ອັດຕາຕົວຢ່າງ: 22050, 44100, 48000 |
| 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 | 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, ແບບທີ່ໄດ້ຮັບການໂຫຼດ ແລະ ຂະໜາດຂອງຄິວ. ບໍ່ມີການຢັ້ງຢືນຄວາມຖືກຕ້ອງທີ່ຕ້ອງການ. ເກັບໄວ້ໃນຄຸກກີ ເປັນເວລາ 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 | ຕື່ມຕົວກັ່ນຕອງຕາມລະຫັດຕົວແບບ (ຕົວຢ່າງ kokoro) |
| language | string | ຕື່ມຕາມລະຫັດພາສາ (ຕົວຢ່າງ en) |
| gender | string | ການກັ່ນຕອງຕາມເພດ: ຊາຍ, ຍິງ, ສະໝ່ຳສະເໝີ |
ຕອບໂຕ້
{
"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 | ແມ່ນ | 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
ພະຍາກອນການອອກສຽງ ថ្មី
ແຈ້ງໃຫ້ເຄື່ອງຈັກ TTS ຮູ້ວິທີເວົ້າຄໍາສະເພາະ. ລາຍການທີ່ບັນທຶກໄວ້ຈະຖືກໃຊ້ໂດຍອັດຕະໂນມັດຕໍ່ທຸກໆຄໍາຮ້ອງຂໍ TTS ທີ່ເຈົ້າເຮັດ. ຈໍາກັດລາຍການ 200 ລາຍການຕໍ່ບັນຊີ.
ທ້ອງຂອງຄໍາຮ້ອງຂໍ (POST)
| ប៉ារ៉ាម៉ែត្រ | ປະເພດ | ການອະທິບາຍ |
|---|---|---|
| word | string | ຄໍາທີ່ຈະບິດເບືອນ (ຕົວຢ່າງ GIF, Anthropic). ຄໍາທີ່ຕິດກັບເຂດຈໍາກັດ. |
| replacement | string | ວິທີການ spell ມັນສໍາລັບແບບ (ຕົວຢ່າງ 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/ call ໃດໆ ເຊັ່ນວ່າເປັນສິ່ງ ຫຼື ອາຣາມ (ເບິ່ງ TTS endpoint params).
កម្មវិធីនិយាយບົດຄວາມ ថ្មី
ຫຼຸດລົງ ແທັກດຽວໃນຫນ້າບົດຄວາມໃດຫນຶ່ງແລະຜູ້ເຂົ້າຊົມໄດ້ຮັບ bar ຜູ້ອ່ານທີ່ຕັ້ງໄວ້ທີ່ narrates ຫນ້າເມື່ອຄລິກ. ກວດພົບໂດຍອັດຕະໂນມັດຮ່າງກາຍຂອງບົດຄວາມ, ສະຫນັບສະຫນູນສຽງ custom / ແບບ / ສະຖານະ / ສີ accent.
<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 | ລະຫັດສຽງ. ແບບປ້ອນແບບເດີມ af_bella. |
data-model | ລະຫັດຕົວແບບ TTS. ແບບປ້ອນແບບເດີມ 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). |
ធាតុក្រាຟິກປຸ່ມຟັງ
ແບບປຸ່ມຝັງໃນແຖບ. ສະແດງຢູ່ຂ້າງແທັກ < code>< script code> ແລະ ຫຼີ້ນຂໍ້ຄວາມສັ້ນໆທີ່ຖືກເປີດໂດຍປຸ່ມ. ຮູບຮ່າງທີ່ແຕກຕ່າງຈາກຜູ້ເວົ້າບົດຄວາມຂ້າງເທິງ (ເຊິ່ງຈະປ່ອຍແຖບທີ່ກວ້າງໜ້າຂຶ້ນມາໂດຍອັດຕະໂນມັດ ແລະ ເວົ້າບົດຄວາມທັງໝົດ)
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
ສຽງທີ່ໄດ້ເກັບໄວ້ (ຄລີນທີ່ຄົງຕົວ)
ສົ່ງສຽງທີ່ອ້າງອີງຂຶ້ນໄປຄັ້ງດຽວ, ເອົາຄືນສຽງທີ່ລະບຸຕົວຕົນທີ່ຄົງຕົວ, ຈາກນັ້ນສົ່ງ id ນັ້ນໄປຍັງຄໍາຮ້ອງຂໍ TTS ແທນທີ່ຈະສົ່ງສຽງຂຶ້ນມາອີກເທື່ອໜຶ່ງທຸກໆການໂທ. ດີທີ່ສຸດສຳລັບການລວມເອົາສຽງທີ່ມີປະລິມານສູງ.
ສົ່ງສຽງຂຶ້ນໄປ
POST
https://tts.ai/api/v1/user-voices/
ຕ້ອງການການຢັ້ງຢືນ
ແບບຟອມຫຼາຍສ່ວນ. ພື້ນທີ່: ໄຟລ໌ (ຕ້ອງການ, 5-30s ສຽງ), ຊື່ (ຕ້ອງການ), ພາສາ (ທາງເລືອກ, ແບບ ຈຳ ລອງ en), ແບບ (ທາງເລືອກ — ເລືອກ cosyvoice2 ອັດຕະໂນມັດ ສຳ ລັບ zh / ja / ko ອື່ນ openvoice), 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
POST to /api/v1/tts/ (Note: web VPS host, not api.tts.ai) with 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
ເກັບໄວ້ / ເປີດໃຊ້ຄືນໃໝ່ (ຟຣີ)
ສຽງທີ່ເກັບໄວ້ຈະຢູ່ໃນບັນຊີຂອງທ່ານ ແຕ່ບໍ່ສາມາດໃຊ້ໃນ 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 key. |
| 402 | insufficient_credits |
ບໍ່ມີຕົວອັກສອນພຽງພໍ. ຊື້ເພີ່ມເຕີມທີ່ / pricing /. |
| 403 | forbidden |
ທ່ານບໍ່ມີສິດເຂົ້າເຖິງຊັບພະຍາກອນນີ້ (ຕົວຢ່າງ: ສອບຖາມວຽກຂອງຜູ້ໃຊ້ອື່ນ) ເຂົ້າເຖິງ API ແມ່ນລວມຢູ່ໃນແຜນການທຸກຢ່າງ. |
| 404 | not_found |
ບໍ່ພົບແບບ ຫຼື ສຽງ. |
| 413 | file_too_large |
ຂະໜາດຂອງໄຟລ໌ທີ່ໄດ້ອັບໂຫລດເກີນຂອບເຂດທີ່ໄດ້ກຳນົດໄວ້ |
| 429 | rate_limited |
ຄໍາຮ້ອງຂໍຫຼາຍເກີນໄປ. ກວດເບິ່ງຫົວຂໍ້ຈໍາກັດຄວາມໄວ. |
| 500 | internal_error |
ເກີດຂໍ້ຜິດພາດກັບម៉ាស៊ីនບິນ & # 160; ។ ພະຍາຍາມອີກຄັ້ງໃນອະນາຄົດ & # 160;! |
| 503 | model_loading |
ກຳລັງດາວໂຫລດແບບຢ່າງ. ພະຍາຍາມອີກໃນບໍ່ເທົ່າໃດວິນາທີ. |
Webhook
ສຳລັບວຽກທີ່ໃຊ້ເວລາດົນນານ (ການແບ່ງແຍກຕົ້ນໄມ້, TTS ຫຼາຍຄັ້ງ), ທ່ານສາມາດສະໜອງ webhook_url ພາຣາມິເຕີໄດ້. ເມື່ອວຽກສຳເລັດ, ພວກເຮົາຈະສົ່ງຜົນງານໄປຍັງ 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 ເຂົ້າໃນໂປແກຼມຂອງທ່ານ.