CATALOG

芯步智能语音喇叭3提供开放的HTTP API,支持远程文本播报、参数调节等能力。基于此,二次开发的核心是实现播放列表的云端管理和状态同步。以下是完整的技术方案。

1. 概述与业务场景

1.1 背景

芯步“智能语音喇叭3”(型号:UNI-YY-LB-3)是一款支持WiFi 2.4G直连的智能硬件。其核心优势在于无需上传录音文件,直接通过HTTP接口推送文本即可实现TTS(文字转语音)播报。然而,在实际的商业场景中(如连锁超市、工业园区、学校广播),用户往往需要预先设定一组播报内容(播放列表),并根据时间或事件触发进行轮播、循环或定时播放,而非每次临时推送单条文本。

1.2 解决的核心问题

本二次开发方案的目标是利用设备开放的HTTP接口,构建一套云端播放列表管理系统,解决以下痛点:

  • 批量管理:支持创建、编辑、删除多个播报任务。

  • 定时调度:设定特定时间(如开门迎宾语、下班安全提示)自动触发。

  • 内容轮询:将多个播报文本组成列表,实现轮流播放。

  • 状态控制:远程音量调节、播放停止及LED灯光联动。

2. 技术架构与接口准备

2.1 整体技术架构

本方案采用 “B/S + 云推流” 的无网关架构,开发者无需关心底层物联通信,只需聚焦业务逻辑。

  • 应用层(开发者侧) :Python/Java/Go/PHP 后端服务或云函数。

  • 传输层:HTTPS协议(调用芯步开放API)。

  • 设备层:智能语音喇叭3(通过WiFi订阅云端指令)。

2.2 核心接口定义

在进行开发前,需在[芯步控制台]获取以下凭证,喇叭设备需完成配网

  • AppID:应用唯一标识

  • AppSecret:应用密钥(用于签名计算)

  • Device ID:目标喇叭的设备ID

2.2.1 签名计算规则(所有请求必须携带)

为了防止接口被恶意调用,请求需携带签名(sign)和时间戳(ts)。计算逻辑如下:

  1. 先计算 MD5(AppSecret) -> 得到 sign_pre

  2. 拼接字符串: sign_pre + ts (ts为秒级时间戳)

  3. 计算第二次MD5: md5(sign_pre + ts) -> 得到最终的 sign

2.2.2 关键指令集(Order JSON)

针对“播放列表管理”需求,主要使用以下指令

功能分类指令Key说明示例值
文本播报play:gbk:16核心播报指令,GBK编码,16代表语速等参数"你好,欢迎光临"
音量调节volume设置设备音量"5" (范围0-9)
音色选择voice0-女声,1-男声"0"
停止播放stop0-停止当前,1-停止全部"0"
LED灯效led控制环形灯带(需查阅最新文档)"red"

3. 二次开发核心实现:播放列表管理逻辑

由于硬件本身不存储长列表,二次开发的核心是在开发者服务器维护一个“虚拟播放列表”。开发者服务器作为中间件,负责解析列表逻辑并逐条下发指令。

3.1 数据库设计(简略)

需要建立两张表来管理:

  1. Playlist (播报表)

    • id, name(如:午休提醒列表), schedule_time(定时时间), device_id(目标喇叭)。

  2. Playlist_Items (播报条目表)

    • id, playlist_id, content(如:“现在是中午12点,请注意午休” ), sort_order(播放顺序), repeat_count(重复次数)。

3.2 核心逻辑实现:顺序轮播

场景:商场需要循环播放“欢迎光临”、“折扣信息”、“安全提示”。

代码逻辑片段(伪代码/Python实现思路)

3.3 高级功能开发:定时任务与异步控制

为了实现真正的无人值守管理,需要引入任务调度框架(如 Linux Crontab, APScheduler, Quartz 等)。

  • 定时播报:配置 Cron 表达式,在指定时间调用 speak() 方法。

    • 示例场景:早上 9:00 自动播报“上班打卡时间到了”;晚上 22:00 播报“电源已关闭”。

  • 列表终止:提供管理后台接口,调用 {"stop":"0"} 命令,强制当前播报静音,这在紧急打断普通业务播报时非常有用

4. 部署与集成

4.1 私有化部署(可选)

如果数据安全要求较高,芯步智能语音喇叭3支持私有化部署。开发者可以搭建自有的消息服务器,设备通过配置指向私有IP地址,实现数据完全内网流转,不经过外网

4.2 对接现有系统(低代码/SaaS)

由于该设备仅接口极其简单(HTTP),采用以下方式快速集成:

  • 集成至现有ERP/OA:在订单创建、库存告急的钩子函数中,直接调用API接口通知喇叭播报。

  • 集成至Node-RED:对于非专业开发者,可使用Node-RED的HTTP Request节点,拖拽式完成播放列表的编排。

4.3 注意事项

  1. 字符编码:播报指令 play:gbk:16 中的“gbk”提示接口需要支持中文,代码中确保文本以 UTF-8/GBK 正确编码

  2. 并发控制:当短时间内有多个播报任务时,喇叭会排队响应。开发者应在服务端做好队列管理(如使用 RabbitMQ),避免请求超时或覆盖。

  3. 网络延迟:设备使用WiFi连接,依赖网络质量。在关键场景(如安防警报),配合LED灯效(视觉提醒)作为双重保险

5. 总结

通过对芯步智能语音喇叭3接口的二次开发,利用其即时的 TTS 播报能力,开发者只需在云端构建一层播放列表逻辑层,即可低成本实现复杂的广播系统。该方案无需硬件改造,适合快速迭代的商业环境。