CATALOG

一、写在前面:这东西到底能干啥?

你是不是也遇到过这种情况——后厨忙得热火朝天,前台打印机“滋啦滋啦”响个不停,但店员根本没听见,结果客人等了半天发现订单还没做?

或者你是做聚合支付的,想给商家提供“来单播报”的增值服务,但又不想折腾那些复杂的硬件协议?

芯步这款10W的HTTP接口语音壁挂音箱,就是解决这个问题的。最爽的一点是:你根本不需要懂什么硬件协议,会发HTTP请求就能让它开口说话

这篇文章我会手把手教你把它对接到自己的项目里,不管你用的是Java、Python、Go还是PHP,思路都一样。咱们不整那些虚的,直接上干货。

二、准备工作:你需要拿到三样东西

在写代码之前,先去芯步的控制台把这三样东西拿到手,缺一不可:

  1. AppID:你的应用唯一标识,相当于“用户名”

  2. AppSecret:你的应用密钥,千万别泄露给前端,这玩意儿就像你家的门禁卡

  3. 设备ID:就是那台壁挂音箱的身份证,在控制台能查到

小贴士:如果你有多个门店,每个门店挂一台音箱,那你就要记录好每台音箱的设备ID和门店的对应关系。

三、核心原理:其实就两步

说白了就是:你的服务器 → 芯步的API → 音箱

你的项目收到订单后,调用芯步的HTTP接口,告诉它“给我播报这句话”,然后音箱就响了。整个过程也就几百毫秒的事儿

四、签名怎么算?这里有个坑要注意

芯步的接口用了签名验证,这是为了防止别人乱调用你的设备。签名的算法是:

注意这里的 +字符串拼接,不是数学加法。ts 是当前的时间戳(秒级)

我踩过的坑告诉你:

  • 顺序别搞反:先MD5(AppSecret),再拼上ts,然后再整体MD5一次

  • ts要用同一个:计算签名时用的ts,要和请求参数里的ts保持一致

  • 时间戳要同步:如果服务器时间不准,可能会验证失败

用伪代码写出来就是这样:

五、让音箱开口说话:最核心的代码

重头戏来了。让音箱播报文字的order格式是:

这里的gbk是编码格式,16是音量(具体值看产品手册,一般0-100都有)。

下面我用三种最常见的语言给你写一遍,你照着抄就能跑。

Python版本

Java版本

Go版本

六、实战场景:订单来了怎么播?

假设你在做一套收银系统,每当有新订单进来,就触发播报。这里有几个实际场景的写法:

基础版:简单播报

进阶版:带上金额

芯步的设备支持智能读数字,85元会自动读成“八十五元”,不用你手动转

高阶版:区分平台

如果你想先播放一段提示音再播报,可以用内置铃声命令(具体命令格式参考产品手册)

七、常见坑点和避坑指南

  1. 网络问题:音箱得在线这音箱是走网络的(WiFi或有线),你得确保它连上了网。配网方法参考芯步的官方手册,一般是小程序配网

  2. 播报内容太长怎么办?每条播报控制在30字以内。太长了店员记不住,而且影响体验。比如“您有新的订单”就够了,不用把整个菜品清单都念出来。

  3. 多台音箱同时播?如果你有好几个门店,每台音箱有自己的设备ID。你只需要在请求里把device参数改成对应的ID就行。注意:device参数支持传多个ID,用逗号隔开

  4. 签名老报错?99%的原因是时间戳问题。检查一下你的服务器时间准不准,还有签名算法里的拼接顺序对不对。

  5. 私钥别放前端!这点一定要记住。AppSecret如果暴露了,别人就能控制你的音箱乱播广告。正确的做法是:前端调你自己的后端 → 你的后端再调芯步API

八、还能做什么?不止播订单

这玩意儿除了播订单,能干的事儿多了去了:

  • 排队叫号:扫码取号,叫号时音箱自动播“请A001号到2号窗口”

  • 仓库提醒:库存低于警戒线,播“货架A3区的矿泉水缺货了”

  • 设备报警:冷柜温度异常,播“注意:后厨冷柜温度过高”

只要你能用代码触发HTTP请求,就能让它播报。

九、总结

把芯步的10W语音壁挂音箱对接到自己的项目里,本质上就是调一个带签名的HTTP接口。核心步骤就三步:

  1. 拿到AppID、AppSecret、设备ID

  2. MD5(MD5(密钥)+时间戳) 算出签名

  3. 发POST请求,order里写上 {"play:gbk:16": "你要说的话"}

整个过程下来,熟练的话十分钟就能跑通。剩下的就是根据你的业务场景,把播报内容和时机调整好就行了。

有什么问题欢迎留言交流,祝大家对接顺利,老板再也不用担心漏单了!