CATALOG

芯步40W语音音柱支持HTTP接口直接下发播放命令,内置5种铃声可通过特定指令调用。以下方案涵盖准备工作、认证签名、核心命令(含纯铃声播放)及多语言代码示例,帮助快速集成。

解决方案:基于芯步开放接口二次开发40W语音音柱实现内置铃声播放

1. 准备工作

在开始二次开发之前,请确保完成以下硬件与环境准备:

  1. 硬件检查:确认“芯步智能语音音柱40W”(型号:UNI-YY-YZ-40W)已通电并开机。

  2. 网络配置:设备仅支持 2.4G WiFi 。请使用“芯步”官方App或配网工具将设备连接至互联网(或局域网,若使用私有化部署)

  3. 获取凭证

    • 登录芯步官方控制台。

    • 获取 AppIDAppSecret(开发者密码)

    • 获取目标设备的 Device ID(设备ID,可在控制台查看)

2. 接口认证机制(签名计算)

芯步的开放接口采用动态签名认证,所有HTTP请求必须在URL参数中携带 sign(签名)和 ts(时间戳)。服务端会验证时间戳的有效性(通常为5分钟内)以防止重放攻击

签名算法逻辑如下:

sign=MD5(MD5(AppSecret)+ts)sign = \text{MD5} ( \text{MD5} (AppSecret) + ts )

计算步骤:

  1. AppSecret 进行 第一次 MD5 加密,得到32位小写哈希值 m1

  2. m1 与当前的Unix时间戳(秒级,即 ts)进行字符串拼接,得到 m1 + ts

  3. 对拼接后的字符串进行 第二次 MD5 加密,得到最终的 sign

注意:时间戳 ts 同时在URL中和签名计算中使用,必须完全一致。

3. 核心解决方案:播放内置铃声

要实现“播放内置铃声提示音”,您无需上传音频文件,只需向设备的HTTP接口下发特定的JSON指令即可。该音柱内置了5种不同的铃声(Ringtones),通常用于工单提醒、门铃呼叫或警报预通知。

  • 接口地址https://api.thingboot.com/{AppId}/device/control/

  • 请求方法POST

  • Content-Typeapplication/json

重点:播放铃声的核心命令针对该系列音柱,播放独立铃声(不混入TTS语音)的命令结构如下:

您可以同时下发组合命令,例如先播放一段提示音,紧接着播放语音内容,这样就更贴合“二次开发”进行业务定制的场景:

(参考来源:根据产品手册,设备支持在同一order对象中包含多个参数)

4. 代码实现示例(多语言)

以下提供几种常见后端语言的二次开发核心逻辑片段。所有示例均遵循上述签名规则,只是请求体 order 内容调整为 {"ring":"1"}

场景:触发设备ID为 820720 的设备播放 2号 内置铃声。

Python 3 示例
Java (OkHttp) 示例
Shell (cURL) 示例

适用于快速脚本测试。

5. 高级应用技巧和需要注意的点

  1. 铃声组合使用在实际业务中,单纯的铃声往往不够。您可以使用 "message" (提示音) 或 "alert" (警示音) 配合铃声使用,或者如上文所示,在响铃后立即合成语音(TTS)

    • 仅播放提示音{"message":"3"}

    • 播放警示音+语音{"alert":"1", "play:gbk:16": "危险区域请勿靠近"}

  2. 音量与打断控制在播放铃声前,先设置合适的音量,以免在安静环境中铃声过大或过小:

    如果需要实现“打断播报”(例如紧急通知打断当前正在播放的音乐或铃声),可以使用停止命令先清空队列:

  3. 局域网与私有化部署如果您的系统部署在局域网内部,不需要经过外网,可以将上述代码中的域名 api.thingboot.com 替换为您自建的消息服务器地址。设备支持配置私有化服务器地址

  4. 远程铃声触发该方案不仅适用于服务器后端(Python/Java),也完全适用于微信小程序Web前端(需注意跨域问题)或低代码平台(如钉钉宜搭)。只需保证能发起HTTPS请求并计算MD5即可

6. 总结

通过芯步40W语音音柱的开放HTTP接口,开发者无需深入了解音频编解码,只需通过标准的HTTP POST请求,发送 {"ring":"x"} 结构的JSON数据,即可轻松实现内置铃声的远程播放控制。这一方案极大地降低了开发门槛,适合快速集成到仓储提醒、餐厅取餐叫号或工业安防报警等场景中。