必须通过ListAITranslationSpeech接口查询音色ID。预设音色可直接传入对应ID;自定义音色则需同时传递speaker_id="custom_speaker_id"与custom_speaker_id字段,并且该音色状态必须为“可用”。

在火山引擎 TTS 服务中,想要准确选择符合业务场景的 AI 音色,必须明确区分预设音色调用、自定义音色训练和音色设计这三种路径,不能只在控制台页面中简单点选完成。若使用错误的音色 ID,或相关权限、鉴权流程未完成,TTS 语音合成请求通常会直接返回 400 错误。
查可用音色列表(含预设+自建)
调用ListAITranslationSpeech接口,获取当前账号下全部可用音色列表,这是查询预设音色和自建音色的唯一权威来源;控制台 UI 页面展示可能存在延迟,甚至信息不完整。
构建GET请求:https://vod.volcengineapi.com?Action=ListAITranslationSpeech&Version=2025-01-01&SpaceName=your_space_name&SpeechTypeFilter=Preset,User&Language=zh
注意:SpaceName必须填写你在视频点播控制台中创建的真实空间名称,【填写错误将直接返回空列表】;如果SpeechTypeFilter只传Preset,那么你已训练完成的自定义音色将无法查询到。
响应体中的每个音色对象通常包含id、name、language、type等字段,其中真正用于TTS合成接口传参的speaker_id,就是id字段。
调用预设音色(免训练,开箱即用)
方法一:直接使用官方音色ID(推荐新手)
可从VOICE_PROFILES字典中选择目标音色,例如四川话可使用zh_male_sichuan_xiaoming_bigtts,并将其作为speaker_id参数传入TTS文本转语音接口即可完成调用。
方法二:通过音色名称进行模糊匹配(需自行解析ListAITranslationSpeech返回结果)
遍历接口返回的音色列表,筛选name字段包含“四川”且type为Preset的项目,再读取其id字段作为speaker_id。这一步很容易忽略带版本后缀的音色,例如_xxx_v2,进而造成匹配错误或调用失败。
方法三:在控制台能力体验页试听后复制ID(仅适合调试)
进入豆包语音控制台→能力体验→输入文本→播放任意音色→打开浏览器开发者工具→在Network中抓取tts/synthesis请求→查看POST body里的speaker_id字段。这个ID本身是真实有效的,但【不建议用于生产环境批量调用,因为不具备完整的权限校验依据】。
启用自定义音色(需提前训练)
第一步:确认音色已训练完成且状态为“可用”
登录火山引擎控制台→豆包语音→声音复刻→查看目标custom_speaker_id对应任务的当前状态。如果显示“处理中”或“失败”,此时发起 TTS 调用一定会报错。
第二步:严格按格式组装speaker_id与custom_speaker_id
请求体JSON中必须同时传入两个字段:speaker_id固定填写"custom_speaker_id"这个字符串,custom_speaker_id则填写你在训练自定义音色时设定的合法ID,例如my_sichuan_voice_01。
第三步:首次合成即扣费,务必先试听
在正式接入业务流程前,建议先使用极短文本,例如“你好”,发起一次合成请求,拿到audio返回结果后立即播放试听,确认音色效果是否符合预期。一旦合成成功,系统会立刻收取音色槽位费用,【无法退款,也无法撤销】。
