芯步智能语音台卡2开放了HTTP接口,你完全可以通过二次开发来实现自定义语音模板功能。简单来说,就是把语音内容存在你的服务器上,然后通过API调用让设备“读”出来。下面一步步说。
一、我们要解决什么问题?
现状:台卡自带的管理后台,语音播报内容是固定的,比如“你好,欢迎光临”。需求:你想把它变得更灵活,比如:
根据不同的客户(VIP、普通客户)播报不同的话术。
根据不同场景(A柜台推销咖啡、B柜台推销奶茶)随时切换语音内容。
结合你的业务系统(比如接入了天气API,就播报“今天有雨,记得带伞”)。
核心思路:甩开官方固定的后台,直接接管设备的播报指令。
二、拿到“钥匙”:看懂开放接口
根据芯步的技术文档,智能语音台卡2的核心控制方式是 HTTP API。这就像是你可以通过发一个“网页链接请求”(URL)来控制它说话。
准备工作:
注册/登录芯步控制台,找到你的 AppID 和 AppSecret(相当于账号密码)。
拿到你台卡的 设备ID(Device ID)。
核心命令格式:
要让台卡说话,关键就是这个 order 参数:
play:gbk:16:这是固定的命令字,告诉设备“要开始朗读了”,用的是GBK编码的中文。后面的字符串:就是你自定义的语音模板内容。
三、动手实现“自定义模板”
我们不需要特别复杂的代码,用Python写一个脚本,或者集成到你的Web后端里就行。
第1步:搞定签名算法
芯步的API需要验证身份,必须算一个签名(Sign),否则发命令会被拒绝。算法是:md5( md5(AppSecret) + 当前时间戳 )。
第2步:编写核心代码
假设你的业务系统里有变量,比如 {user_name} 和 {product_name},我们把它替换掉。
Python 示例代码:
第3步:让模板真正“活”起来
上面的代码只是个基础。你要做二次开发的关键是把“模板”存在你的数据库里,并且通过界面让用户(比如店长)能自己配置。
设计数据库表(思路):
| ID | 场景名称 | 语音模板内容 | 关联设备ID |
|---|---|---|---|
| 1 | 咖啡取餐 | “请{座位号}号的顾客取餐” | 1878 |
| 2 | 欢迎光临 | “尊贵的{等级}会员,欢迎光临” | 1879 |
业务逻辑(怎么用):
可视化编辑:做个简单的后台页面,让用户输入模板文字,支持自定义变量(比如
{name})。触发机制
Webhook触发:当你的ERP系统里有新订单时,自动触发这个脚本,传参进去。
手动触发:后台点一下按钮。
定时任务:每天早上10点,自动播报“上午好,现在开始营业”。
四、进阶玩法:不仅仅是文字播报
既然开放了接口,你还可以顺便调一下其他参数,让体验更好:
调节音量
{"volume": 80}(范围0-100)改变音色
{"voice": 1}(0为女声,1为男声,具体看手册)切换语速
{"speed": 50}
你可以在发送播报命令前,先发一组设置命令:
五、避坑指南
编码问题:注意
play:gbk:16这里用了gbk,如果你的代码环境是UTF-8,传中文时不需要额外转码,requests库通常处理得好,但如果乱码,记得encode('gbk')。网络环境:台卡必须连接2.4G WiFi。如果发命令没反应,检查一下设备和你的服务器网络是否通。
签名时效:时间戳
ts不能与服务器时间相差太大,否则会报错。私有化部署:如果你是做项目交付,芯步支持私有化部署,意味着可以把API部署在客户内网,离线运行 。
总结
这套方案的核心就是:把“文本”参数化。你不需要去改台卡的固件,只需要在你的业务系统(或云函数)里,把原本写死的“你好”,改成拼接字符串 “你好” + 变量,然后通过HTTP接口扔给设备就行了。