CATALOG

15W物联网语音广播音箱本身不存储音频文件,而是通过HTTP接口实时推送文本,设备端内置的语音合成(TTS)芯片将文本转为语音播报。这意味着“自定义语音内容”就是动态推送任意文本,而非上传MP3文件。以下是基于芯步开放接口的完整二次开发方案。

1. 产品与接口概述

芯步智能语音壁挂音箱15W(型号:UNI-YY-YX-BG-15W)是一款基于WiFi 2.4GHz通信的物联网语音终端设备。其核心能力并非播放本地预存音频文件,而是实时接收文本并进行语音合成(TTS,Text-to-Speech)播报

1.1 开放接口特点

  • 协议类型:标准HTTP/HTTPS协议,POST方法

  • 数据格式:JSON。

  • 响应时间:从接口调用到音箱发出声音,延迟约为80-120毫秒

  • 对接方式:支持公网直连(通过芯步云)或局域网私有化部署(自建消息服务器)

1.2 核心能力说明

二次开发并非通过USB或SD卡拷贝音频文件,而是通过代码调用API接口,向音箱推送文本内容。音箱收到文本后,利用芯片级TTS技术实时转换为语音输出。这种方式使得播报内容可以完全动态生成,无需人工干预。

2. 二次开发流程与签名算法

要实现自定义语音内容播报,开发者只需掌握HTTP请求发送动态签名计算两个核心技能。

2.1 开发前准备

在芯步开放平台控制台获取以下凭证

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

  • AppSecret:开发者密码,用于计算签名,严禁直接暴露在前端代码中

  • Device ID:目标音箱的设备ID,可在控制台查看。

2.2 核心难点:签名计算

所有API请求必须携带签名,以防止接口被恶意调用。签名算法逻辑为双重MD5加密sign = md5( md5(AppSecret) + ts )

注:公式中的 + 代表字符串拼接,ts 为Unix时间戳(秒)。

手工演算示例:

  1. 假设 AppSecret = “abc123”

  2. 计算 md5(“abc123”) = “e99a18c428cb38d5f260853678922e03”

  3. 获取当前时间戳 ts = 1747212640

  4. 拼接字符串:“e99a18c428cb38d5f260853678922e03” + “1747212640”

  5. 再次计算MD5得到最终签名。

2.3 接口地址与报文结构

  • 请求URLhttps://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • HeaderContent-Type: application/json

  • Body 参数

注:play:gbk:16 是标准的TTS播报指令,16通常代表音量或格式标识,常规使用保持该值即可。

3. 代码实现示例

以下是三种常见开发语言的实现逻辑,核心都是构造签名发送JSON

3.1 Java 实现 (Unirest)

适用于后端SpringBoot等微服务架构

3.2 Shell + cURL 实现

适用于快速脚本测试或Linux运维环境

3.3 Python 实现

4. 进阶功能与自定义播报优化

4.1 控制播报参数

除了基础文本,order 对象还支持多种参数来优化播报效果

  • 控制音量{“volume”: 5} (范围0-9)。

  • 切换音色{“voice”:“female”}{“voice”:“male”}

  • 调节语速{“speed”: 5} (范围0-9)。

  • 组合命令:可以多次调用API或在逻辑中组合,例如先设置音量再播报。

4.2 高级播报格式(提升听感)

为了让语音播报更符合人类听觉习惯,可以在文本中嵌入特定标记

  • 数字读法:为了避免“101”被读成“一百零一”,可以指定为手机号模式。指令格式通常支持直接传入格式化字符串。

  • 多音字/停顿:利用TTS引擎的SSML(语音合成标记语言)特性或特定标点符号来实现。

5.1 第一种场景:工单/订单提醒系统

需求:当ERP系统生成新工单或订单超时时,音箱实时播报。实现逻辑

  1. 在订单系统的数据库“插入”或“状态更新”触发器中,调用二次开发封装的API。

  2. 拼接动态文本:“注意,您有一个新的紧急订单,订单号:[OrderNo],请尽快处理。”

5.2 第二种场景:仓库/车间报警联动

需求:PLC或传感器检测到异常(如温度过高、传送带停止)。实现逻辑

  1. 边缘网关(或上位机)读取到传感器异常数值。

  2. 执行逻辑判断,如果超过阈值,立即调用API:{“play:gbk:16”: “警告:3号线传送带已停止,请维修人员立即前往”}

  3. 可配合视觉提醒:部分设备支持LED灯带控制{“led”: 1}进行红闪警示

5.3 第三种场景:局域网私有化部署

需求:工厂内网不允许设备访问公网。方案:芯步设备支持自建TCP/UDP消息服务器

  1. 将音箱配置指向本地服务器的IP地址。

  2. 开发者需在本地实现一个简单的HTTP Server,接收业务系统的请求,并响应音箱的鉴权心跳,业务逻辑层与上述HTTP接口调用方法完全一致。

6. 注意事项与故障排查

  1. 联网配置:设备需连接至2.4G WiFi(不支持5G频段)。首次配置通常需要通过设备发出的AP热点进行网络配网

  2. 编码问题play:gbk:16 指令中的文本若包含生僻字,确保系统编码统一为UTF-8或GBK,避免服务端转发时产生乱码。

  3. 播报冲突:如果在短时间内(如1秒内)连续调用两次API,音箱会串行播报,不会丢失,但会排队依次读出。如需紧急打断当前播报,查阅接口文档中关于“停止”或“强制打断”的参数(通常支持stop命令)

  4. 签名失败排查:服务器返回签名错误时,请重点检查:

    • ts是否为当前Unix秒级时间戳(服务器会校验时间差,通常在几分钟内有效)。

    • 双重MD5的计算顺序:先内层后外层,且内层结果转小写hex后再拼接ts