Text-to-Speech API
Tổng Quan
Giới thiệu
Text-to-Speech (TTS) API của AusyncLab cho phép chuyển đổi văn bản thành âm thanh tự nhiên và truyền cảm. Hệ thống hỗ trợ nhiều loại giọng nói, ngôn ngữ đa dạng và công nghệ sao chép giọng nói tiên tiến.
Tính Năng Chính
- Chuyển đổi văn bản thành âm thanh chất lượng cao
- Hỗ trợ 17 ngôn ngữ
- Công nghệ Voice Cloning chỉ cần một mẫu giọng ngắn
- Điều chỉnh tốc độ nói linh hoạt
- Callback URL để theo dõi tiến trình xử lý
Quick Start
- Đăng ký và lấy API Key từ hệ thống.
- Tải lên giọng nói vào Voice Library hoặc sử dụng giọng có sẵn.
- Gửi yêu cầu TTS với văn bản và voice_id mong muốn.
- Nhận thông báo qua callback_url khi hoàn thành, hoặc polling endpoint chi tiết audio.
Xác Thực
API yêu cầu cung cấp API Key qua header X-API-Key. API Key phải được bảo mật và không chia sẻ công khai. Xem thêm Rate Limit.
Base URL
https://api.ausynclab.io/api/v1/speechPlayground
Thử nghiệm API tại: https://api.ausynclab.io/docs (opens in a new tab)
Chi Tiết Endpoints
1. Text to Speech
Endpoint: POST /text-to-speech
Mô tả: Chuyển đổi văn bản thành audio dựa trên các thông số đầu vào.
Tham số Request Body:
audio_name(bắt buộc): Tên của đoạn audio.text(bắt buộc): Văn bản cần chuyển đổi. Credit được tính theo số ký tự của văn bản sau khi bỏ thẻ<break time="Ns"/>và ký tự xuống dòng.voice_id(bắt buộc): ID của giọng nói mong muốn. Xem trang Voice Library để lấy ID giọng nói.speed(tùy chọn): Tốc độ nói. Khuyến nghị từ 0.75 đến 1.25. Mặc định1.0.model_name(tùy chọn): Model dùng để chuyển đổi (myna-1,myna-1-turbohoặcmyna-2). Mặc định làmyna-1-turbo. Giá trị khác sẽ bị từ chối với lỗi422. Điểm nổi bật của từng loại model:myna-1(Myna v1 Legacy): Mô hình khởi tạo, thiết kế và tối ưu chuyên sâu cho tiếng Việt. 1 credit mỗi ký tự.myna-1-turbo(Myna v1 Pro Fast): Sự kết hợp hoàn hảo giữa độ tự nhiên chuẩn v1 và công nghệ tăng tốc 10x. 0.5 credit mỗi ký tự (giảm 50% so với v1).myna-2(Myna v2): Mô hình nâng cao, tối ưu xử lý đa ngôn ngữ, tự nhiên hơn và chính xác hơn trên cùng một audio. 1 credit mỗi ký tự.
language(tùy chọn): Ngôn ngữ chuyển đổi. Các ngôn ngữ được hỗ trợ:en: Tiếng Anh (English)vi: Tiếng Việt (Vietnamese)de: Tiếng Đức (German)fr: Tiếng Pháp (French)ko: Tiếng Hàn (Korean)ja: Tiếng Nhật (Japanese)zh: Tiếng Trung (Chinese)it: Tiếng Ý (Italian)pt: Tiếng Bồ Đào Nha (Portuguese)pl: Tiếng Ba Lan (Polish)es: Tiếng Tây Ban Nha (Spanish)nl: Tiếng Hà Lan (Dutch)th: Tiếng Thái (Thai)ms: Tiếng Mã Lai (Malay)ar: Tiếng Ả Rập (Arabic)he: Tiếng Do Thái (Hebrew)lo: Tiếng Lào (Lao)
callback_url(tùy chọn): URL sẽ được gọi khi Text-to-speech job hoàn thành. Xem mục Callback Payload để tìm hiểu thêm. Nếu không cung cấp, hãy polling endpoint chi tiết audio cho đến khistatelàSUCCEED.
CURL:
curl -X 'POST' \
'https://api.ausynclab.io/api/v1/speech/text-to-speech' \
-H 'accept: application/json' \
-H 'X-API-Key: your_api_key' \
-H 'Content-Type: application/json' \
-d '{
"audio_name": "Demo Audio",
"text": "Xin chào, đây là Text-to-Speech API",
"voice_id": 1,
"speed": 1.0,
"model_name": "myna-2",
"language": "vi",
"callback_url": "https://your-callback-url.com"
}'Phản hồi:
- 200 OK
{
"status": 200,
"result": {
"audio_id": 123,
"current_threads": 1,
"limit_threads": 5
},
"message": null
}current_threads và limit_threads là số job đang xử lý và giới hạn job song song của tài khoản (có thể là null).
- 422 Validation Error:
model_namekhông hợp lệ hoặc body sai định dạng.
2. Lấy Danh Sách Audio
URL: https://api.ausynclab.io/api/v1/speech
Phương thức: GET
Mô tả: Lấy danh sách các audio đã tạo trong 30 ngày gần nhất.
CURL:
curl -X 'GET' \
'https://api.ausynclab.io/api/v1/speech' \
-H 'accept: application/json' \
-H 'X-API-Key: your_api_key'Phản hồi:
- 200 OK
{
"status": 200,
"result": [
{
"id": 123,
"name": "Demo Audio",
"voice_id": 1,
"voice_name": "Demo Voice",
"speed": 1,
"created_at": "2025-01-04T07:05:24.040000",
"audio_url": "https://cdn.example.com/audio/sample_audio.wav",
"audio_url_stream": "https://cdn.example.com/audio/sample_audio.m3u8",
"subtitle_url": "https://cdn.example.com/audio/sample_audio.srt",
"duration": 3.2,
"state": "SUCCEED"
},
...
],
"message": null
}3. Lấy Thông Tin Chi Tiết Audio
URL: https://api.ausynclab.io/api/v1/speech/{audio_id}
Phương thức: GET
Mô tả: Lấy thông tin chi tiết của một audio đã tạo.
Tham số:
audio_id(bắt buộc): ID của audio (kiểu integer).
CURL:
curl -X 'GET' \
'https://api.ausynclab.io/api/v1/speech/123' \
-H 'accept: application/json' \
-H 'X-API-Key: your_api_key'Phản hồi:
- 200 OK
{
"status": 200,
"result": {
"id": 123,
"name": "Demo Audio",
"voice_id": 1,
"voice_name": "Demo Voice",
"speed": 1,
"created_at": "2025-01-04T07:05:24.040000",
"audio_url": "https://cdn.example.com/audio/sample_audio.wav",
"audio_url_stream": "https://cdn.example.com/audio/sample_audio.m3u8",
"subtitle_url": "https://cdn.example.com/audio/sample_audio.srt",
"duration": 3.2,
"state": "SUCCEED"
},
"message": null
}- 400 Bad Request: Không tìm thấy audio (
"message": "audio_not_found").
Các trạng thái có thể (state):
| state | Mô tả |
|---|---|
WAITING_IN_QUEUE | Đang chờ xử lý |
IN_PROGRESS | Đang tổng hợp |
SUCCEED | Hoàn thành, audio_url sẵn sàng |
INTERNAL_ERROR | Lỗi xử lý |
ABORTED | Job bị hủy |
TIME_OUT | Job không hoàn thành trong thời gian cho phép |
4. Xóa Audio
URL: https://api.ausynclab.io/api/v1/speech/{id}
Phương thức: DELETE
Mô tả: Xóa một audio khỏi hệ thống.
Tham số:
id(bắt buộc): ID của audio cần xóa (kiểu integer).
CURL:
curl -X 'DELETE' \
'https://api.ausynclab.io/api/v1/speech/123' \
-H 'accept: application/json' \
-H 'X-API-Key: your_api_key'Phản hồi:
- 200 OK
{
"status": 200,
"result": {
"id": 123
},
"message": null
}- 400 Bad Request: Không tìm thấy audio (
"message": "audio_not_found").
Callback Payload
Khi Text-to-speech job hoàn thành, API sẽ gửi thông báo đến callback_url với payload:
Nội dung Payload:
audio_id: ID của audio được tạo (trùng vớiaudio_idtrả về khi tạo).credits_used: Số lượng tín dụng đã sử dụng để tạo âm thanh.voice_id: ID của giọng nói đã sử dụng.speed: Tốc độ nói của âm thanh.sample_rate: Tần số mẫu của âm thanh.created_at: Thời gian tạo âm thanh (ISO 8601).status: Trạng thái của request (SUCCEEDED,FAILED).audio_url: URL để tải xuống tệp âm thanh đã tạo.subtitle_url: URL tệp phụ đề của âm thanh (nếu có).message: Thông báo về kết quả xử lý (ví dụ: "Your audio is generated successfully.").duration: Thời lượng âm thanh (giây).
Ví dụ
{
"audio_id": 12345,
"credits_used": 10,
"voice_id": 1,
"speed": 1.0,
"sample_rate": 24000,
"created_at": "2024-12-30T10:00:00Z",
"status": "SUCCEEDED",
"audio_url": "https://cdn.example.com/audio/sample_audio.wav",
"subtitle_url": "https://cdn.example.com/audio/sample_audio.srt",
"message": "Your audio is generated successfully.",
"duration": 3.2
}Lưu ý: Người dùng cần triển khai endpoint để nhận và xử lý payload này.