芯步30W壁挂音箱的开放接口采用标准HTTP协议,通过简单的文本推送即可实现自定义语音播报,无需预先录音。以下是完整的对接方案。
一、对接原理简述
芯步30W壁挂音箱内置了TTS(文本转语音)芯片,开发者不需要进行复杂的音频编解码或文件上传。其核心对接逻辑如下:
通信协议:标准的 HTTP/HTTPS POST 请求。
接口地址
http(s)://api.thingboot.com/{AppId}/device/control/核心动作:向指定的设备ID(Device ID)发送包含播报文本的 JSON 命令。
认证方式:采用“设备ID + 签名”机制,确保 API 调用的安全性。
整个流程就像是一个简单的“文本投递”:您的业务系统将需要说的文字打包成请求,发送给物联网平台,平台随即转发给音箱,音箱瞬间发声。
二、准备工作:获取关键凭证
在开始编码前,您需要准备以下三个关键信息。这些信息通常在购买设备后,登录芯步官方物联网控制台获取:
AppId(应用ID):标识您的开发者账号或应用。
AppSecret(开发者密码):用于生成签名,请妥善保管,切勿泄露在前端代码中。
设备ID(Device):您想要控制的那个30W音箱的唯一编号。如果您购买了多个音箱,每个音箱都有一个独立的ID。
三、核心技术:签名计算规则
为了防止接口被恶意调用,所有请求都需要携带签名(sign)。签名算法虽然涉及两次MD5,但逻辑非常简单:
第一步:将您的
AppSecret进行 MD5 加密,得到SignKey。公式:SignKey = md5(AppSecret)第二步:获取当前的 Unix 时间戳(秒数),记为
ts。第三步:将
SignKey与ts拼接(注意顺序,SignKey在前,ts在后),然后再次进行 MD5 加密,得到最终的sign。公式:sign = md5(SignKey + ts)
注:时间戳 ts 用于防止请求被重放攻击,服务器会校验该时间戳的有效性(通常在几分钟内)。
四、核心接口:下达播报指令
这是对接中最关键的一步——让音箱“开口说话”。
请求地址https://api.thingboot.com/{你的AppId}/device/control/?sign={计算出的签名}&ts={当前时间戳}
请求方式POST
请求头 (Headers)Content-Type: application/json
请求体 (Body)
关键参数详解
device:填入你在第二步准备的设备ID。
order:这是一个JSON对象,里面包含具体指令。
play:gbk:16:这是播报指令的固定格式。
play:代表执行播报动作;gbk:代表文本编码格式(中文标准编码);16:代表最大文本长度(通常写16足够覆盖短句,若文本很长可适当调整,但一般分句播报或使用默认值)。值:就是你想让音箱说的内容,如“加工中心警报,温度过高”。
五、进阶功能:语音调节与高级命令
除了单纯的“说话”,该接口还支持通过修改 order 对象来实现丰富的控制功能。你可以将这些命令组合使用,或者在播报前先发送设置命令。
1. 音量控制
2. 音色切换
3. 带提示音的复合播报有时候在播报重要内容前,添加一个“叮咚”声能起到提醒作用。
4. 紧急停止如果发生误报或需要紧急静音:
六、实战代码示例(Node.js / JavaScript)
为了方便你集成,这里提供一个基于 Node.js 的完整代码片段,展示了如何在业务系统中触发语音播报。
注:上述代码逻辑同样适用于 Python、Java、PHP 等其他语言,只需将 MD5 计算和 HTTP POST 部分按语法转换即可。
七、常见问题与调试
报错“签名错误”
检查时间戳
ts是否为秒级(10位数字),而不是毫秒级(13位)。检查
md5的结果是否为 32位小写 十六进制字符串。核对拼接顺序:
md5( md5(AppSecret) + ts )。
音箱没反应
确认设备ID是否正确且与AppId在同一账号下。
确认音箱电源已接通,且WiFi指示灯状态正常(已联网)。音箱不支持移动蜂窝网络,必须连接2.4G WiFi。
首次使用先尝试
{"volume": "9"}调高音量,避免因音量过低听不见。
中文乱码或只读数字
确保
order中的 key 是play:gbk:16,这能确保中文被正确解析。对于纯数字字符串,如果要读作手机号(例如 138xxxx),在文本中按正常断句编写,TTS芯片会自动识别大部分数字读法。
通过以上步骤,你可以在30分钟内完成从零到一的对接,将离线场景的语音播报能力无缝集成到你的ERP、报警系统或自定义看板系统中。