芯步智能音柱的HTTP接口采用双MD5签名机制,核心是构造正确的order命令字段——文本推送使用{"play:gbk:16":"要播报的内容"}格式。以下是完整的对接方案。
一、 概述与准备
1.1 适用产品
本方案主要针对芯步 智能语音音柱系列(涵盖10W、30W、PRO-60W等型号)。该系列产品的核心优势在于免录音、免合成,业务系统直接推送文本即可实现实时语音播报。
1.2 核心准备数据
在开始对接前,请登录[芯步开放平台/控制台]获取以下关键信息:
AppID(应用ID) :用于标识哪个应用/项目在调用接口。
AppSecret(开发者密码) :用于计算接口签名,请妥善保管,严禁硬编码在前端。
Device ID(设备ID) :音柱设备的唯一标识(通常在设备标签或控制台设备列表查看)。
1.3 技术原理
通信协议:HTTPS(推荐) / HTTP。
请求方法:POST。
数据格式
application/json或application/x-www-form-urlencoded。核心指令格式:文本播报采用特定的JSON结构
{"play:gbk:16":"要播报的文字"}。
二、 接口鉴权与签名机制
芯步的接口采用“动态签名”机制以防止接口被篡改。鉴权参数通过 URL Query 传递,而非 Header。
2.1 签名计算公式
这是对接中最关键的一步,签名逻辑如下:
获取当前Unix时间戳(秒级),记为
ts。step1_md5 = md5(AppSecret)step2_str = step1_md5 + tssign = md5(step2_str)
公式说明sign = MD5( MD5(AppSecret) + ts )
2.2 请求地址结构
POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}2.3 示例计算(伪代码)
假设 AppSecret = "abc123",ts = 1735689600
MD5("abc123") = "e99a18c428cb38d5f260853678922e03"拼接后 = "e99a18c428cb38d5f260853678922e03" + "1735689600"最终sign = MD5("e99a18c428cb38d5f260853678922e031735689600")
三、 核心功能实现:HTTP文本推送
这是业务系统最常用的功能——让音柱“说话”。
3.1 请求体参数(Body)
device:字符串,目标设备ID(支持批量传参,多个ID用英文逗号隔开)。
order:JSON字符串,这是控制动作的核心。
普通文本播报命令为:
{"play:gbk:16":"播报内容"}。说明
play:gbk:16表示GBK编码下的TTS(文字转语音)播报,数字16通常代表默认音量或优先级,常规使用此格式即可。
3.2 请求示例
场景:让设备ID为 YZ6688 的音柱播报“你好,欢迎光临”。
请求包体
3.3 多语言及代码示例(Python)
以下是一个完整的Python对接示例,展示了动态构造请求的全过程:
四、 高级控制与参数调节
除了简单的文本推送,30W音柱还支持通过修改 order 对象来实现个性化控制。
4.1 音量、语速与音色调节
可以在播报的同时,或者单独发送指令来调节设备状态。具体命令取决于产品的固件版本,通常在order中包含 vol(音量0-15)、speed(速度)、voice(音色)等参数。
常用控制命令示例
设置音量
{"vol": 10}(假设范围为0-15)组合播报:部分固件支持链式操作,但标准稳定做法是分开发送,或在支持的命令结构中包含参数。
4.2 支持的数字与多音字读法
接口内置了智能处理引擎,直接推送以下内容会自动优化播报效果:
金额
"订单金额199.9元"-> 读作 “一百九十九点九元”。手机号
"联系13800138000"-> 读作 “幺三八零零幺三八零零零”。多音字:在文本中替换为同音词(如“重庆”读作“拆庆”效果更好),系统虽有纠错但依赖上下文。
4.3 批量/分组播报
如果需要同时在多个区域(如多个仓库、多个楼层)播报,可以在 device 参数中用逗号分隔设备ID:
此时,所有在线的指定音柱将同步发声,实现广播效果。
五、 常见问题排查(FAQ)
5.1 返回签名错误(sign_error)
现象:服务器返回签名无效。
排查
确认 AppSecret 严格一致(注意大小写)。
确认时间戳 ts 是否为秒级(10位数字),且与服务器时间误差不宜过大(通常需在5分钟内,可通过NTP同步服务器时间)。
确认拼接顺序:
md5(md5(secret) + ts),不要搞反了顺序。
5.2 返回设备不在线
现象:设备离线错误。
排查
30W音柱使用WiFi 2.4G联网,确认设备所处环境WiFi信号强且支持2.4G频段(不支持5G WiFi)。
音柱支持“自动重连”,如果刚上电,请等待几秒网络连接完成。
5.3 播报乱码或中断
原因:中文编码问题。
解决:请一定要确保
order中的play:gbk:16键值对中的文本是 GBK编码 或 UTF-8(绝大部分云平台标准接口已适配UTF-8,但如果发现乱码,尝试将系统文本转码为GBK再进行Base64或直接传输,具体看设备固件更新日志。根据文档,play:gbk:16显式要求GBK,请求发送前对文本内容进行.encode('gbk')处理)。
5.4 关于私有化部署(私有云)
如果你的系统需要在内网环境运行,不支持访问公网,芯步支持私有化部署。
操作:采购硬件时申请私有化固件。
对接:API地址将从
api.thingboot.com变更为你指定的本地服务器IP地址,签名算法不变。
方案总结:对接芯步30W语音音柱的核心在于构造正确的签名和组装正确的Order JSON串。一旦签名验证通过,通过HTTP POST请求向音柱推送文本即可实现毫秒级的语音响应,无需复杂的音频处理流程。