CATALOG

芯步这款30W智能语音壁挂音箱,核心能力就是通过HTTP接口远程控制播报,并且支持芯片级TTS(文本转语音),这意味着你不需要预录任何音频文件,直接传文字就能合成语音。所谓“自定义语音模板”,其实就是把你要播报的内容(比如“欢迎XXX号顾客”或“车间温度已超标”)提前存成变量,在需要的时候通过接口把具体数值填进去。

下面我把整个对接流程分步骤讲一下,配置过程稍微有点技术含量,但整体还是挺清晰的。

第一步:准备工作

在写代码之前,你需要先把设备“点亮”并拿到钥匙。

  1. 硬件上电与配网

    • 给音箱插上电源,它会自动开启一个配网热点。

    • 你需要用芯步的小程序或者电脑后台,把现场的 2.4G WiFi 账号密码推给音箱。注意不支持5G WiFi,别选错了。

  2. 获取关键密钥

    • 登录芯步的控制台,找到“开发设置”。

    • 记下这三个值:AppID(应用ID)、AppSecret(应用密钥)、还有音箱包装或后台显示的 Device ID(设备ID)

    • 口语化解释:AppID是你项目的门牌号,AppSecret是你的钥匙密码,Device ID是音箱的身份证。

第二步:理解核心“签名”机制

这一步是很多人第一次对接时会卡住的地方,但实际上它只是一个固定的“加密公式”。芯步的接口为了安全,每一次请求都需要带一个动态生成的 sign(签名)。

签名生成逻辑(代码层面):sign = md5( md5(AppSecret) + ts )

  • ts:当前的时间戳(比如 1699345678),为了保证每次请求都不一样。

  • 操作步骤

    1. 先把 AppSecret 进行MD5加密,得到一个32位的字符串。

    2. 把上面的结果加上 ts(拼接在一起)。

    3. 再把拼接后的字符串做一次MD5加密,得到最终的 sign

只要你后端语言支持MD5函数(现在几乎都支持),照着这个逻辑写就行。

第三步:实现“自定义语音模板”

这是你的核心需求。所谓的“语音模板”,其实就是构造 order 这个JSON参数。

对于壁挂音箱,播报命令的参数通常是 {"play:gbk:16":"你要说的话"}

你需要做的逻辑抽象:假设你的业务场景是“访客签到”,你可以定义一个模板:“您好,{name},欢迎来到{company},您的体温正常。”在你的业务代码里,把 {name}{company} 替换成实际值,然后拼接到接口里。

具体的HTTP请求示例:假设你的音箱设备ID是 820720,你想让它说“李总,会议室三的客人到了,请接待”。

  1. 构造请求URLhttps://api.thingboot.com/{你的AppID}/device/control/?sign={计算出的sign}&ts={当前时间戳}

  2. 设置HeaderContent-Type: application/json

  3. 发送Body内容

    注:gbk:16 可能代表编码和音量等参数,如果不确定具体含义,照搬官方示例的写法通常都能跑通

  4. 进阶控制(可选)你还可以在 order 里加上音量、语速等参数,让播报更人性化。

    参考功能说明:设备支持音量、音色、语速、语调的设定

第四步:完整代码逻辑(伪代码思路)

不管你用的是PHP、Java、Python还是Node.js,逻辑都是这三板斧:

  1. 拼字符串:把 AppSecret MD5一次,拼上当前时间戳,再MD5一次。

  2. 发请求:带上 AppIDsignts 去请求API。

  3. 传数据:Body里带上 device ID 和 包含自定义文本的 order

几点提醒(避坑指南):

  1. 文本编码:虽然它支持GBK,但在代码里统一用UTF-8编码发送,大部分现代语言都能自动处理好

  2. 响应速度:这个音箱是设备端合成,也就是把文本发过去,音箱自己发声,响应通常在100毫秒左右,基本感觉不到延迟

  3. 局域网模式:如果你不想走外网,这音箱支持私有化部署,可以在纯局域网环境里跑,直接把API地址换成你内网服务器的地址就行

  4. 语音模板存储:如果你有一百个模板(比如“上课铃”、“下课铃”、“应急疏散”),把模板文字存在你自己的数据库里。对接时只需要传模板ID和变量值,不用每次都在代码里写长字符串。

总结一下:你要做的就是把官方给的 {"play:gbk:16":"xxx"} 命令里的 xxx 替换成你动态生成的业务内容。只要签名算对了,用 Postman 之类的工具先测试一下,能听到音箱响,后续开发就只剩下去拼字符串了。