CATALOG

芯步40W远程喊话音柱支持通过HTTP接口直接推送文本进行语音播报,无需上传录音文件。以下方案涵盖签名计算、接口调用、多格式文本适配及集成落地细节,帮助你在自有系统中快速实现二次开发。

解决方案:基于芯步开放平台实现40W音柱HTTP文本推送

1. 准备工作

在开始二次开发前,请确保已完成以下硬件配置与平台注册:

  1. 硬件通电与配网:按照产品手册,为 UNI-YY-YZ-40W 音柱通电。该设备支持 WiFi 2.4G 直连,不需要网关。需通过配网模式将其连接到互联网

  2. 获取关键凭证

    • 访问芯步控制台,注册账号。

    • 在“开发设置”页面获取三要素:AppID(开发者ID)、AppSecret(开发者密码)。这两个字段将用于生成接口签名

    • 在设备列表查看 Device ID(设备ID),发指令时需要明确指定目标设备

2. 核心技术原理

40W音柱的本质是一个通过网络接收指令的终端。二次开发的核心是调用芯步的 HTTP API

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

  • 请求方法:POST

  • 核心命令参数(Order):对于语音播报,Order参数使用特定的JSON结构:{"play:gbk:16":"你要说的内容"}。其中 16 代表音量或速度等参数(根据具体设备支持情况,通常为编码格式或速率),gbk 表示文本编码格式

3. 签名生成与鉴权(最关键步骤)

为防止接口被恶意调用,所有请求均需携带签名(sign)。签名生成逻辑如下:

  1. 计算第一步MD5md5_1 = md5(AppSecret) (32位小写)。

  2. 拼接时间戳:获取当前Unix时间戳(秒,10位数字),记为 ts。拼接字符串:tmp = md5_1 + ts

  3. 计算最终签名sign = md5(tmp)

  4. 拼接URL:将 AppID、sign、ts 拼接在URL中。

示例代码(伪代码):

4. 实现文本推送(HTTP接口调用)

完成签名后,即可通过POST请求向音柱发送文本。

请求体(Body JSON):

参数详解:

  • device:即之前在控制台获取的设备ID。

  • order:这是一个JSON对象。

    • Keyplay:gbk:16

      • play:动作(播放)。

      • gbk:文本编码。如果推送的中文出现乱码,可尝试 utf8,但官方示例多为 gbk

      • 16:通常指播放速度或优先级。部分型号支持通过修改此数字调整语速(如 0-9 为不同语速,或16为普通)。

    • Value:你要播报的字符串。

cURL调用示例:

5. 高级功能集成与优化

在实际业务系统中,除了简单的文本转语音(TTS),还可以结合接口实现以下功能:

A. 多音字与数字读法优化芯步的TTS引擎对特定格式有优化:

  • 金额:直接推送 “123.45元”,引擎会自动读作“一百二十三点四五元”。

  • 手机号:推送 “13800138000”,引擎会按手机号数字节奏播报,而非普通数字。

  • 多音字:若发音不准,可用同音字替代(如将“参数”写作“餐数”),或调整语调参数

B. 组合播报(铃声 + 文本 + 铃声)有些场景下,需要先播放提示音吸引注意力,再播报内容。虽然HTTP接口通常是一次性的,但你可以通过“连续调用”实现:

  • 指令1:{“play:gbk:16”:“#alert1#”} (假设内置铃声代码为alert1)

  • 指令2:{“play:gbk:16”:“核心信息内容”}(注:具体内置铃声触发代码请参考对应型号的说明书)

C. 音量与音色控制若需要远程调整音量(无需物理接触),通常这类设备支持独立的控制指令。

  • 调高音量:{“voice”: 80} (假设0-100范围)或 {“vol”: “+”}

  • 音色切换:部分设备支持男女声切换,可通过特定指令实现(查阅该型号的“设备命令”列表,确认除了 play 之外是否支持 volume 等参数)

6. 实战场景:订单播报系统(Python Flask 示例)

假设你有一个电商系统,每当产生新订单时,希望音柱自动播报“您有一笔新订单,请及时处理”。

后端服务代码示例:

7. 常见问题与排错(FAQ)

  1. 返回 5006 bad sign 怎么办?

    • 检查AppSecret是否正确。

    • 检查签名拼接顺序:是 md5(md5(Secret) + ts),注意是字符串拼接,不是相加。

    • 检查时间戳ts是否为 10位 秒级(不是毫秒)

  2. 设备不在线(无反应)

    • 40W音柱使用WiFi,检查设备所处环境WiFi信号强度。

    • 设备不支持5G WiFi,需连接2.4G频段

  3. 中文播报乱码

    • 尝试将Order Key中的编码从 gbk 改为 utf-8unicode,确保代码文件的编码与接口参数一致。

  4. 播报内容被截断

    • 检查推送的文本长度。虽然HTTP接口通常支持较长的文本,但受限于设备内存,单次播报控制在120个中文字符以内,或通过分句发送实现长文本播报。

8. 总结

通过芯步的开放接口,二次开发40W音柱非常简单:核心在于 计算动态签名构造正确的Order JSON。该方案支持Web、App、小程序等多种前端调用,且平台免费开放,是集成线下语音提醒(如仓库警报、餐厅取餐、工位呼叫)的最短路径