BazaarLinkBazaarLink
เข้าสู่ระบบ
เอกสารAPI ข้อมูลอ้างอิงSDK ข้อมูลอ้างอิงการใช้งาน AgentAI ทักษะ
สารบัญ

คู่มือสังเคราะห์เสียงพูด (TTS)

คู่มือสังเคราะห์เสียงพูด (TTS)

POST /v1/audio/speech รองรับรูปแบบ OpenAI-compatible: ส่ง JSON แล้วรับไฟล์เสียงเป็นข้อมูลไบนารี กลุ่ม ElevenLabs มี 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 ดูรายการล่าสุดที่ GET /v1/models?output_modalities=speech GET /v1/models ค่าเริ่มต้นจะคืนเฉพาะโมเดลข้อความ ให้เพิ่ม ?output_modalities=speech (หรือ all) เพื่อดูรายการ

POST/v1/audio/speech

พารามิเตอร์

พารามิเตอร์ชนิดจำเป็นคำอธิบาย
modelstringใช่รหัสโมเดลเสียงพูด เช่น elevenlabs/eleven-flash-v2.5
inputstringใช่ข้อความที่จะสังเคราะห์: สูงสุด 4,096 อักขระต่อคำขอ (10,000 สำหรับ elevenlabs/eleven-v4 และ eleven-v4-turbo) หากยาวกว่านั้นให้แบ่งเป็นหลายคำขอ
voicestringใช่เสียงที่จะใช้ รูปแบบขึ้นอยู่กับโมเดล ดูกฎการใช้เสียงด้านล่าง
response_formatstringไม่mp3 (ค่าเริ่มต้น) หรือ pcm API รับ opus, aac, flac และ wav แต่โมเดล ElevenLabs ปฏิเสธด้วย 400 ในขณะนี้
speednumberไม่ความเร็วเสียงพูดตั้งแต่ 0.25 ถึง 4.0 ไม่ใช่ทุกโมเดลจะนำไปใช้
instructionsstringไม่คำสั่งกำหนดสไตล์เสียง ไม่ใช่ทุกโมเดลจะนำไปใช้
stabilitynumberไม่ความคงที่ของเสียง 0–1 (ค่าเริ่มต้น 0.5) ยิ่งต่ำยิ่งมีอารมณ์ ยิ่งสูงยิ่งเรียบ มีผลกับโมเดล elevenlabs/* เมื่อคำขอถูกให้บริการผ่านเส้นทางเสียงโดยตรงของเรา เฮดเดอร์ตอบกลับ X-Voice-Settings จะบอกว่า applied หรือ ignored
similarity_boostnumberไม่ความคล้ายกับเสียงต้นฉบับ 0–1 (ค่าเริ่มต้น 0.75) Eleven v3 ไม่ใช้ค่านี้
stylenumberไม่ความเน้นสไตล์ 0–1 (ค่าเริ่มต้น 0) ค่าเกิน 0 ทำให้ล่าช้าขึ้น Eleven v4 ไม่ใช้ค่านี้
use_speaker_boostbooleanไม่เพิ่มความคล้ายกับผู้พูดต้นฉบับ (ค่าเริ่มต้น true) ทำให้ล่าช้าเล็กน้อย
clone_strengthnumberไม่ความแรงของการโคลน 0–1 (แนะนำ 0 สำหรับเสียงส่วนใหญ่) ใช้ได้เฉพาะเสียงโคลนระดับมืออาชีพของคุณเอง (voice_…) ที่ฝึกสำหรับ Eleven v4
language_codestringไม่รหัสภาษาตัวพิมพ์เล็กสองตัวอักษร (ISO 639-1) เช่น ar, ja, en เพื่อกำหนดภาษาที่อ่าน โมเดล multilingual-v2 ไม่ใช้ค่านี้
audio_effectsobjectไม่ออบเจ็กต์เอฟเฟกต์เสียงแบบเลือกได้: filter_preset_id (ฟิลเตอร์ เช่น phone, old_radio), environment_id (พื้นที่เสียงก้อง เช่น small_room, hall), background_noise_id (เช่น cafe), distance (0–1), send_level (ปริมาณเสียงก้อง 0–1) และ pan (−1…1) ID ใช้ตัวพิมพ์เล็ก ตัวเลข และขีดล่างเท่านั้น ไม่คิดค่าบริการเพิ่ม เสียงก้องหรือ pan ที่ไม่เท่ากับ 0 จะได้เสียงสเตอริโอ และใช้ร่วมกับเอาต์พุต pcm ไม่ได้

การตั้งค่าเสียงทั้งเจ็ดข้างบนเป็นตัวเลือกทั้งหมด หากไม่ส่งก็ไม่มีอะไรเปลี่ยน ค่านอกช่วงจะได้ 400 และจะไม่ถูกส่งหรือคิดเงิน เฮดเดอร์ตอบกลับ X-Voice-Settings บอกว่าการตั้งค่าของคุณถูกใช้หรือไม่: applied = ใช้แล้ว; ignored = เส้นทางสำรองตอบกลับ จึงไม่ได้ใช้การตั้งค่าของคุณ (ยังสร้างเสียงได้ตามปกติ); ไม่มีเฮดเดอร์ = คุณไม่ได้ส่งการตั้งค่าเสียง ตัวอย่าง: stability 0 อ่านมีอารมณ์มากขึ้น 1 อ่านเรียบขึ้น

กฎการใช้เสียง

โมเดล ElevenLabs (elevenlabs/…) รับชื่อเสียงต่อไปนี้ชื่อใดชื่อหนึ่ง (ไม่แยกตัวพิมพ์เล็กใหญ่): george, sarah, adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, harry, jessica, laura, liam, lily, matilda, river, roger, will โมเดล ElevenLabs เว้น voice ได้ (ค่าเริ่มต้น george) ค่าอื่นจะได้ 400 invalid_voice เสียงที่กำหนดเองของคุณ (voice_…) อธิบายไว้ในหัวข้อ เสียงที่กำหนดเอง ด้านล่าง

ชื่อเสียงแบบ OpenAI-style เช่น alloy, echo หรือ nova ใช้ได้เฉพาะโมเดลที่ระบุชื่อเหล่านี้ ตรวจสอบเสียงในหน้าโมเดล

เสียงที่กำหนดเอง (โคลน) กำลังเปิดให้ใช้เป็นขั้นตอน: ดูหัวข้อ «เสียงที่กำหนดเอง» ด้านล่าง (POST /v1/voices) จนกว่าจะเปิดให้บัญชีของคุณ ให้ใช้ชื่อพรีเซ็ต 21 ชื่อด้านบนหรือ voice ID สาธารณะ

ส่ง alloy ให้โมเดล ElevenLabs แล้วจะล้มเหลว
หากโมเดล ElevenLabs ได้รับเสียงที่ไม่ใช่ voice ID และไม่ใช่ชื่อที่รองรับ (เช่น alloy หรือ Rachel) จะตอบ 400 invalid_voice และข้อความจะแสดงชื่อที่ยอมรับ คำขอที่ล้มเหลวไม่ถูกเรียกเก็บเงิน

รายการเสียงที่มีให้

ตั้งค่า voice เป็นชื่อใดชื่อหนึ่งด้านล่าง (ตัวพิมพ์เล็ก) แต่ละเสียงมีคลิปตัวอย่างสั้น ๆ ของเราเอง และ GET /api/v1/audio/voices จะคืนรายการทั้งหมด (เพศ ช่วงอายุ สำเนียง สไตล์ และ URL ตัวอย่าง)

?lang= (en, zh-TW, zh-CN; ค่าเริ่มต้นตาม Accept-Language) กำหนดเฉพาะภาษาของ description ส่วน URL ตัวอย่างไม่เปลี่ยนตามพารามิเตอร์: preview_urls.en (เหมือน preview_url) คือคลิปภาษาอังกฤษ และ preview_urls.zh (เหมือน preview_url_zh) คือคลิปภาษาจีน

เสียงคำอธิบายฟังตัวอย่าง
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.

แท็กอารมณ์และท่าทาง (audio tags)

เขียนแท็กในวงเล็บเหลี่ยมไว้ใน input ได้โดยตรง เช่น [laughs], [whispers], [excited], [sighs], [crying], [curious] หรือ [softly] แท็กจะถูกส่งให้โมเดลตามที่พิมพ์ทุกประการ และกำหนดวิธีแสดงถ้อยคำที่ตามมา แม้ข้อความจะเป็นภาษาไทย ให้คงแท็กเป็นภาษาอังกฤษ

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

รองรับโดย elevenlabs/eleven-v3 และกลุ่ม elevenlabs/eleven-v4 โมเดลเสียงอื่นไม่ตีความแท็กและอาจอ่านข้อความในวงเล็บออกเสียง ควรลองกับประโยคสั้น ๆ ก่อน

แท็กนับเป็นอักขระของ input และคิดเงินเหมือนข้อความส่วนอื่น

รูปแบบผลลัพธ์

หากไม่ใส่ response_format ค่าเริ่มต้นคือ mp3 (Content-Type audio/mpeg) และ pcm (audio/pcm, PCM 16 บิตดิบ) ก็ใช้ได้ API รับ opus, aac, flac และ wav แต่โมเดล ElevenLabs ปฏิเสธด้วย 400 ในขณะนี้ บันทึกไฟล์ตามส่วนหัว Content-Type ของการตอบกลับ

การคิดค่าบริการ

การสังเคราะห์เสียงคิดตามจำนวนอักขระอินพุต ราคาต่ออักขระอยู่ในหน้าโมเดลที่ /models และใน GET /v1/models ที่ pricing.character หน้าโมเดลแสดงราคาต่อล้านอักขระ

ตัวอย่าง

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

ข้อผิดพลาดที่พบบ่อย

สถานะสาเหตุและวิธีแก้
400คำขอไม่ถูกต้อง: ขาด model, input หรือ voice; input เกิน 4,096 อักขระ; speed อยู่นอก 0.25–4.0; response_format ไม่รองรับ; Unknown voice; unknown_model (ตรวจสอบ ID ที่ /models)
401ไม่มีคีย์ API หรือคีย์ไม่ถูกต้อง ส่ง Authorization: Bearer พร้อมคีย์ BazaarLink
402ยอดคงเหลือไม่พอ เติมเงินแล้วลองใหม่
403คีย์จัดการเรียกโมเดลไม่ได้ หรือบัญชีถูกระงับ ใช้คีย์ API ปกติ
429ถึงขีดจำกัดอัตราแล้ว รอตาม Retry-After แล้วลองใหม่
502บริการโมเดลไม่พร้อมชั่วคราวหรือการส่งเสียงขาดตอน ลองใหม่ คำขอที่ล้มเหลวไม่คิดค่าบริการ

ข้อมูลพารามิเตอร์ทั้งหมด: สังเคราะห์เสียงพูด

สังเคราะห์เสียงพูด

แปลงข้อความเป็นเสียงด้วยรหัสโมเดลจาก /v1/models?output_modalities=speech คิดราคาต่อล้านอักขระตามหน้าโมเดล ระบบจะบัฟเฟอร์เสียงทั้งหมดก่อนส่งคืนเป็นข้อมูลไบนารี ยังไม่รองรับการสตรีมทีละช่วง ฟิลด์ควบคุมการกำหนดเส้นทาง เช่น provider, transforms, route, service_tier และ preset จะถูกละเว้น

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

ใช้ audio หรือ input_audio กับ /v1/chat/completions และโมเดลที่รองรับเสียง ราคาโทเคนอินพุตและเอาต์พุตที่ตั้งค่าไว้ใช้ร่วมกันกับโทเคนข้อความและเสียงทั้งหมดที่รายงาน

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.
คู่มือสังเคราะห์เสียงพูด (TTS) | BazaarLink