CATALOG

20W云控制语音壁挂音箱支持HTTP接口文本推送播报,这意味着你只需调用API即可让音箱“说话”,无需预先录音。以下方案涵盖接口协议、签名计算、核心命令和代码示例。

解决方案:对接芯步智能 20W 云控制语音壁挂音箱实现 HTTP 接口文本推送播报

一、 解决概述

芯步提供的智能 20W 云控制语音壁挂音箱(型号:UNI-YY-YX-BG-PRO-20W)具备“芯片级”TTS(文字转语音)能力。与传统的需要上传录音文件的设备不同,该设备的核心优势在于 端侧合成

开发者只需通过标准的 HTTP POST 请求,向芯步的开放 API 推送需要播报的文本内容,云端会立即将指令下发至设备,设备端内置的芯片会实时合成语音并播放。整个过程无需专用 SDK,支持公网、局域网及私有化部署,响应速度通常在 80-120ms 内

本方案将指导你如何通过签名验证、接口调用以及参数配置,快速实现业务系统(如 ERP、工单系统、餐厅叫号系统)与硬件的无缝对接。

二、 对接准备

在开始编码前,请确保完成以下准备工作:

  1. 硬件激活:确保 20W 壁挂音箱已接通电源并成功连接至 2.4G WiFi 网络(该设备仅支持 2.4G 频段)

  2. 获取凭证:登录,在“开发设置”中获取以下三个关键参数:

    • AppID:应用的唯一标识。

    • AppSecret:用于签名加密的密钥。

    • Device ID:该音箱在平台上的唯一设备编号(通常贴于设备机身或可在控制台查看)

  3. 网络策略:确认服务器端可出网访问 https://api.thingboot.com(公网模式),或根据你购买的私有化部署版本配置对应的局域网 IP 地址。

三、 接口协议详解

对接流程的核心是调用设备控制接口。

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • 请求方法POST

  • 参数传输方式: Query String(拼接签名) + Body(携带指令)

1. 认证与签名机制 (Sign)

为了防止接口被恶意调用,接口采用动态签名验证。签名的生成逻辑虽然简单,但非常关键,步骤如下:

  1. 计算 secret_md5 = MD5(AppSecret)

  2. 获取当前 Unix 时间戳(秒级),例如 ts = 1715324600

  3. 拼接字符串 tmp_str = secret_md5 + ts

  4. 计算最终签名 sign = MD5(tmp_str)

注意:时间戳 ts 参数同时需要放入 URL Query 中,且服务器会校验时间戳的有效性(通常与标准时间误差不能太大)

2. 核心命令 (Order)

针对语音播报功能,order 参数需要构建为 JSON 格式。

  • 播报命令格式{"play:gbk:音量值":"待播报文本"}

  • 参数解析

    • play:gbk:固定前缀,表示以 GBK 编码格式进行文本转语音,支持中文汉字和数字的良好识别。

    • 音量值:范围通常为 0-16(根据文档示例 {"play:gbk:16":"你好"},其中 16 代表最大音量)

  • 辅助控制(可选)除了播报,你也可以通过该接口调整设备状态,例如:

    • {"power":1}:开机

    • {"power":0}:关机

    • 注意:20W 音箱支持调节音色、语速,具体扩展参数请参考产品手册

四、 实施步骤与代码示例

无论你使用何种编程语言(Python, Go, Java, PHP),原理均为构建 HTTP 请求。

1. Python 示例 (使用 requests 库)

这是最常用的集成方式,适合后端快速接入。

2. Go 语言示例

适用于高性能或微服务架构

3. JavaScript (Node.js / Frontend)

适用于网页端直接控制(注意:在前端使用会暴露 AppSecret,生产环境走后端代理)

五、 关键参数配置与优化

  1. 多音字与数字读法优化该设备支持智能读法识别。如果遇到多音字读错,可以尝试用同音字替换;对于金额和手机号,SDK会自动优化,但为了准确,在推送前格式化好文本(例如:将“106”转为“一百零六”或“幺零六”视场景而定)

  2. 音量与音色调节你可以先发送一条低音量的测试指令,或者通过指令动态调整。例如,如果现场环境嘈杂,播报前指令设置音量为 16;如果是办公区,设置为 810

  3. 批量播报与排队如果需要连续推送多条文本,系统内部遵循“先入先出”队列。请勿在代码中死循环极速推送,以免阻塞设备通道。

  4. 私有化部署如果你对数据安全要求比较高,且服务器与设备在同一局域网内,可联系厂家部署私有化服务。此时,请求地址中的 api.thingboot.com 需替换为你的内网服务器 IP

六、 常见问题排查

  • 报错“签名错误”

    • 检查时间戳 ts 是否为字符串形式的秒级时间戳(10位数字)。

    • 确认 MD5 结果为 32位小写 十六进制字符串。

    • 核对拼接顺序:MD5( MD5(AppSecret) + ts ),注意加号是字符串拼接而非数值相加

  • 设备无响应

    • 检查 device 参数中的设备ID是否与设备真实ID一致(注意区分大小写或前后空格)。

    • 确认设备联网状态:设备通电后会语音提示“网络连接成功”或通过日志查看。

    • 检查 order 中的 JSON Key 是否包含 play:gbk 前缀(不同批次产品命令略有不同,若 gbk 无效可尝试 utf8 或查阅具体产品手册)

  • 播报声音小

    • 检查硬件音量旋钮(如有)。

    • 检查软件下发的音量参数(0-16),数值越大声音越大。

通过以上步骤,你可以在 30 分钟内完成从代码编写到硬件响应的全流程对接。该方案已广泛应用于订单提醒、仓库报警及智慧楼宇广播系统。