BazaarLinkBazaarLink
Đăng nhập
Tài liệuTham chiếu APITham chiếu SDKSử dụng AgentKỹ năng AI
Mục lục

Hướng dẫn tạo giọng nói (TTS)

Hướng dẫn tạo giọng nói (TTS)

POST /v1/audio/speech tương thích OpenAI-compatible: gửi JSON và nhận tệp âm thanh dạng nhị phân. Dòng ElevenLabs gồm elevenlabs/eleven-v4, eleven-v4-turbo, eleven-v3, eleven-v3-conversational, eleven-multilingual-v2, eleven-flash-v2.5, eleven-flash-v2, eleven-turbo-v2.5, eleven-turbo-v2. Danh sách mới nhất tại GET /v1/models?output_modalities=speech. GET /v1/models mặc định chỉ trả về mô hình văn bản, hãy thêm ?output_modalities=speech (hoặc all) để liệt kê.

POST/v1/audio/speech

Tham số

Tham sốKiểuBắt buộcMô tả
modelstringCóID mô hình giọng nói, ví dụ elevenlabs/eleven-flash-v2.5.
inputstringCóVăn bản cần tổng hợp: tối đa 4.096 ký tự mỗi yêu cầu (10.000 với elevenlabs/eleven-v4 và eleven-v4-turbo). Hãy chia văn bản dài thành nhiều yêu cầu.
voicestringCóGiọng nói cần dùng; định dạng tùy theo mô hình. Xem quy tắc giọng nói bên dưới.
response_formatstringKhôngmp3 (mặc định) hoặc pcm. API chấp nhận opus, aac, flac và wav nhưng mô hình ElevenLabs hiện từ chối chúng bằng 400.
speednumberKhôngTốc độ nói từ 0.25 đến 4.0. Không phải mô hình nào cũng áp dụng.
instructionsstringKhôngChỉ dẫn phong cách giọng nói. Không phải mô hình nào cũng áp dụng.
stabilitynumberKhôngĐộ ổn định của giọng, 0–1 (mặc định 0,5). Thấp hơn giàu cảm xúc hơn, cao hơn đều hơn. Có hiệu lực với mô hình elevenlabs/* khi yêu cầu được phục vụ qua tuyến giọng nói trực tiếp của chúng tôi; header phản hồi X-Voice-Settings cho biết applied hoặc ignored.
similarity_boostnumberKhôngĐộ giống giọng gốc, 0–1 (mặc định 0,75). Eleven v3 không dùng.
stylenumberKhôngMức nhấn phong cách, 0–1 (mặc định 0). Lớn hơn 0 làm tăng độ trễ. Eleven v4 không dùng.
use_speaker_boostbooleanKhôngTăng độ giống người nói gốc (mặc định true); tăng nhẹ độ trễ.
clone_strengthnumberKhôngCường độ nhân bản, 0–1 (khuyến nghị 0 cho hầu hết giọng). Chỉ dùng cho giọng nhân bản chuyên nghiệp của riêng bạn (voice_…) được huấn luyện cho Eleven v4.
language_codestringKhôngMã ngôn ngữ hai chữ cái viết thường (ISO 639-1) như ar, ja, en để cố định ngôn ngữ đọc. Mô hình multilingual-v2 không dùng.
audio_effectsobjectKhôngĐối tượng hiệu ứng âm thanh tùy chọn: filter_preset_id (bộ lọc, ví dụ phone, old_radio), environment_id (không gian vang, ví dụ small_room, hall), background_noise_id (âm nền, ví dụ cafe), distance (0–1), send_level (lượng vang, 0–1) và pan (−1…1). ID gồm chữ thường, chữ số và dấu gạch dưới; không tính thêm phí. Vang hoặc pan khác 0 tạo âm thanh stereo và không dùng được với đầu ra pcm.

Bảy thiết lập giọng nói ở trên đều là tùy chọn; không gửi thì không có gì thay đổi. Giá trị ngoài phạm vi trả về 400 và không được gửi cũng không bị tính phí. Header phản hồi X-Voice-Settings cho biết thiết lập của bạn có được dùng không: applied = đã dùng; ignored = một tuyến dự phòng đã phản hồi nên thiết lập không được dùng (âm thanh vẫn được tạo); không có header = bạn không gửi thiết lập giọng nói nào. Ví dụ: stability 0 đọc giàu biểu cảm hơn, stability 1 đều hơn.

Quy tắc giọng nói

Mô hình ElevenLabs (elevenlabs/…) nhận một trong các tên giọng sau (không phân biệt hoa thường): george, sarah, adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, harry, jessica, laura, liam, lily, matilda, river, roger, will. Với mô hình ElevenLabs có thể bỏ voice (mặc định george). Giá trị khác trả 400 invalid_voice. Giọng nói tùy chỉnh của bạn (voice_…) được mô tả ở mục Giọng nói tùy chỉnh bên dưới.

Tên giọng OpenAI-style như alloy, echo hoặc nova chỉ dùng được với mô hình có liệt kê chúng. Xem trang mô hình để biết các giọng được hỗ trợ.

Giọng nói tùy chỉnh (nhân bản) đang được mở theo từng giai đoạn: xem mục Giọng nói tùy chỉnh bên dưới (POST /v1/voices). Cho đến khi được bật cho tài khoản của bạn, hãy dùng một trong 21 tên có sẵn ở trên hoặc một voice ID công khai.

Gửi alloy cho mô hình ElevenLabs sẽ thất bại
Nếu mô hình ElevenLabs nhận một giọng không phải voice ID cũng không thuộc các tên được hỗ trợ (ví dụ alloy hoặc Rachel), nó trả về 400 invalid_voice và thông báo liệt kê các tên được chấp nhận. Yêu cầu thất bại không bị tính phí.

Danh sách giọng có sẵn

Đặt voice thành một trong các tên bên dưới (chữ thường). Mỗi giọng có một đoạn nghe thử riêng của chúng tôi, và GET /api/v1/audio/voices trả về danh sách đầy đủ (giới tính, nhóm tuổi, giọng vùng, phong cách và URL nghe thử).

?lang= (en, zh-TW, zh-CN; mặc định theo Accept-Language) chỉ chọn ngôn ngữ của description. URL nghe thử không đổi theo tham số này: preview_urls.en (giống preview_url) là đoạn tiếng Anh, preview_urls.zh (giống preview_url_zh) là đoạn tiếng Trung.

GiọngMô tảNghe thử
georgeMale, middle-aged, British accent. Mature and steady, suited to narration and storytelling.
sarahFemale, young adult, American accent. Professional and clear, suited to broadcast-style reading.
adamMale, middle-aged, American accent. Everyday and approachable, suited to short social videos.
aliceFemale, middle-aged, British accent. Professional and informative, suited to explainers and teaching.
bellaFemale, middle-aged, American accent. Professional and informative, suited to explainers and teaching.
billMale, senior, American accent. Crisp and direct, suited to advertising voice-overs.
brianMale, middle-aged, American accent. Polished and refined, suited to social and brand content.
callumMale, middle-aged, American accent. Expressive, suited to characters and animation.
charlieMale, young adult, Australian accent. Energetic and lively, suited to conversation.
chrisMale, middle-aged, American accent. Relaxed and casual, suited to conversation.
danielMale, middle-aged, British accent. Formal and measured, suited to news-style and educational reading.
ericMale, middle-aged, American accent. Polished and warm, suited to conversation.
harryMale, young adult, American accent. Rough and gritty, suited to character voices.
jessicaFemale, young adult, American accent. Bright and cute, suited to conversation.
lauraFemale, young adult, American accent. Playful with attitude, suited to social content.
liamMale, young adult, American accent. Confident and upbeat, suited to social content.
lilyFemale, middle-aged, British accent. Confident and clear, suited to explainers and teaching.
matildaFemale, middle-aged, American accent. Upbeat and friendly, suited to explainers and teaching.
riverNeutral voice, middle-aged, American accent. Calm and even, suited to conversation.
rogerMale, middle-aged, American accent. Polished and confident, suited to conversation.
willMale, young adult, American accent. Laid-back and easygoing, suited to conversation.

Thẻ cảm xúc và hành động (audio tags)

Viết thẻ trong dấu ngoặc vuông ngay trong input, ví dụ [laughs], [whispers], [excited], [sighs], [crying], [curious] hoặc [softly]. Thẻ được gửi tới mô hình đúng như đã gõ và quyết định cách thể hiện những từ phía sau. Hãy giữ thẻ bằng tiếng Anh dù nội dung dùng ngôn ngữ khác.

curl https://api.bazaarlink.ai/v1/audio/speech \
  -H "Authorization: Bearer $BAZAARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"elevenlabs/eleven-v3","input":"[laughs] That was actually funny. [whispers] Do not tell anyone.","voice":"george","response_format":"mp3"}' \
  --output audio-tags.mp3

Được hỗ trợ bởi elevenlabs/eleven-v3 và họ elevenlabs/eleven-v4. Các mô hình giọng nói khác không hiểu thẻ và có thể đọc to nội dung trong ngoặc, nên hãy thử một câu ngắn trước.

Thẻ được tính vào số ký tự của input và tính phí như phần văn bản còn lại.

Định dạng đầu ra

Nếu bỏ response_format, mặc định là mp3 (Content-Type audio/mpeg); pcm (audio/pcm, PCM 16-bit thô) cũng dùng được. API nhận opus, aac, flac và wav nhưng mô hình ElevenLabs hiện từ chối bằng 400. Hãy lưu tệp theo header Content-Type của phản hồi.

Tính phí

Tạo giọng nói được tính theo số ký tự đầu vào. Giá mỗi ký tự nằm trên trang mô hình ở /models và trong GET /v1/models dưới pricing.character. Trang mô hình hiển thị giá cho một triệu ký tự.

Ví dụ

curl https://api.bazaarlink.ai/v1/audio/speech \
  -H "Authorization: Bearer $BAZAARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"elevenlabs/eleven-flash-v2.5","input":"Hello from BazaarLink.","voice":"george","response_format":"mp3"}' \
  --output speech.mp3

Lỗi thường gặp

Trạng tháiNguyên nhân và cách xử lý
400Yêu cầu không hợp lệ: thiếu model, input hoặc voice; input vượt 4.096 ký tự; speed ngoài 0.25–4.0; response_format không hỗ trợ; Unknown voice; unknown_model (kiểm tra ID tại /models).
401Thiếu hoặc sai khóa API. Gửi Authorization: Bearer cùng khóa BazaarLink.
402Không đủ số dư. Nạp thêm rồi thử lại.
403Khóa quản trị không thể gọi mô hình, hoặc tài khoản bị tạm ngưng. Hãy dùng khóa API thông thường.
429Đã đạt giới hạn tốc độ. Đợi theo Retry-After rồi thử lại.
502Dị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í.

Tài liệu tham số đầy đủ: Tổng hợp giọng nói

Tổng hợp giọng nói

Chuyển văn bản thành âm thanh bằng mã mô hình từ /v1/models?output_modalities=speech. Tính phí theo giá mỗi triệu ký tự trên trang mô hình. Toàn bộ âm thanh được đệm xong rồi mới trả về dạng nhị phân; chưa hỗ trợ truyền theo từng đoạn. Các trường điều khiển định tuyến như provider, transforms, route, service_tier và preset sẽ bị bỏ qua.

POST/v1/audio/speech
curl https://api.bazaarlink.ai/v1/audio/speech \
  -H "$BAZAARLINK_AUTH_HEADER" \
  -H "Content-Type: application/json" \
  -d '{"model":"<speech-model-id>","input":"Hello","voice":"alloy","response_format":"mp3"}' \
  --output speech.mp3

# Voice settings (elevenlabs/* models; the X-Voice-Settings response header says applied or ignored)
curl -D - https://api.bazaarlink.ai/v1/audio/speech \
  -H "$BAZAARLINK_AUTH_HEADER" \
  -H "Content-Type: application/json" \
  -d '{"model":"elevenlabs/eleven-v4","input":"Hello","voice":"george","stability":0.4,"similarity_boost":0.8,"style":0.2,"use_speaker_boost":true,"language_code":"en","audio_effects":{"distance":0.3}}' \
  --output speech.mp3
POST/v1/chat/completions

Dùng audio hoặc input_audio với /v1/chat/completions và mô hình âm thanh. Giá token đầu vào/đầu ra đã cấu hình áp dụng đồng nhất cho tổng token văn bản và âm thanh được báo cáo.

curl https://api.bazaarlink.ai/v1/chat/completions \
  -H "$BAZAARLINK_AUTH_HEADER" \
  -H "Content-Type: application/json" \
  -d '{"model":"<audio-chat-model-id>","messages":[{"role":"user","content":"Say hi."}],"stream":true,"modalities":["text","audio"],"audio":{"voice":"alloy","format":"pcm16"},"max_tokens":32}'
Support
Hi! How can we help you?
Send a message and we'll get back to you soon.
Hướng dẫn tạo giọng nói (TTS) | BazaarLink