CATALOG

针对芯步“款式2远程语音音箱”(即智能语音喇叭2),实现远程播放列表管理的核心在于利用其开放HTTP接口的文本播报能力,在您的业务系统侧构建一套播放列表逻辑。设备本身作为“扬声器”执行即时播报,而管理功能(列表增删、定时、优先级等)由您的服务器或应用层实现。

以下是详细的解决方案:

一、 准备工作与核心概念

在开始开发前,请确保您已完成以下步骤,并理解其核心机制:

  1. 获取关键凭证

    • AppID / AppSecret:登录芯步控制台,在“开发设置”中获取。

    • 设备ID (device):在控制台绑定您的“款式2智能语音喇叭2”,获取唯一标识ID(如:12345678

  2. 理解接口机制

    • 无状态播报:该音箱的HTTP接口被设计为“即发即报”。它不具备复杂的本地存储列表功能,而是执行“下发一条文本,播报一条文本”的原子操作。

    • 队列支持:设备支持内部队列。如果您连续下发多条指令,设备会按顺序自动排队播报,不会因“忙”而丢弃

    • TTS技术:您无需上传录音,接口接收文本后,设备硬件内部通过TTS(语音合成)引擎实时转换为语音

二、 播放列表管理的设计

由于设备本身无“列表”存储,解决方案采用 “业务系统管理列表 + 设备即时消费” 的架构:

  • 管理层 (您的系统):数据库 + 定时器/触发器。负责存储播放列表,包含字段:ID、文本内容、优先级、定时时间、状态。

  • 执行层 (芯步API):HTTP客户端。负责将管理系统筛选出的待播文本,通过API推送给音箱。

核心思路:将“款式2”视为一个网络音频输出端,您的服务器负责“调度”。

三、 接口鉴权与基础控制

在管理列表之前,必须先打通设备控制通道。所有操作均需通过签名验证。

1. 请求地址与签名计算

  • URLhttps://api.thingboot.com/{AppID}/device/control/

  • 参数sign (签名), ts (时间戳,秒级)

  • 签名算法sign = md5( md5(AppSecret) + ts )

PHP示例计算逻辑:

2. 基础播报命令

请求Body为JSON格式,包含deviceorder字段。

  • 普通播报{“device”: “设备ID”, “order”: {“play:gbk:16”: “您好,欢迎光临”}}

  • 带音效播报{“device”: “设备ID”, “order”: {“play:gbk:16”: “[message_3] 您有新的订单,请注意查收”}} (其中message_3代表内置提示音)

四、 实现“远程播放列表管理”的具体步骤

这里将指导您如何构建软件功能来实现播放列表的增删改查与自动推送。

1. 设计播放列表数据结构

在您的数据库中创建表 playlist_queue

  • id (自增)

  • device_id (目标音箱ID)

  • content (要播报的文本)

  • priority (优先级:1高,2中,3低)

  • scheduled_time (定时播报时间,为空则立即/待播)

  • status (0待播, 1已完成, 2播报中)

2. 开发列表管理接口

开发增删改查接口供前端调用:

  • 添加任务:接收文本内容,写入数据库。

  • 编辑/删除:操作数据库中的待播任务。

  • 查询列表:前端展示“待播清单”,支持拖拽排序。

3. 开发核心调度器

这是实现“远程管理”的关键。您需要写一个后台脚本或使用计划任务(Cron Job / Scheduler),逻辑如下:

  1. 拉取任务:每隔1-2秒轮询数据库,筛选 status=0scheduled_time <= now 的记录。按priority高->低、id先->后排序。

  2. 调用接口:取出一条任务,立即调用芯步API(步骤三的格式)。

  3. 更新状态:API返回成功后,将该任务 status 更新为“已完成”,防止重复播报。

注:由于设备自带队列,您可以一次拉取多条任务下发,设备会按顺序播放。但在高并发下加锁,防止重复推送。

4. 增强版:配置与音色管理

在管理列表的同时,您可以通过接口远程调节“款式2”的参数:

  • 音量调节{“device”: “设备ID”, “order”: {“volume”: “7”}} (范围0-9)

  • 音色切换{“device”: “设备ID”, “order”: {“voice”: “1”}} (0女声,1男声)

  • 停止播放:下发紧急停止指令:{“device”: “设备ID”, “order”: {“stop”: “1”}} (停止全部)

五、 典型应用场景流程

假设您需要实现“分时段播报不同营销内容”:

  1. 登录后台:管理员在您的Web系统中点击“语音管理” -> “新建播放列表”。

  2. 录入内容

    • 任务A:时间 09:00,内容 “早上好,今日特价早餐已上架”。

    • 任务B:时间 12:00,内容 “午休时间,记得领取优惠券”。

  3. 系统执行

    • 到了 08:59:55,调度器扫描数据库,发现任务A。

    • 调度器调用 api.thingboot.com 发送文本“早上好...”。

    • 音箱(款式2)接收到文本,实时合成语音播放。

  4. 日志记录:任务A状态变为“已完成”,后台记录播报历史。

六、 总结

通过将业务数据库作为播放列表的存储池,并利用芯步款式2的HTTP API作为执行通道,您可以轻松实现远程播放列表管理。

技术点总结

  1. 设备层:不支持本地列表,即时响应。

  2. 接口层:支持多命令并发,自带队列。

  3. 业务层:您需要开发数据库维护逻辑及定时轮询调度器(使用crontab或消息队列中间件)。