CATALOG

芯步60W音柱的二次开发核心在于调用其开放的HTTP API——无需要上传音频文件,直接POST文本即可触发TTS语音播报。以下方案涵盖接口鉴权、播报命令、多平台代码示例及状态回执接收。

一、 技术背景与准备

芯步的60W云语音播报音柱(型号:UNI-YY-YZ-60W)采用“硬件+云平台”架构。其核心优势在于芯片级TTS(文本转语音),开发者无需自行合成音频文件,只需通过HTTP请求推送文本,设备端即可直接生成语音

在开始二次开发前,请准备以下三项信息(注册登录芯步控制台后获取):

  1. AppID: 应用唯一标识。

  2. AppSecret: 接口调用的密钥(请勿泄露)。

  3. Device ID: 设备唯一ID(可在控制台查看,即设备ID)

二、 接口鉴权与核心指令

所有二次开发均围绕 https://api.thingboot.com/{AppID}/device/control/ 端点进行。为了安全,每次请求必须携带动态签名。

1. 签名生成规则

签名算法相对简单,主要防止重放攻击。具体步骤如下:

  • 第1步:将 AppSecret 进行MD5加密,得到 sign_part1 = md5(AppSecret)

  • 第2步:获取当前的Unix时间戳(秒级),记为 ts

  • 第3步:拼接字符串并再次MD5:sign = md5(sign_part1 + ts)

注意:时间戳 ts 必须与计算签名时所用的保持一致,并作为参数传递。

2. 核心播报命令

该音柱最核心的功能是云语音推送,对应的 order 参数为:

此外,为优化体验,还支持以下辅助控制指令

功能Order JSON 示例说明
音量调节{"volume":"7"}范围 0-9,数值越大音量越大
音色切换{"voice":"1"}0-女声,1-男声
语速调节{"speed":"5"}范围 0-9
停止播报{"stop":"1"}立即停止当前播放

三、 二次开发解决方案详述

您可以将音柱集成到任何业务系统中(如收银系统、监控预警平台、工业自动化看板)。以下是不同语言的实现逻辑。

1. Java 集成方案(适合后端服务)

在Spring Boot等后端服务中,封装一个简单的Service用于语音推送。

代码参考来源

2. 前端/Node.js 集成方案(适合浏览器或小程序)

如果业务逻辑在浏览器端或云函数中运行,可使用JavaScript进行调用。

3. Shell / Curl 集成方案(适合快速测试、嵌入式脚本)

如果在Linux自动化脚本(如监控报警脚本)中集成,可以使用Curl命令。

代码参考来源

四、 状态回执与可靠性保障

为了确保语音确实被播放,而非仅仅是“指令发出”,接入消息推送功能

  1. 开启推送:在芯步控制台中配置您的服务器URL(或使用MQTT)。

  2. 接收状态:当音柱成功执行播报后,平台会向您的服务器发送如下格式的回执:

  3. 应用场景:您可以利用这个回执实现“语音播放失败重试三次”或“记录播放日志”等功能。

五、 高级功能应用

除了普通文本播报,该设备接口还支持一些细节优化

  • 数字读法优化:例如金额播放,可以直接拼接文本 {"play:gbk:16":"收款100.5元"},TTS引擎会自动优化读法。

  • 多音字纠正:如果遇到多音字读错,可以通过同音字替换的方式解决,例如将“行走”写作“步走”(视具体语境)。

  • 组合音效:可以在播报前添加提示音。例如先播放提示音再播报,虽然接口文档中通常通过拼接实现,但底层支持通过特定标识符触发内置提示音(参考内置message/ring命令)。若需先响铃后播报,可连续下发两条指令:先发 {"ring":"1"},紧接着发 {"play:gbk:16":"内容"}

总结

通过上述方案,开发者可以在10分钟内完成从注册到第一个API调用的全过程。该方案的灵活性在于,一旦音柱连接上WiFi,它就能接收来自云端任意一端的指令,无需复杂的长连接维护,极大地降低了系统集成的复杂度。