芯步的60W音柱对接其实很简单——核心就是调用一个HTTP接口,把要播报的文字塞进去就行。下面我会从准备工作、签名算法、具体接口调用,到各种播报玩法(音量控制、多音字处理等)都讲清楚。
一、 准备工作:找到开门的“钥匙”
在开始写代码之前,我们需要先找到三样东西,这就好比你要开车,得先有钥匙和车。
AppID(应用ID) 和 AppSecret(应用密钥)
这东西在哪?登录芯步的控制台,在“开发设置”里就能看到。
AppID 就像是你的“账号名”,通常是公开的。
AppSecret 是你的“密码”,千万别把它写在网页前端的代码里,不然容易被别人偷看。最好放在后端(比如Java、Python、PHP的后台服务里)。
Device ID(设备ID)
这就是你那台60W音柱的“身份证号”。你可以在控制台的“设备列表”里看到它,有时候设备机身贴的标签上也有。
小提示: 如果你买了一堆音柱,可以在这里一次性拿到所有ID。
网络环境
60W音柱通常支持WiFi(2.4G频段)或有线网络。请请一定要先通过手机App或控制台,把它连上互联网。如果设备不在线,接口调通了也听不见声音。
二、 核心步骤:签名与请求
芯步的接口为了安全,所有请求都要带一个动态生成的“签名(Sign)”,防止有人伪造命令。
1. 签名算法(别看公式,看例子)
官方文档给的公式是:sign = md5(md5(AppSecret) + ts)。
咱们拆解一下,假设:
你的
AppSecret是abc123当前的时间戳
ts是1712000000(就是现在的秒数)
第一步: 对密钥做一次MD5加密。假设 md5(abc123) = ccc47d88... (这是一串32位的字符串)第二步: 把上面得到的结果拼接上时间戳: ccc47d88... + 1712000000 = ccc47d88...1712000000第三步: 对这个拼接后的字符串再做一次MD5加密。最后得到的这串字母数字,就是你的 sign。
2. 发起请求(最关键的一步)
一切准备就绪,我们只需要往这个地址发请求就行了:
请求地址:https://api.thingboot.com/{你的AppID}/device/control/?sign={你算出来的sign}&ts={当前时间戳}
请求方式:POST
请求头(Header):Content-Type: application/json
请求体(Body): 这是JSON格式的,告诉服务器让谁说话、说什么。
citation: 参考指令格式
代码示例(非常口语化的Python版):
三、 进阶玩法:不仅仅是“播放文字”
既然对接好了,光会说“你好”可不够。60W音柱还支持很多控制参数,你可以通过修改 order 里的内容来实现。
1. 调整音量和语速
假设外面下雨太吵,想让它大点声,或者说话快一点:
citation:
2. 处理数字和多音字(让播报更专业)
如果播报金额或者手机号,直接发数字可能会念错。
金额:直接带单位
101元,它会读作“一百零一元”。手机号:用空格或横杠隔开
139-1234-5678,它会按手机号方式读。多音字:比如“重庆”,怕它读成“重(zhòng)庆”,可以发
chong qing拼音。但实测芯步的TTS芯片对常见多音字处理得不错,一般不用太担心。
3. 播放提示音或铃声
在播报正文前,先来一声“叮咚”或者警报,用来提醒人注意。
citation:
4. 批量控制(广播)
如果你要把同一句话发给多台音柱(比如多车道、多层停车场),不用循环请求。直接把 device 参数里的ID用逗号隔开:
citation:
四、 避坑指南(FAQ)
Q1: 我调接口返回了 code:200,但音柱没响,怎么回事?A:200 只代表云端收到了指令。这时候你要检查:
设备在线吗? 去控制台看看设备状态是不是“在线”。如果没在线,检查一下电源和WiFi。
命令格式对吗? 是不是手滑把
play:gbk:16写错了?仔细检查JSON的引号。
Q2: 延迟高吗?适合用来做道闸语音吗?A: 官方数据是 80-120ms 左右。对于停车场播报“欢迎光临”这种场景足够了。但对于“一秒内必须响”的极端工业控制,先买一台样机实测一下。
Q3: 我不想让它说死板的机器音,能换人吗?A: 可以的。通过 speaker 或 voice 参数(具体看产品手册),可以切换男声、女声。一般女声听起来更柔和亲切一点。
五、 总结一下
对接这个60W音柱,本质就两步: 1. 拼好URL带着签名; 2. 把文字塞进order里发出去。 一旦调通了一个,剩下的就是根据业务逻辑,在合适的时间(比如用户扫码成功时、传感器触发时)调用这个函数即可。