CATALOG

一、写在前面

大家好,今天我们来聊聊怎么对芯步的10W远程TTS语音音柱做二次开发,实现远程语音播报。说白了,就是让你写的程序能随时随地对音柱说:“嘿,给我播报一段文字!”

这个音柱是支持WiFi连接的,你只要给它配好网,它就能通过云端接收指令。最关键的是——芯步的开放平台是永久免费的,这点还是挺良心的

二、准备工作

在开始写代码之前,你需要搞定三样东西:

1. 注册账号并获取密钥

去芯步的官网注册一个开发者账号,登录后在控制台的“开发设置”里找到:

  • AppID:你的应用ID

  • AppSecret:你的开发者密码

这两个东西后面调用接口都要用到,别搞丢了。

2. 获取设备ID

把你的10W音柱接通电源,连上WiFi,在控制台的设备列表里就能看到它的设备ID(是一串数字,比如“1878”这种格式)。如果你有多个音柱,每个都有自己独立的ID

3. 搞清楚接口地址

接口地址是这个样子的:

https://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}

用的是HTTP POST方式,请求体里面带上设备ID和命令就行

三、核心概念:签名是怎么算的?

这是整个接入过程中最容易踩坑的地方。芯步的接口要求每次请求都要带一个签名(sign),用来验证你的身份。

签名的计算规则是:

sign = md5( md5(AppSecret) + ts )

用人话解释一下:

  1. 先把你的AppSecret做一次MD5加密

  2. 然后把当前的时间戳(秒级,10位数字)拼在加密结果的后面

  3. 把拼接后的字符串再做一次MD5

注意:时间戳要取中国时区的当前时间,太旧的时间戳会被拒绝

四、让音柱“说话”的核心命令

重头戏来了。要让音柱播报文字,order参数要这么传:

比如让它说“你好,欢迎光临”,完整的请求体就是:

就这么简单?对,就这么简单!不需要提前上传录音文件,音柱收到文本后会实时合成语音播报出来

五、代码示例(多语言版)

Python版本

JavaScript (Node.js)版本

Go语言版本

Java版本

六、更多高级玩法

1. 控制音量、音色、语速

你可以在播报之前先设置音柱的参数:

功能命令示例说明
音量{"volume":"5"}0-9,数字越大越响
音色{"voice":"1"}0女声/1男声
语速{"speed":"5"}0-9,数字越快
语调{"tone":"5"}0-9,数字越上扬

你可以把这些设置命令和播报命令分开调用,也可以连续调用。

2. 播放内置提示音

音柱内置了5种铃声、5种提示音、5种警示音

3. 批量控制多个音柱

如果你想同时让多个音柱播报,device参数里用逗号隔开就行:

一次最多可以控制100台设备

4. 携带业务标识

这个功能很实用——你可以在命令里附带一个extra字段,平台推送执行结果时会原样返回,方便你做业务关联:

七、实际应用场景举例

场景1:仓库拣货提醒

当ERP系统生成拣货任务时,自动触发音柱播报:“请张三到A区取货,订单号PO-2024001”

场景2:餐厅后厨联动

收银系统下单后,后厨音柱自动播报:“新订单:鱼香肉丝一份、米饭两碗”

场景3:停车场车牌识别

道闸系统识别到月卡车辆后,音柱播报:“欢迎回来,车牌号XXXX,剩余有效期30天”

场景4:工厂设备告警

PLC检测到设备异常时,音柱播报:“3号生产线温度过高,请立即检查”

八、注意事项

  1. 频率限制:单个设备每秒只能接受1次指令,别太频繁地调用

  2. 返回码判断:接口返回code=200只代表平台收到了指令,不代表设备真的播报了。如果设备离线,指令就发不下去。需要确认执行结果的话,要使用平台的异步消息推送功能

  3. 文本编码play:gbk:16里的16表示GBK编码,中文没问题

  4. IP白名单:如果你在控制台开启了IP检查,记得把服务器的公网IP加进去,不然会被拒绝

九、总结

芯步10W TTS音柱的二次开发真的不难,核心就是三步:

  1. 准备好AppID、AppSecret、设备ID

  2. 按规则算好签名

  3. 发个HTTP请求,order里带上{"play:gbk:16":"你要说的话"}

整个流程走通之后,你就可以把语音播报能力集成到自己的业务系统里了。不管是订单提醒、告警通知,还是排队叫号,都能轻松搞定。