Bỏ qua

API Chuyển văn bản thành giọng nói

Một endpoint dùng cho cả văn bản thường lẫn phụ đề SRT:

Bước Lệnh gọi Chi phí
1. Tạo job POST https://revidapi.com/v1/text-to-speech 10–15 credit / 1.000 ký tự
2. Lấy kết quả GET https://revidapi.com/v1/text-to-speech/{job_id} Miễn phí

Giá

Tính theo số ký tự, theo giá của giọng bạn chọn. Giá từng giọng ghi trong Thư viện giọng.

  • Giọng tiêu chuẩn: 10 credit / 1.000 ký tự
  • Giọng cao cấp: 15 credit / 1.000 ký tự

Credit bị trừ khi tạo job. Job lỗi hoặc mất kết quả thì credit được hoàn tự động.

Xác thực

Gửi API key trong header X-API-Key. Lấy key trên dashboard, mục API Key & Bảng giá.

1. Tạo job

POST https://revidapi.com/v1/text-to-speech

Body

Gửi một trong hai: text hoặc srt.

Trường Kiểu Bắt buộc Mô tả
voice_id số Có ID giọng trong Thư viện giọng, ví dụ 9019
text chuỗi Một trong hai Văn bản cần đọc, tối đa 10.000 ký tự
srt chuỗi Một trong hai Nội dung phụ đề SRT thô. Audio bám theo thời gian của phụ đề
speed số Không 0.5–2.0. Mặc định 1.0
mode chuỗi Không Chỉ dùng với SRT. timeline (mặc định khi gửi SRT): mỗi câu bắt đầu đúng mốc thời gian. merge: nối các câu liền nhau
audio_name chuỗi Không Tên file đầu ra

Có thể gửi subtitles (mảng {index, start, end, text}) thay cho srt.

Ví dụ: văn bản

curl -X POST "https://revidapi.com/v1/text-to-speech" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"voice_id": 9019, "text": "Xin chào, chào mừng bạn đến với RevidAPI."}'

Ví dụ: phụ đề SRT

curl -X POST "https://revidapi.com/v1/text-to-speech" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_id": 9019,
    "srt": "1\n00:00:00,000 --> 00:00:03,000\nCâu thứ nhất\n\n2\n00:00:04,000 --> 00:00:07,000\nCâu thứ hai",
    "mode": "timeline"
  }'

Phản hồi

{
  "success": true,
  "job_id": "7c1d9a2e-4b1f-4f7e-9a55-2f3c8e1b6d40",
  "status": "pending",
  "characters": 41,
  "credits": 0.62,
  "get_result": "https://revidapi.com/v1/text-to-speech/7c1d9a2e-4b1f-4f7e-9a55-2f3c8e1b6d40"
}

2. Lấy kết quả

GET https://revidapi.com/v1/text-to-speech/{job_id}

Hỏi mỗi 2–3 giây tới khi status là completed hoặc failed. Một câu ngắn thường xong trong khoảng 3 giây; văn bản dài và file phụ đề lâu hơn.

curl "https://revidapi.com/v1/text-to-speech/JOB_ID" \
  -H "X-API-Key: YOUR_API_KEY"

Đang xử lý

{ "job_id": "7c1d9a2e-…", "status": "processing", "progress": 40 }

Hoàn thành

{
  "job_id": "7c1d9a2e-…",
  "status": "completed",
  "result": {
    "audio_url": "https://…/output.mp3",
    "format": "mp3",
    "duration": 2.1
  }
}

Tải file từ result.audio_url. Link dùng được trong 20 phút, nên lưu audio về phía bạn.

Thất bại

{ "job_id": "7c1d9a2e-…", "status": "failed", "message": "…" }

Credit của job thất bại được hoàn lại.

Lỗi

HTTP Ý nghĩa Cách xử lý
400 Thiếu voice_id, hoặc không gửi text lẫn srt Sửa lại body
401 Thiếu hoặc sai API key Kiểm tra header X-API-Key
402 Không đủ credit Nạp thêm trên dashboard
404 Không tìm thấy job (hết hạn hoặc bị mất). Job mất thì credit đã được hoàn Tạo lại job

Ghi chú

  • Hỏi kết quả cách nhau 2–3 giây; kết quả chỉ được giữ trên máy chủ trong một thời gian.
  • Chỉ cần voice_id là đủ để xác định giọng, ngôn ngữ và giá. Không cần gửi engine hay ngôn ngữ.
  • /v1/tts, /v1/tts-srt, /v1/srt-to-speech/merge và /v1/tts/task là đường cũ. Chúng vẫn chạy cho tích hợp đang có, nhưng code mới chỉ nên dùng /v1/text-to-speech.