Tài liệu API RytazTTS

API chuyển văn bản tiếng Việt thành giọng nói (model Ngọc Huyền, 24 kHz, chỉ dùng nghiên cứu/phi thương mại). Mọi request tới /api/tts phải kèm API key hợp lệ.

1. Lấy API key

Liên hệ quản trị viên để được tạo key tại trang /admin (mục “API key”). Key hiện dạng rtz_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx và chỉ hiển thị một lần lúc tạo — hãy lưu lại ngay, không thể xem lại sau đó (chỉ có thể tạo key mới).

2. Gọi API

Gửi key qua header X-API-Key:

curl -X POST https://tts.rytaz.com/api/tts \
  -H "X-API-Key: rtz_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"text": "Xin chào, đây là RytazTTS."}' \
  --output output.wav
# Python
import requests

resp = requests.post(
    "https://tts.rytaz.com/api/tts",
    headers={"X-API-Key": "rtz_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
    json={"text": "Xin chào, đây là RytazTTS."},
)
resp.raise_for_status()
open("output.wav", "wb").write(resp.content)
print("RTF:", resp.headers.get("X-RTF"))
# JavaScript (Node / server-side — không gọi trực tiếp từ browser công khai vì sẽ lộ key)
const resp = await fetch("https://tts.rytaz.com/api/tts", {
  method: "POST",
  headers: {"Content-Type": "application/json", "X-API-Key": "rtz_xxxx..."},
  body: JSON.stringify({text: "Xin chào, đây là RytazTTS."}),
});
const buffer = Buffer.from(await resp.arrayBuffer());
require("fs").writeFileSync("output.wav", buffer);

3. Tham số request (JSON body)

TrườngKiểuMặc địnhMô tả
textstringbắt buộcCâu cần đọc, tối đa 3000 ký tự
speedfloat1.0Tốc độ đọc, bị kẹp trong [0.8, 1.2]
fixed_pausesboolfalsetrue = ngắt nghỉ cố định theo dấu câu
overridesobjectnullLuật đọc tuỳ chỉnh, tối đa 50 cặp — xem /api/overrides

4. Response

Thành công: file audio/wav kèm header:

X-Processing-Secondsthời gian xử lý (giây)
X-Audio-Secondsđộ dài audio (giây)
X-RTFreal-time factor (xử lý / độ dài audio, càng nhỏ càng nhanh)
X-Characterssố ký tự đã đọc

5. Lỗi

CodeKhi nào
401Thiếu X-API-Key, key sai, hoặc key đã bị khoá
422Thiếu text, không có chữ cái, hoặc vượt 3000 ký tự
429Vượt giới hạn — xem mục 6
503Server đang xử lý câu khác, thử lại sau vài giây
500Lỗi tổng hợp giọng, thử câu khác

6. Giới hạn

Mỗi API key: tối đa 30 request / 60 giây. Vượt giới hạn trả về 429 kèm header Retry-After. Cần hạn mức cao hơn thì liên hệ quản trị viên.

7. Bảo mật key

← Về trang chủ