CATALOG

芯步60W语音音柱提供标准HTTP接口,文本推送即播报,无需预先录音。以下是完整的对接方案,涵盖鉴权、命令格式、多场景集成代码和运维。

解决方案:基于芯步60W HTTP接口实现文本推送语音播报

1. 概述

芯步60W智能语音音柱(Pro系列)支持芯片级TTS(文本转语音),用户无需预先录制音频,只需通过HTTP协议向指定接口POST文本内容,设备即可实时进行语音播报。该方案适用于ERP系统报警、SaaS业务订单提醒、工业自动化语音提示等场景。

2. 对接原理与前期准备

2.1 核心机制设备直连Wi-Fi,通过云端API接收指令。开发者只需构造特定的HTTP请求,携带签名和文本指令,云平台即将指令推送到音柱,平均响应时间在80-120ms之间

2.2 前期准备数据在开始编码前,需在芯步官方控制台获取以下三项关键信息:

  • AppID:应用的唯一标识(例如:qtyVWcgeMq)。

  • AppSecret:开发者密码(用于签名加密,严禁直接暴露在前端)。

  • Device ID:设备的唯一ID(例如:820720),可在控制台查看或通过设备列表接口拉取

3. 接口鉴权与签名算法

所有API请求均需携带签名以保证安全性。采用双重MD5加密逻辑。

签名生成步骤:

  1. AppSecret 进行第一次MD5加密,得到 sign_a

  2. 获取当前的Unix时间戳 ts (秒级,例如 1747212640 )。

  3. sign_ats 进行字符串拼接,得到 sign_b

  4. sign_b 进行第二次MD5加密,得到最终的 sign

伪代码示例:

注:时间戳需与签名计算时使用的保持一致

4. 文本推送指令详解

HTTP Method为 POST,Content-Type为 application/json请求Body结构如下:

关键参数说明:

  • device:支持字符串格式,如需同时控制多个音柱,可用英文逗号分隔,例如 "820720,820721"

  • order:指令集。

    • "play:gbk:16":核心播报指令。GBK表示中文字符集编码,16是默认参数值,可直接沿用。此处value为播报文本

    • 附加控制(可选,可单独或组合发送):

      • 音量{"volume":"5"} (范围0-9)

      • 音色{"voice":"1"} (0-女声,1-男声)

      • 语速{"speed":"5"} (范围0-9)

      • 打断播报:若需新文本立即打断当前播报,可发送 {"stop":"0"}

5. 多语言集成代码示例

以下示例展示如何在不同的业务环境中调用接口推送文本。

第一种场景:Python (用于后端服务/脚本)

第二种场景:Java (Spring Boot 环境)利用 UnirestOkHttp 库。

第三种场景:cURL (用于命令行测试)

6. 高级场景与优化策略

6.1 结合传感器联动采用事件驱动机制。例如,当芯步的人体传感器检测到有人进入,且温湿度传感器检测到温度过高时,由您的服务器逻辑判断后,主动调用60W音柱接口进行高温预警播报

6.2 多设备分组控制如车间内有多个区域,可直接向 device 参数传入逗号分隔的多个ID。但请注意网络带宽,单次请求控制在20个设备内为宜,避免请求超时。

6.3 网络与部署模式

  • 公网模式:设备需要能够访问 api.thingboot.com

  • 私有化部署:若数据安全要求比较高,芯步支持私有化部署。此模式下,音柱直连本地服务器IP,API地址将变更为您的内网服务器地址,完全断开外网依赖

6.4 业务系统对接技巧无需大幅修改现有业务代码,采用非阻塞调用模式:

  1. 在现有业务逻辑的关键节点直接插入HTTP调用代码。

  2. 或建立独立的消息队列,将播报任务异步化,避免由于网络IO影响主业务流程

7. 常见问题排查

  • 签名错误(401):请一定要确保时间戳 ts 是秒级,且用于计算签名的 ts 与URL参数中的 ts 完全一致。

  • 设备不在线:音柱依赖Wi-Fi,需确保设备供电且网络稳定。设备具有自动重连机制。

  • 中文乱码:确保请求头 Content-Type 包含 charset=utf-8,且 order 中的 play:gbk:16 参数指定了GBK字符集

  • 播报被切断:如果需要排队播报,不要每次都发送 stop指令;如果需要立即播报紧急内容,先发送 {"stop":"0"} 清理队列,再发送文本。