CATALOG

这是一个把芯步20W智能语音音柱对接到你自己项目的实战指南。

我们会跳过复杂的硬件知识,直接聚焦在“怎么调通接口让它开口说话”上。为了方便理解,我会用比较直白的方式来写。

第一部分:拿到开启“金嗓子”的钥匙

在对代码动手之前,我们需要先去芯步的开放平台拿到两样东西,这就好比你要发微博,得先有个账号密码一样。

  1. 注册/登录:先去注册个账号。

  2. 创建应用:登录后,在控制台里找到“开发者设置”或“我的应用”,创建一个新应用。创建成功后,你会看到两个关键字符串:

    • AppID:相当于你的“账号名”,告诉服务器是谁在请求。

    • AppSecret:相当于你的“密码”,千万注意,这个东西别直接写在网页代码里,否则容易被别人看见拿去乱发广告

  3. 拿到设备ID:把你手里的智能语音音柱|20W(也叫吸顶音箱)绑定到平台后,在设备列表里能看到一长串数字,那就是设备ID。可以把它想象成这台音箱的“身份证号”

第二部分:核心秘籍——让音箱开口说话的“咒语”

芯步的接口设计得挺友好的,不用搞什么复杂的WebSocket连接,只要你服务器能发HTTP请求,就能让它响

我们需要向这个地址发请求:

1. 必须搞懂的“签名”机制

为了防止接口被别人恶意调用,这里有一个签名(Sign) 的步骤。听着复杂,其实就是下面这个公式:

签名 = MD5 ( MD5(AppSecret) + 当前时间戳 )

别慌! 翻译成人话就是:

  1. 先把你的“密码(AppSecret)”进行一次MD5加密。

  2. 把刚才得到的结果,再拼接上当前的“时间戳”(比如 1734567890)。

  3. 把拼好的这个大字符串,再进行一次MD5加密,最后得到的乱码就是签名

这样做的好处是,每一次请求的签名都不一样,而且有时间限制,防止别人拿着你的链接到处刷。

2. 请求体怎么写?

我们需要通过 POST 方式,发送一个 JSON 格式的内容。

  • device:传你刚才查到的那个设备ID。

  • order:这是核心!对于20W音柱,命令格式是:{"play:gbk:16":"要播放的文字"}

等等,为什么是 play:gbk:16简单说一下:

  • play:就是让它播放。

  • gbk:是文字编码格式,一般中文用这个就行。

  • 16这个很重要,是音量! 范围一般是0到20。如果你发现音柱声音小得像蚊子叫,检查一下是不是这里写成了1或者2

第三部分:实战代码演练

下面我用两段最常见的后端代码来演示。你可以直接复制过去,替换成自己的信息就能跑起来(注意:AppSecret不要暴露在前端)。

第一种场景:你用Python(比如Django/Flask后端)

如果你用的是Python,用 requests 库会非常简单。

第二种场景:你用Go语言

如果你是用Go语言,逻辑完全一样

第四部分:高级玩法——不止是广播

既然接口接好了,别只当个大喇叭用,可以玩点花活:

  • 动态音量和语速:有时候晚上怕吵到人,或者白天需要更大声,你可以随时调。除了 play,你还可以下发命令调整这些参数,不用去现场拧按钮

    • {"volume": 15} (调节音量)

    • {"speed": 5} (调节语速)

  • 特殊场景预警

    • 食堂/餐厅:检测到用户在小程序下单,后端自动调用这个接口,喊一声“13号顾客请取餐”,连人工叫号都省了。

    • 工厂/车间:对接你们的MES系统,哪个工位按了求助按钮,或者机器故障,音柱直接报“三号生产线请注意,物料即将耗尽”。

    • 停车场:摄像头识别到车牌,你的软件系统直接通过音柱播报“京N12345,欢迎光临,请停放在A区”。

第五部分:排坑指南

如果你照着做了,但音箱不响,99%是以下三个原因:

  1. 签名不对(最常见)

    • 检查一下时间戳(ts)是不是服务器当前时间?有的服务器时区不对也不行。

    • 检查一下MD5的顺序:是 MD5(AppSecret) + ts,不是 AppSecret + ts

  2. 网络问题

    • 检查一下音柱的WiFi密码是不是输对了?在芯步的App里看设备状态是不是“在线”?如果是离线状态,喊破喉咙它也听不见

  3. 音量问题

    • 如果你发了命令但感觉没声音,看看是不是 play:gbk: 后面的数字写成了 1?改成 1620 试试。

希望这份指南能帮到你。把这套逻辑写好封装成一个函数后,以后你在任何项目中想发个语音通知,调用一下这个函数就行了,非常方便。