BazaarLinkBazaarLink
登入
文件API 參考SDK 參考Agent 應用AI Skills
章節導覽

語音合成(TTS)指南

語音合成(TTS)指南

POST /v1/audio/speech 與 OpenAI 相容:送出 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 個字元(elevenlabs/eleven-v4 與 eleven-v4-turbo 為 10,000)。更長的文字請拆成多次請求。
voicestring是要使用的聲音,格式依模型而定,見下方「voice 規則」。
response_formatstring否mp3(預設)或 pcm。opus、aac、flac、wav 雖被 API 接受,但目前 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)。僅適用於您自己、針對 Eleven v4 訓練的專業克隆聲音(voice_…)。
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 則更平穩。

voice 規則

ElevenLabs 模型(elevenlabs/…)的 voice 可填下列聲音名稱(不分大小寫):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_…)請見下方「自訂聲音」章節。

alloy、echo、nova 這類 OpenAI 風格的聲音名稱,只適用於有列出這些聲音的模型。各模型支援的聲音請看模型頁。

自訂聲音(克隆)正分階段開放:請見下方「自訂聲音」章節(POST /v1/voices)。在您的帳號開通之前,請使用上列 21 個預設名稱或公開的聲音 ID。

對 ElevenLabs 模型填 alloy 會失敗
ElevenLabs 模型收到既不是 voice ID、也不在支援名稱內的聲音(例如 alloy 或 Rachel)時,會回 400 invalid_voice,訊息會列出可用的名稱。失敗的請求不收費。

內建聲音一覽

voice 欄位可填下表的聲音名稱(英文小寫)。每個聲音都附一段我們自己的試聽,也可以用 GET /api/v1/audio/voices 取得完整清單(性別、年齡層、口音、風格與試聽網址)。

?lang=(en、zh-TW、zh-CN,預設依 Accept-Language)只決定 description 的語言;試聽網址不隨參數改變:preview_urls.en(同 preview_url)是英文試聽、preview_urls.zh(同 preview_url_zh)是中文試聽。

聲音說明試聽
george男聲、中年、英式口音。成熟沉穩,適合旁白與說故事。
sarah女聲、年輕、美式口音。專業清晰,適合影視與節目式朗讀。
adam男聲、中年、美式口音。親切自然,適合社群短影音。
alice女聲、中年、英式口音。專業,適合教學與資訊解說。
bella女聲、中年、美式口音。專業,適合教學與資訊解說。
bill男聲、年長、美式口音。清晰俐落,適合廣告配音。
brian男聲、中年、美式口音。沉穩有質感,適合社群與品牌內容。
callum男聲、中年、美式口音。表現力強,適合角色與動畫配音。
charlie男聲、年輕、澳洲口音。活力十足,適合對話。
chris男聲、中年、美式口音。輕鬆隨性,適合對話。
daniel男聲、中年、英式口音。正式穩重,適合新聞式與教學朗讀。
eric男聲、中年、美式口音。沉穩有質感,適合對話。
harry男聲、年輕、美式口音。粗獷有個性,適合角色配音。
jessica女聲、年輕、美式口音。明亮可愛,適合對話。
laura女聲、年輕、美式口音。俏皮有個性,適合社群內容。
liam男聲、年輕、美式口音。自信有精神,適合社群內容。
lily女聲、中年、英式口音。自信清楚,適合教學與資訊解說。
matilda女聲、中年、美式口音。開朗親切,適合教學與資訊解說。
river中性聲音、中年、美式口音。平靜穩定,適合對話。
roger男聲、中年、美式口音。沉穩有質感,適合對話。
will男聲、年輕、美式口音。放鬆隨和,適合對話。

情緒與動作標籤(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,原始 16-bit PCM)也可用。API 雖接受 opus、aac、flac、wav,但 ElevenLabs 模型目前會以 400 拒絕。請依回應標頭 Content-Type 儲存檔案。

計價方式

語音合成依 input 的字元數計費。每字元價格列在 /models 的模型頁,以及 GET /v1/models 的 pricing.character(每字元美元)。模型頁以每 100 萬字元顯示。

範例

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(voice 與模型不符);unknown_model(請到 /models 確認識別碼)。
401缺少或無效的 API Key。請以 Authorization: Bearer 帶上 BazaarLink 金鑰。
402點數不足,請儲值後再試。
403管理金鑰不能呼叫模型,或帳號已停用。請改用一般 API Key。
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

在 /v1/chat/completions 傳入 audio 或 input_audio,並選擇支援 audio 的模型。依設定的輸入與輸出 token 單價計費;回報的文字與音訊 token 合併套用相同單價。

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}'
客服
您好!有什麼可以協助?
請留下訊息,我們會盡快回覆。
語音合成(TTS)指南 | BazaarLink