CATALOG

芯步40W壁挂语音音箱采用标准HTTP接口,支持文本直接合成语音播报,无需预先录音。以下方案涵盖设备激活、鉴权、播报指令及医院场景的最佳实践。

1. 解决概述

芯步的智能语音音箱(包括40W壁挂款)提供了一套成熟、标准的HTTP API接口。其核心逻辑是:你的业务系统(HIS、排队叫号系统等)通过向芯步云端发送HTTP请求,云端将指令推送到指定音箱进行TTS语音合成播报。

该方案具有以下优势:

  • 极简接入:只需调用HTTP接口,无需考虑复杂的底层通信协议。

  • 响应迅速:毫秒级响应,满足医院叫号、急诊通知的实时性要求。

  • 控制灵活:支持远程调节音量、音色(男/女声),并可播放特定提示音。

2. 准备工作

在开始编程对接前,请完成以下硬件配置与账户准备:

  1. 硬件激活

    • 将40W壁挂音箱接通电源。

    • 长按配网键,通过“芯步”微信公众号或App为其配置WiFi(2.4GHz频段)或插入网线(如为有线版)

    • 确保音箱在网络中在线(开机联网后会听到“上线”提示音,或在控制台看到状态为“在线”)。

  2. 获取关键凭证

    • 登录芯步开放平台或控制台。

    • AppID / AppSecret:在控制台创建项目后获取,用于计算签名

    • Device ID:在“设备列表”中找到你的40W壁挂音箱,获取其唯一ID,例如 1234567

3. 接口对接详解

芯步的API采用标准的HTTP POST请求。你需要重点掌握签名计算指令下发

3.1 签名机制与请求地址

为了防止接口被恶意调用,芯步使用了动态签名机制。

  • 请求URLhttp(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • 参数说明

    • {AppID}: 你的应用ID。

    • {ts}: Unix时间戳(秒),例如 1747212640

    • {sign}: 签名。

签名算法这是最常见的坑,请严格按照以下步骤:

  1. 将你的 AppSecret(开发者密码)进行一次MD5加密,得到字符串 S1

  2. 拼接 S1 与时间戳 ts(作为字符串拼接)。

  3. 将拼接后的字符串再次进行MD5加密,得到最终的 sign

公式sign = md5( md5(AppSecret) + ts )

3.2 核心指令:播报文本

接口地址POST 方式调用上述URL。

请求示例 (JSON)

关键点解析

  • device: 支持批量控制,多个ID用逗号隔开,但一次最多100个

  • play:gbk:16: 这是固定的播报命令键。后面的字符串是你想说的内容。

  • 编码注意: 文本支持中文、英文及数字,使用UTF-8编码。如果在播报时出现乱码,请检查你的HTTP请求头 Content-Type 是否设为 application/json; charset=utf-8

3.3 高阶控制:参数调节

医院场景往往需要根据不同时段调节音量,或通过特定提示音区分“急诊”与“普通叫号”。你可以通过下发不同指令来实现。

以下是40W壁挂音箱支持的常用控制参数

功能描述命令Key取值范围示例 (order内容)应用场景
音量设置volume0 (静音) ~ 9 (最大){"volume":"7"}门诊高峰期调大音量,午休调低
音色切换voice0 (女声), 1 (男声){"voice":"1"}区分紧急通知(男声)与普通叫号(女声)
播报内容play:gbk:16文本字符串{"play:gbk:16":"急诊科请注意,有重伤员送入"}急诊抢救、手术通知
停止播报stop0 (停止当前), 1 (停止全部){"stop":"1"}紧急插队时打断当前长文本播报
插入提示音支持标记内置5种{"play:gbk:16":"[message_1]请李小明到药房取药"}增加“叮咚”声吸引注意力

注意:插入提示音时,只需在文本前加上 [message_1][message_5] 即可

4. 医院场景实战示例

假设医院药房有一个40W壁挂音箱,ID为 120001。当HIS系统发来信号“患者王大明到3号窗口取药”,你的后端开发语言(以Java为例的逻辑,或Python/PHP)需要执行以下逻辑:

  1. 生成签名

  2. 发起HTTP请求

5. 常见问题与排错

  1. 返回Code 200,但音箱没响?

    • 原因code 200 仅代表服务器接收到了命令,不代表设备执行成功

    • 解决: 检查设备ID是否正确,确认音箱当前是否处于“在线”状态。如果音箱离线(断网),命令会被缓存或丢弃。

  2. 播报内容是乱码?

    • 原因: 接口在接收中文时编码格式不对。

    • 解决: 确保你的POST请求 Body 是JSON格式,且请求头明确指定了 Content-Type: application/json; charset=utf-8

  3. 签名错误(sign invalid)

    • 原因: 最常见的是时间戳 ts 误差过大或MD5计算顺序错误。

    • 解决: 检查服务器时间是否与标准时间同步(误差在5分钟内)。严格按照 md5(md5(Secret) + ts) 的顺序,注意是字符串拼接,不是数值相加。