Hướng dẫn media
Âm thanh & thời gian thực
Chọn giọng nói, phiên âm, dịch hoặc WebSocket thời gian thực cho ứng dụng âm thanh.
Tác vụ âm thanh có hai dạng. Dùng endpoint audio cho yêu cầu kiểu tệp như text-to-speech, phiên âm và dịch âm thanh. Dùng endpoint WebSocket thời gian thực khi trải nghiệm cần âm thanh tương tác độ trễ thấp hoặc sự kiện đa phương thức.
Chọn Luồng
| Luồng | Endpoint | Dùng khi |
|---|---|---|
| Văn bản thành giọng nói | POST /v1/audio/speech | Bạn cần tệp âm thanh từ văn bản. |
| Phiên âm | POST /v1/audio/transcriptions | Bạn cần văn bản từ tệp âm thanh. |
| Dịch âm thanh | POST /v1/audio/translations | Bạn cần văn bản đã dịch từ tệp âm thanh. |
| Phiên thời gian thực | GET /v1/realtime | Bạn cần âm thanh streaming hai chiều hoặc sự kiện đa phương thức thời gian thực. |
Khám Phá Mô Hình
Hãy truy vấn danh mục mô hình trước khi hard-code model. Dùng danh sách đề xuất cho speech và transcription, đồng thời kiểm tra hỗ trợ realtime trong chi tiết model trước khi mở socket.
curl "https://api.tokenlab.sh/v1/models?recommended_for=tts" \
-H "Authorization: Bearer sk-your-api-key"
curl "https://api.tokenlab.sh/v1/models?recommended_for=stt" \
-H "Authorization: Bearer sk-your-api-key"Yêu Cầu Âm Thanh Đồng Bộ
Tổng hợp giọng nói trả âm thanh trong phản hồi HTTP. Chép lời và dịch có thể trả văn bản cuối cùng hoặc tác vụ đã nhận. Nếu phản hồi chứa ID và trạng thái tác vụ thay vì văn bản, hãy lưu ID và theo dõi poll_url đến khi hoàn tất hoặc thất bại. Dành đủ thời gian cho tệp lớn và giữ Request ID.
curl -X POST "https://api.tokenlab.sh/v1/audio/speech" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1-hd",
"voice": "nova",
"input": "Welcome to TokenLab."
}' \
--output speech.mp3Phiên Thời Gian Thực
Mở WebSocket với model trong query string và API key trong header Authorization. Dùng định dạng sự kiện được tài liệu hóa cho realtime model đã chọn, rồi đóng socket khi phiên hoàn tất.
Hướng dẫn này chỉ bao phủ WebSocket subset. TokenLab hiện chưa cung cấp các endpoint REST của OpenAI Realtime cho client secret, translation client secret, Calls hoặc quản lý legacy beta session.
Với ví dụ máy chủ, cài ws và đặt TOKENLAB_REALTIME_MODEL thành mô hình hiện tại có chi tiết khai báo /v1/realtime. Cung cấp TOKENLAB_API_KEY trong môi trường máy chủ; tên mô hình không đủ chứng minh hỗ trợ realtime.
npm install wsimport WebSocket from 'ws';
const model = process.env.TOKENLAB_REALTIME_MODEL;
const apiKey = process.env.TOKENLAB_API_KEY;
if (!model || !apiKey) throw new Error('Set TOKENLAB_REALTIME_MODEL and TOKENLAB_API_KEY');
const url = new URL('wss://api.tokenlab.sh/v1/realtime');
url.searchParams.set('model', model);
const socket = new WebSocket(url, {
headers: { Authorization: `Bearer ${apiKey}` },
});
socket.on('message', (event) => console.log(event.toString()));
socket.on('error', (error) => console.error(error.message));
process.once('SIGINT', () => socket.close(1000, 'Client stopped'));Xử Lý Trạng Thái
- Lưu tệp âm thanh đã tạo thay vì phát lại cùng một yêu cầu khi refresh.
- Với phiên âm và dịch, vẫn hiển thị trạng thái tải lên và xử lý dù API call là đồng bộ.
- Với realtime, xử lý sự kiện đóng và chỉ kết nối lại khi người dùng bắt đầu phiên mới.
- Không đặt API key, URL riêng tư hoặc bí mật tài khoản trong văn bản âm thanh.
Tham Chiếu API
| Chủ đề | Tham chiếu |
|---|---|
| Tạo Giọng Nói | Tạo Giọng Nói |
| Tạo Phiên Âm | Tạo Phiên Âm |
| Tạo Bản Dịch | Tạo Bản Dịch |
| WebSocket Thời Gian Thực | WebSocket Thời Gian Thực |
| Liệt Kê Mô Hình | Liệt Kê Mô Hình |
| Thanh toán & giá | Thanh toán & giá |