大家好!
最近在搞一个自助服务终端的项目,客户提了个挺有意思的需求:“这个机器能不能长张嘴?顾客操作到哪一步,它就给提示到哪一步。别让大家老盯着屏幕看,特别是那些眼神不太好的大爷大妈。”
这个需求其实很接地气。现在很多自助机(挂号机、点餐机、查询机)都只有冷冰冰的屏幕,交互全靠看。遇到操作复杂或者用户视力不好的情况,体验就很拉胯。
为了解决这个问题,我们找了一圈硬件,最后选了芯步的智能语音音箱。选择它的核心理由很简单粗暴:它不跟你玩私有协议,直接开放HTTP API接口。这意味着不管你后端是用Java、Python、Go还是PHP写的,只要能发HTTP请求,就能让它开口说话。
今天我就以这个方案为例,跟大家唠唠怎么在30分钟内,把你的自助服务终端变成一个会说话的“智能助理”。
第一步:硬件准备与“开箱配置”
我选的是那款30W的音柱,主要是考虑到大厅环境可能比较嘈杂,功率大一点吼得住(总不能让它轻声细语地被噪音盖过去吧)。
其实物理接线极其简单:
插电:给它通上电。
联网:这玩意儿支持WiFi或有线网口。在自助机内部,插根网线最稳当,保证网络畅通就行。
获取“身份证”:去芯步的后台注册一下,把设备添加进你的账号。这时候你会拿到两个关键数据:一个是 设备ID,另一个是你在后续代码里要用到的 AppID 和 AppSecret(相当于你家门禁的账号密码)。
第二步:核心逻辑 —— 后端一句话的事儿
这一步是整个接入过程里最“爽”的部分。你不需要去研究底层的音频解码、不需要写驱动,就是调接口。
核心逻辑就像发一条微信:你的后端服务器给芯步的云服务器发一条指令,云服务器再把指令推送给那台音箱。
我们拿 cURL 或者代码来举个例子。假设你的自助机用的是Java语言开发,对接流程如下:
1. 搞懂签名规则(为了安全,别裸奔)
为了不让别人随便让你的音箱喊“救命”,每次发命令都得带一个动态签名的。芯步的签名算法是 MD5(MD5(你的密码) + 当前时间戳)。虽然看着套了两层MD5,但其实代码也就几行。
2. 写代码让它“开口”
当用户扫码成功时,让它说“欢迎光临”;当用户等待超时时,让它说“请重试”。
这里直接用Java代码演示一下(用Unirest库比较方便):
就这么几行代码,你甚至不需要引入什么特殊的SDK,一个简单的HTTP POST请求,音箱就“开口”了。
3. 常用指令集锦
除了干巴巴的“你好,欢迎光临”,它还支持很多骚操作,通过改 order 里的JSON串就行
调整音量:用户离得远?调大点!
{“volume”:“7”}换个声音:想用甜美女声还是磁性男声?
{“voice”:“0”}(0是女声,1是男声)播放提示音:先“叮咚”一声吸引注意力,再说话。
{“play:gbk:16”:“[message_3]欢迎光临”}(这个message_3是内置的提示音)
第三步:场景联动 —— 怎么跟自助机业务结合?
光会发声没用,关键是要在对的时候发对的声音。
你的自助机程序里肯定有状态流转,我们在关键节点把“调接口”