BazaarLinkBazaarLink
登入
文件API 参考SDK 参考Agent 应用AI Skills
章节导航

语音合成(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是语音模型 ID,例如 elevenlabs/eleven-flash-v2.5。
inputstring是要合成的文字,每次最多 4,096 个字符(elevenlabs/eleven-v4 与 eleven-v4-turbo 为 10,000)。更长的文字请拆成多次请求。
voicestring是要使用的声音,格式取决于模型。参见下方的声音规则。
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 则更平稳。

声音规则

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-style 声音名称仅适用于列出这些声音的模型。请在模型页查看。

自定义声音(克隆)正在分阶段开放:请见下方“自定义声音”章节(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 保存文件。

计费

语音合成按输入字符数计费。每字符价格见 /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(请在 /models 核对 ID)。
401API 密钥缺失或无效。请通过 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

在 /v1/chat/completions 传入 audio 或 input_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