CATALOG

芯步20W网络音频壁挂音箱通过HTTP接口实现文本推送播报,核心流程是“获取凭证 → 计算签名 → 发送POST请求”。以下方案涵盖设备配网、接口调用、代码示例及进阶配置。

一、 背景与产品优势

芯步 20W 网络音频壁挂音箱(型号:UNI-YY-YX-BG-20W)是一款支持WiFi联网的智能语音设备。其核心优势在于 开放HTTP接口,允许开发者通过标准的HTTP POST请求,直接向设备推送文本内容,设备内置的语音合成(TTS)引擎会立即将文本转换为语音进行播报

适用场景

  • 智慧工厂:设备报警、工单流转提醒。

  • 智慧零售:新订单播报、促销活动喊麦。

  • 办公环境:会议通知、访客提醒。

二、 接口对接架构

整个接入过程采用典型的客户端-服务器-设备架构:

  1. 业务系统(你的系统):产生需要播报的消息(如“订单号XXX,请取餐”)。

  2. 芯步云平台(开放API):作为中转站,接收你的请求并下发指令至设备。

  3. 20W 壁挂音箱:接收指令,实时TTS播报。

三、 前置准备与配置

在编写代码前,需完成以下硬件与账号准备:

  1. 硬件安装

    • 给20W音箱通电,该设备仅支持 2.4G WiFi,不支持5G频段(也支持有线以太网版本,请根据型号确认)

    • 长按配网键,通过“芯步”微信公众号或App进行 SmartConfig(一键配网)AP热点配网,使设备连接到互联网。

  2. 获取凭证

    • 登录,在控制台创建应用。

    • 获取三大核心参数:

      • AppID:应用的唯一标识。

      • AppSecret:接口调用的密钥(严禁直接写在客户端代码中)。

      • Device ID:音箱背后的设备ID,或在控制台扫描到的设备编号

四、 HTTP 接口调用详解

核心接口地址(设备控制接口):POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

1. 鉴权机制(签名计算)

为了防止接口被恶意调用,接口采用动态签名鉴权。计算公式如下sign = md5( md5(AppSecret) + ts )

参数说明

  • AppSecret:你的应用密钥。

  • ts:Unix时间戳(秒级),如 1715673600注意:服务器会校验时间戳的有效性,偏差过大会导致请求失败。

  • md5():标准的32位小写加密函数。

计算步骤示例假设 AppSecret = "abc123"ts = "1715673600"

  1. 计算 md5(AppSecret) = md5("abc123") = e99a18c428cb38d5f260853678922e03

  2. 拼接字符串:e99a18c428cb38d5f260853678922e03 + 1715673600 = e99a18c428cb38d5f260853678922e031715673600

  3. 计算最终签名:md5(上述字符串) = c484eb97ee288572db7828c6071dd88f。 -> 得到 sign

2. 请求体参数(JSON格式)

请求Body中需包含两个关键字段:deviceorder

字段类型描述
deviceString目标设备的ID。支持批量播报,多个ID用英文逗号 , 隔开。
orderObject指令对象。对于文本播报,使用 play:gbk:音量 作为Key。

order 指令详解格式为 {"play:gbk:音量值":"播报内容"}

  • 编码gbk 表示编码格式,中文场景使用此值。

  • 音量:范围通常为 0-20(数字越大音量越大),例如 16 为标准音量。该参数不可省略。

  • 内容:你要播报的文本字符串。支持数字、金额、手机号的智能读法

完整JSON示例

五、 代码实现示例

以下提供几种常见开发语言的对接逻辑,不包含附件,可直接复制核心逻辑使用。

Python 3 示例

利用 requests 库进行库操作,适合后端微服务

Java 示例

使用 HttpURLConnectionOkHttp,核心在于 MD5 的处理。

Node.js 示例

适合基于JavaScript的全栈项目或云函数(如Serverless)

六、 进阶功能与调试

  1. 音色与语速调节除了音量,你还可以通过特定指令调节音色。例如在某些型号中支持 speaker 参数切换男女声,或通过 speed 调整语速。具体指令请参考设备对应的完整API文档示例{"volume": 80, "speed": 50, "voice": "female"} (注:具体参数名请以实际设备手册为准)。

  2. 播放优先级与队列如果短时间内高频触发播报,在业务系统侧实现消息队列(MQ)。避免因并发过高导致云端限流,同时也能保证消息顺序播放,防止“前一条没播完,后一条被覆盖”的情况。

  3. 本地局域网部署(私有化)若对网络延迟或数据安全有比较高要求,20W音箱支持私有化部署。此时API地址不再是 api.thingboot.com,而是你自建服务器的内网IP或域名

  4. 失败重试机制网络环境复杂,实现随机间隔(或逐次增大间隔)重试。若接口返回非200状态码,或响应体包含错误码(如设备离线),程序应捕获异常并记录日志,间隔几秒后重试。

七、 常见问题排查

现象可能原因解决方案
签名错误 (401)时间戳格式不对或密钥错误检查服务器时间是否标准,确认 AppSecret 没有多余空格。
设备离线 (1003)音箱未联网或WiFi信号弱检查2.4G WiFi密码是否变更;可通过Ping命令检查网络。
播报无声音音量指令设为0,或硬件静音检查指令中 play:gbk:音量 参数是否大于0;检查外接音频线(如果有)是否插紧。
中文乱码编码格式不匹配确保 order 的Key中包含 gbk,且你的编程环境源码文件编码为UTF-8。

通过以上步骤,你可以在30分钟内完成“业务系统”到“20W音箱”的对接,实现高效的文本转语音播报