芯步的智能语音音柱开放了标准的HTTP接口,对接起来其实就是一个“发请求”的事。我下面梳理了一个完整的对接方案,从签名计算到代码示例都涵盖了,你可以直接拿去参考。
一、 准备工作:先拿到“钥匙”和“门牌号”
在写代码之前,你需要先去芯步的后台拿到三样东西,这就好比你要发快递,得知道收件地址和联系方式:
AppID(应用ID):这是你项目的唯一标识。
AppSecret(开发者密码):这相当于你的密码,千万别把它写在网页前端代码里,只放在后端用。
Device ID(设备ID):就是你买的那台30W音柱的身份证,一般在设备外壳的标签上或者后台的设备列表里能看到。
稍微说一嘴,芯步的接口是完全免费的,不管是公有云还是私有化部署,都不额外收接口费。
二、 核心步骤:怎么写代码让它“开口说话”?
对于30W的音柱,最核心的功能就是 TTS(文字转语音) 。你要做的就是把你想要它念出来的文字,通过HTTP请求扔给它的云端服务器。
芯步用的是 HTTP POST 请求,接口地址格式如下:http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}
虽然看着地址有点长,但其实真正关键的参数只有两个放在Body里:
device:就是你的设备ID。
order:这里就是下达指令的核心了。
关键指令:让它开始播报
对于30W音柱,播报文本的命令是 play:gbk:16。假设你想让它喊“【注意】仓库A区,有车辆正在倒车,请注意安全”,或者“您好,欢迎光临”,你的order字段就要写成这样:
除了播报,这几个命令也很有用:
调节音量
{"volume": 80}(范围一般是0到100)切换男/女声
{"voice": 0}(0通常是女声,1是男声,具体可以查一下手册)停止播报
{"stop": "now"}(如果你发现念错了,可以用这个让它闭嘴)
三、 实战代码:复制粘贴就能用(Python示例)
为了让你看得更明白,这里直接用Python写一个简单的脚本。唯一稍微复杂点的就是签名(sign)的计算,芯步的规则是:sign = md5( md5(AppSecret) + ts ) 。先对自己的密钥做一次MD5,再把结果拼上时间戳,整体再做一次MD5。
假设你刚点完外卖,用户来取餐了,你想让音柱喊“贵客,您的餐品已备好,请取餐”。
四、 几个容易踩坑的地方(经验之谈)
编码问题
play:gbk:16里的gbk代表编码格式,如果播出来是乱码,试试把gbk改成utf-8,或者检查一下你代码文件的编码格式。网络要求:30W音柱通常只支持2.4G WiFi或者有线网络。配网的时候,记得别连上5G的那个WiFi信号,不然它死活连不上。
获取执行结果:上面的代码只保证了云端收到了指令。如果你需要确认“音柱到底念了没”,需要配置消息推送功能,设备执行成功后,云端会回调你的服务器,告诉一声“任务完成了”。
多音字:如果遇到人名、地名念错了,比如“重庆”念成了“重qing”,可以尝试在文本里加注音,或者调整
tone(语调)参数,大多数情况下更换音色(voice)能解决这个问题。
五、 总结一下这个方案
如果你的业务系统(比如ERP、排队叫号系统、或者自动警告系统)想对接这个30W音柱,流程就是:业务触发(比如有人按了门铃) -> 后端计算签名 -> 请求接口 -> 音柱立刻发声。
这套方案的好处是开发量极小,不管你用的是PHP、Java还是Go,逻辑都跟上面Python代码一模一样,只需要改一下语法就行了。