CATALOG

芯步智能语音喇叭2 提供开放的HTTP API,支持通过文本转语音(TTS)实现自定义播报。本文将围绕接口对接、命令构造、签名鉴权三个核心环节,给出完整的自定义语音模板设置方案。

一、 概述

智能语音喇叭2是一款支持WiFi联网的语音播报设备。与传统喇叭不同,它不需要预录音频文件,而是通过HTTP接口接收文本,即时转换为语音

核心价值

  • 动态内容:支持变量替换(如金额、人名、工单号),无需逐一录音。

  • 多种音效:支持音量、语速、音色(男/女)、语调调节,并内置铃声/提示音

  • 队列机制:高并发场景下自动排队播报,避免丢包。

适用场景

  • 工业/仓储:AGV故障预警、物料呼叫

  • 零售/餐饮:扫码支付播报、会员生日提醒、取餐叫号

  • 安防/办公:门禁访客语音通知、会议提醒

二、 接口技术准备

基于芯步的开放API,开发者需要准备以下三要素:

  1. AppID:应用唯一标识

  2. AppSecret:应用密钥,用于签名计算

  3. Device ID:智能语音喇叭2的设备编号

API基础信息

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • 请求方法:POST

  • 数据格式Content-Type: application/json

三、 自定义语音模板核心实现

自定义模板的核心逻辑是:将静态文本与动态变量在服务器端拼接,转化为API命令

1. 基础命令结构

智能语音喇叭2的核心播报命令为 play:gbk:16,其值为你想说的文本

示例(固定文本):

2. 动态变量模板设计

为了实现自定义模板,后端需构建一个模板引擎字符串替换逻辑

案例场景:仓储系统中,当货物到达指定货架时,通知拣货员。

  • 原始模板{货物名称}已到达{货架编号}区,请尽快处理

  • 替换逻辑:Python示例

3. 语音高级特性(优化体验)

为了提升合成效果,在模板中加入控制参数

  • 金额读法:针对数字,接口会自动识别为金额(如 100.5 -> “一百元五角”)。

  • 多音字纠错:可使用同音字替换,例如“重庆”如果读错,可尝试写成“虫庆”。

  • 辅助参数

    • volume=5:设置音量(0-9)

    • voice=1:音色(0女声/1男声)

    • speed=5:语速(0-9)

组合命令示例:

四、 完整接入流程

步骤1:计算签名(Sign)

为防止接口被恶意调用,所有请求需携带签名签名算法sign = MD5( MD5(AppSecret) + ts )

注意:ts为Unix时间戳(秒级)。+在此处代表字符串拼接

代码示例(Python):

步骤2:发起HTTP请求

使用AppID、计算出的signts拼接URL,并在Body中传入设备ID和Order。

完整请求示例(cURL):

步骤3:接收返回与状态处理

  • 成功:API返回{"code":0,"msg":"success"},喇叭随即播报。

  • 失败:根据返回码排查(如1002签名错误、1003设备不在线)。

  • 上下线提醒:可配置回调URI(Callback URL),当喇叭断电重连时,平台会主动推送事件到你的服务器。

五、 实战场景:零售支付播报系统

需求:收银台每完成一笔支付,喇叭播报“支付宝到账xx元”,且仅在工作时间开启。

逻辑设计

  1. 业务系统触发:支付成功回调

  2. 中间件处理

    • 调用友我API前,判断当前时间是否为9:00-21:00。

    • 提取支付金额amount和支付方式type

    • 构建文本:{type}到账{amount}元

  3. 下发指令

六、 常见问题与排障

  1. Q:中文播报乱码或不说话?

    • A:必须使用play:gbk:16命令,并确保POST请求体的编码为UTF-8或GBK,文本URL编码需正确

  2. Q:连续下发多条命令,喇叭只播最后一条?

    • A:不用担心,设备内置消息队列,会按顺序逐条播报,不会丢失

  3. Q:如何判断喇叭当前是否在播放?

    • A:可通过查询设备状态接口(或监听回调),判断当前队列长度。避免在紧急警报时打断重要提示。

七、 总结

通过上述方案,开发者只需关注业务逻辑与文本模板的拼接,无需关心语音硬件底层的驱动细节。利用友我物联的开放API,系统集成方可以像调用普通Web API一样,为现有系统赋予“开口说话”的能力。