CATALOG

芯步的30W语音音柱支持通过HTTP接口直接推送文本进行语音播报,核心就是调用它的开放API。下面我会从接口对接、签名计算、命令格式到代码示例,一步步说清楚怎么二次开发。

一、 我们到底要解决什么问题?

在很多实际场景中,比如食堂叫号、车间报警或者停车场缴费提醒,我们需要在“后端服务器”或“云平台”检测到某个事件发生时(比如用户支付成功了),立刻让音响发出声音。

芯步的这款30W音柱虽然功能强大,但它本身是“听命令”的。这篇方案要做的就是教你如何写一段代码(或者说搭建一个桥梁),通过HTTP协议告诉音响:“现在播放‘你好,欢迎光临’”,或者“把音量调到最大”。

说白了,就是把音响变成一个可以通过网络远程调用的“喇叭”。

二、 准备工作:拿到“遥控器”

在开始写代码之前,我们得先拿到操作音响的凭证。这就像你要发快递,得知道收件人地址和你的身份证。

  1. 获取AppID 和 AppSecret

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

    • 找到你的“应用管理”或“开发者中心”。在这里,系统会为你生成一串AppID(相当于账号名)和AppSecret(相当于密码)。这个AppSecret非常重要,千万不要泄露到前端代码里

  2. 获取设备ID (Device ID)

    • 在控制台的设备列表里,找到你那台30W音柱。

    • 它会有一个唯一的数字编号,这就是Device ID。如果你要控制多台,记住它们的ID即可

三、 核心接口详解:怎么“喊”它说话?

芯步的接口设计得非常简洁,主要就是向指定的URL发送一条指令

1. 请求地址 (URL)

  • {AppID}: 直接替换成刚才拿到的AppID。

  • {ts}: 当前的时间戳(Unix格式,精确到秒)。

  • {sign}: 这是安全验证的签名,需要我们自己算一下。

2. 签名生成 (Sign)

这个是唯一的“技术含量”点,但其实也不难,规则如下

  1. 先把你的AppSecret取出来,做一次MD5加密。

  2. 把加密后的结果拼接上时间戳ts

  3. 把这个拼接后的新字符串再做一次MD5加密。

公式化表达:

*sign = md5( md5( AppSecret ) + ts )*

举个例子(伪代码):假设 AppSecret = “abc123”ts = “1747212640”第一步:step1 = md5(“abc123”) = “xxxxxx”第二步:step2 = step1 + “1747212640” = “xxxxxx1747212640”第三步:sign = md5(step2)

3. 请求体 (Body)

接口支持POST方式,数据格式用JSON。核心参数就两个

参数1:device (你要喊谁)

  • 直接填设备的ID,比如“1878”。如果想同时让一排音响都响,可以用逗号隔开,比如“1878,1879”

参数2:order (你要喊什么)这是重点,语音播报指令就在这里构造。

对于30W音柱,语音播报的命令格式是 {“play:gbk:16”:“你要说的话”}

支持的更多命令(可选):为了体验更好,你通常会在播报前调整一下音量

功能命令示例 (JSON)说明
文本播报{“play:gbk:16”:“仓库发生火警,请撤离”}核心功能,直接推送文字转语音
调节音量{“volume”:“7”}范围0-9,9最大
切换音色{“voice”:“1”}0=女声,1=男声
播放提示音{“message”:“3”}内置5种提示音,播报前加个“叮咚”更醒目
紧急停止{“stop”:“1”}立刻闭嘴,停止播放

四、 实战演练:手写代码示例

我们只需要把上面的原理串起来,就可以用代码实现了。这里用最通用的Java语言演示,你也可以用Python、PHP、Go等语言轻松改写

假设我们现在要做一个功能:当用户下单成功时,音柱播报“您有新的订单,请注意处理”,音量调到最大。

代码实现逻辑:

  1. 引入依赖 (如果使用Apache Codec 或 自带的MessageDigest)。

  2. 组装参数:拿AppSecret算签名。

  3. 发送请求:把Device ID和Order丢给服务器。

Java 代码示例 (使用 Unirest 或 OkHttp):

Python 示例 (极简版):如果你用的是Python,代码会更简洁