要在火山引擎调用豆包tts生成ai语音,需依次开通服务、获取access key与secret key、部署模型;再通过sdk或手写签名建立websocket连接;最后发送合规json初始化帧并解析event_type=352的二进制音频帧。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在火山引擎上制作可直接调用的AI语音,必须先开通豆包TTS服务、获取认证凭证、构造符合协议的WebSocket请求帧,并正确解析返回的二进制音频流,缺一不可。
开通豆包TTS服务并获取密钥
登录火山引擎控制台 → 进入「ARK」大模型平台 → 切换区域为 cn-beijing → 左侧导航栏点击「语音合成(TTS)」→ 点击「立即开通」。
开通后进入「API密钥管理」页面,创建一个新的Access Key,记录下 【Access Key ID】 和 【Secret Access Key】;这两个值后续将用于签名计算,不可泄露或丢失。
回到TTS服务页,点击「模型管理」→ 找到「豆包语音合成大模型」→ 点击「部署」→ 选择「实时流式合成」类型并确认部署。等待状态变为「运行中」即可开始调用。
构造合法的WebSocket连接请求
方法一:使用官方SDK(推荐新手)
在Python项目中安装 volcengine-sdk-python:pip install volcengine;初始化TTSClient时传入刚获取的Access Key和Region,调用create_tts_stream()即可建立带自动鉴权的WebSocket连接。
方法二:手写签名请求(适合调试与定制)
第一步:拼接待签名字符串,格式为 GET\n/volc/engine/tts/stream\naccess_key=xxx&action=CreateTTSStream&format=wav®ion=cn-beijing×tamp=1724089860&version=2023-01-01,其中 timestamp 必须是当前秒级时间戳,误差不能超过5分钟,否则会返回403错误。
第二步:用Secret Access Key对字符串进行HMAC-SHA256签名,再Base64编码,得到 signature 字段。
第三步:将 signature 拼入完整URL,形如:wss://open.volcengineapi.com?access_key=xxx&signature=yyy×tamp=zzz&…,用任意WebSocket客户端连接该地址。
发送文本并接收音频流
连接成功后,需立刻发送一个JSON格式的初始化帧:
{"text": "你好,我是AI语音助手", "voice_type": "zh-CN-xiaoyan", "sample_rate": 16000, "format": "wav"}
注意:text字段长度不能超过1024字符,超长会被截断且不报错;voice_type必须从控制台「音色列表」中精确复制,大小写和连字符都不能错,例如填成 zh-cn-xiaoyan 就会触发400响应。
服务端返回的是自定义二进制帧,结构为:4字节头部 + 4字节事件类型 + 4字节会话ID长度 + 会话ID + 4字节数据长度 + 音频数据。只有 event_type == 352(AUDIO_DATA)时,后续数据才是真实PCM/WAV音频内容,其他类型如152(SESSION_FINISHED)表示会话已结束,应主动关闭连接。
收到 AUDIO_DATA 帧后,提取出原始音频字节,按 format 字段指定格式封装(如 wav 需补RIFF头),即可喂给播放器或保存为文件。











