Mục lục
Hướng dẫn chuyển giọng nói thành văn bản
Hướng dẫn chuyển giọng nói thành văn bản
POST /v1/audio/transcriptions tương thích OpenAI-compatible: tải âm thanh lên bằng multipart/form-data hoặc gửi input_audio dạng base64 qua JSON để nhận văn bản. Các mô hình gồm elevenlabs/scribe-v2 và elevenlabs/scribe-v2-medical. Danh sách mới nhất tại GET /v1/models?output_modalities=transcription. GET /v1/models mặc định chỉ trả về mô hình văn bản, hãy thêm ?output_modalities=transcription (hoặc all) để liệt kê.
/v1/audio/transcriptionsTham số
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| model | string | Có | ID mô hình chuyển lời nói, ví dụ elevenlabs/scribe-v2. |
| file | file | Có | Tệp âm thanh (multipart). Hỗ trợ wav, mp3, mp4, m4a, ogg, flac, webm, aac, tối đa 25 MiB. Khách JSON có thể gửi input_audio: {data: base64, format} thay thế. |
| response_format | string | Không | json (mặc định) trả về {text}; verbose_json thêm ngôn ngữ, thời lượng và segments/words. |
| language | string | Không | Gợi ý ngôn ngữ tùy chọn như en hoặc zh. Để trống để tự nhận diện. |
| prompt | string | Không | Văn bản ngữ cảnh tùy chọn giúp nhận diện tên và thuật ngữ. Không phải mô hình nào cũng áp dụng. |
| timestamp_granularities[] | string[] | Không | word và/hoặc segment. Chỉ áp dụng với response_format=verbose_json; định dạng khác sẽ bỏ qua. Hiện chưa trả về mốc thời gian theo từng từ; segments thì có. |
Định dạng đầu ra
response_format chỉ nhận json hoặc verbose_json (không hỗ trợ text, srt, vtt). Không hỗ trợ stream. Giới hạn thời lượng theo mô hình, mặc định 60 giây; âm thanh dài hơn bị từ chối trước khi xử lý với 413 audio_too_long và không bị tính phí. Hãy chia bản ghi dài thành đoạn.
Tính phí
Chuyển lời nói được tính theo số giây âm thanh. Giá mỗi giây nằm trên trang mô hình ở /models và trong GET /v1/models dưới pricing.second; giá mỗi phút bằng 60 lần giá mỗi giây. Phản hồi usage ghi số giây tính phí và usage.cost ghi số tiền đã tính.
Ví dụ
curl https://api.bazaarlink.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-F model="elevenlabs/scribe-v2" \
-F file=@audio.mp3 \
-F response_format=verbose_json \
-F "timestamp_granularities[]=word"Lỗi thường gặp
| Trạng thái | Nguyên nhân và cách xử lý |
|---|---|
| 400 | Yêu cầu không hợp lệ: thiếu model hoặc file, âm thanh rỗng, response_format khác json/verbose_json, stream=true (unsupported_parameter), hoặc timestamp_granularities khác word/segment. |
| 401 | Thiếu hoặc sai khóa API. |
| 402 | Không đủ số dư. Nạp thêm rồi thử lại. |
| 413 | audio_too_large: âm thanh giải mã vượt 25 MiB. audio_too_long: âm thanh vượt giới hạn theo mô hình (mặc định 60 giây) bị từ chối trước khi xử lý và không bị tính phí. Hãy nén hoặc chia nhỏ. |
| 429 | Đã đạt giới hạn tốc độ. Đợi theo Retry-After rồi thử lại. |
| 502 | Dịch vụ mô hình tạm thời không khả dụng hoặc truyền âm thanh bị gián đoạn. Hãy thử lại; yêu cầu thất bại không bị tính phí. |
Chép lời âm thanh
Gửi multipart/form-data model và file hoặc JSON model và input_audio:{data,format} (base64 thuần). Định dạng: wav, mp3, mp4, m4a, ogg, flac, webm, aac. Âm thanh tối đa 25 MiB; thân yêu cầu 50 MiB cho base64. audio.transcription_max_seconds_by_model đặt giới hạn theo mô hình; nếu thiếu, dùng audio.transcription_max_seconds rồi mặc định 60 giây. Âm thanh dài hơn bị từ chối trước khi xử lý với 413 audio_too_long và không bị tính phí. response_format chỉ json hoặc verbose_json; timestamp_granularities word/segment cần verbose_json. Không hỗ trợ stream (400 unsupported_parameter); quá lớn: 413 audio_too_large. Bỏ qua provider. Giá cơ sở dữ liệu theo usage.seconds hoặc token đầu vào/đầu ra; giá phút = 60 × giá giây. usage.cost là phí khách hàng bằng USD.
/v1/audio/transcriptions