CATALOG

芯步的智能壁挂Pro开放了完整的HTTP接口,远程管理播放列表的核心就是通过API下发指令——不需要录音上传,直接推送文本就能让它说话。下面的方案会一步步拆解对接流程,从鉴权到播报控制再到列表管理思路,尽量写得口语化好理解。

解决方案:怎么对接智能壁挂Pro远程语音喇叭,实现远程播放列表管理

适用产品:芯步 智能语音壁挂音箱Pro 15W(UNI-YY-YX-BG-PRO-15W)及同系列其他规格。

1. 核心逻辑:其实没有“列表”,只有“指令”

首先我们要理解一个概念:这款音箱不需要你把MP3文件上传到云端,也不需要它在本地存一个歌单。

它是通过 HTTP接口实时推送文本,音箱接收到文本后,立刻用内置的TTS芯片合成语音播报出来

所以,所谓的“播放列表管理”,本质上就是管理你要推送的文本队列。你的后端程序需要维护一个待播报的队列,然后一条一条地推给音箱。

2. 准备工作:就三个小玩意儿

动手之前,先把这三样东西从芯步的控制台拿到手:

  1. AppID:你的应用ID。

  2. AppSecret:你的应用密钥(千万别泄露给前端)。

  3. Device ID:音箱背后的设备ID,或者你在控制台看到的编号

3. 核心难点:签名计算(别怕,三步搞定)

芯步的接口为了安全,所有请求都要带签名。逻辑比较绕,代码里其实就是两行的事:

签名的算法是:FinalSign = MD5( MD5(AppSecret) + ts )

解释一下步骤:

  1. 把 AppSecret 做一次MD5,得到一串字符串 S

  2. 把当前的时间戳(秒) 拼接到 S 的后面,得到 S + ts

  3. 把拼接后的字符串再做一次MD5,这就是最终的签名 Sign

补充:时间戳 ts 也必须作为参数传给接口,这一点很重要。

4. 实战控制:从“喂”一声到播报新闻

接口地址是:POST https://api.thingboot.com/{你的AppID}/device/control/?sign={你的签名}&ts={时间戳}

这个接口非常“实在”,核心参数就两个:

  • device:填你的设备ID。

  • order:这是一个JSON字符串,就是你要下的命令。

第一种场景:让它开口说话(最基础的单条播报)

如果你想让它说“你好,欢迎光临”,order 参数就这样写:

[ citation:2]

第二种场景:调节音量和音色(让它喊得有感情)

如果你觉得声音太小,或者想换成大叔音:

[ citation:3]

第三种场景:高级“列表”管理(没人听的才打断)

这里要引入一个队列管理的思路,因为音箱播放需要时间,如果你的订单来得太快,音箱就会“打架”。

  • 查询播放状态:你需要利用芯步的回调机制(如果配置了消息服务器),或者在你业务层维护一个状态锁,判断上一条是否播完。

  • 停止播放:如果你发现队列里有新来的紧急插播(比如“火警疏散”),需要清空当前列表:

  • 打断模式:普通的业务播报(比如“来新订单了”),如果遇上正在播放的长篇通知,你可能想直接覆盖。目前的机制是,下发新指令直接覆盖旧指令,设备只听最后一条。

5. 代码实战(Python 示例,一看就懂)

假设你要集成到 Python 后端,核心代码大概长这样(这里用 requests 库演示):

6. 进阶玩法:用 Shell 脚本快速测试

如果你想在 Linux 服务器上快速测试音箱通不通,用 curl 是最快的

7. 总结一下这套方案的优点

  • 不用烧录:传统音箱换语音要烧录TF卡,这玩意儿直接文本转语音,改内容零成本

  • 实时性强:接口响应在80-120ms,那边下单,这边立马喊出来

  • 跨平台:它不管你是 Java、PHP、Node.js 还是低代码平台,只要支持 HTTP POST,就能接

一些小提示

  • 网络:它只支持 2.4G WiFi,记得配网的时候别连错频段

  • 列表管理:如果你需要复杂的列表(比如定时播放、循环播放),这部分逻辑放在你的业务后端来做——你的服务器负责决定“下一句该说什么”,音箱只负责“说”。