CATALOG

芯步的10W语音播报音柱(智能语音音柱)通过其开放平台API,可以非常便捷地接入自助服务终端项目。核心思路是:终端触发事件 → 后台调用API → 音柱TTS播报,整个过程无需预录语音,实时文本转语音即可完成

一、 解决方案设计

为了实现稳定、低延迟的语音播报,采用“业务后台聚合调用”的架构模式。自助终端设备(如取号机、查询机)不直接控制音柱,而是将业务信令上报给业务服务器,由服务器通过芯步的开放接口统一调度。

  • 终端层(自助服务终端)

    • 负责接收用户操作(如点击、扫码)。

    • 将“操作成功”、“出错”、“请取票”等信号发送给业务服务器。

    • 备注:终端需联网,能与服务器通信。

  • 业务服务层(云端/本地服务器)

    • 接收终端的状态回调。

    • 逻辑判断:决定播报什么内容。

    • 对接层:调用芯步 HTTP APIMQTT 接口

  • 设备层(10W语音播报音柱)

    • 通过Wi-Fi/4G连接到互联网,保持与芯步云的长连接。

    • 接收云端下发的TTS(Text To Speech)指令,驱动喇叭发声。

二、 对接前的准备工作

  1. 硬件准备:将芯步10W智能语音音柱通电,并通过“芯步”小程序或PC控制台完成配网,使其处于在线状态

  2. 平台注册

    • 登录芯步开放平台,获取AppID 和 AppSecret

    • 在控制台创建“工作台”,并将物理设备的ID(Device ID)添加到名下。

  3. 接口分析

    • 核心接口:http(s)://api.thingboot.com/{AppID}/device/control/

    • 核心参数:

      • device: 目标音柱的设备ID。

      • order: 控制指令,这里是语音播报的核心字段

三、 详细技术实现流程

步骤1:获取接口访问权限(签名计算)

为了防止接口被恶意调用,芯步接口使用了签名机制。你的服务器在每次请求时需动态计算sign参数。

  • 签名算法:通常涉及将AppSecret、时间戳等参数进行MD5加密

步骤2:核心指令下发:TTS文本播报

当你的自助终端完成一笔业务(例如出票成功),服务器需要通知音柱发声。这是最关键的步骤,通过调用设备控制接口实现。

  • 请求地址https://api.thingboot.com/YourAppID/device/control/?sign={sign}&ts={timestamp}

  • 请求方式:POST (JSON格式)

  • 请求Body示例

指令详解

  • play:这是触发的核心。你可以直接传中文字符串,云平台会自动转换为语音(TTS)。例如:“系统检测到故障,请稍后再试”

  • 单独控制:如果需要先播提示音再播报文字,可以组合命令或发送多条指令。

步骤3:辅助功能实现

1. 音量与音色调节在用户操作的高峰期(如中午),可能需要降低音量;夜间模式则需静音。你可以随时下发调节指令,无需重启设备。

2. 紧急停止与优先级如果用户操作错误或需要打断当前播报(例如用户扫码后发现扫错了,不想听后面的广告词),服务器可以下发停止指令。

四、 场景应用示例

医院自助挂号缴费终端为例,对比传统模式和集成后的流程差异:

场景节点传统终端(无语音/简单蜂鸣)集成芯步音柱的方案
用户插卡/刷卡屏幕提示“请稍候”音柱播报:“医保卡正在读取,请稍候...”
挂号成功屏幕显示“成功”,打印凭条音柱播报:“挂号和缴费成功。张伟医生,3号诊室,请前往候诊。”
余额不足屏幕弹出红色提示框音柱播报:“很抱歉,余额不足,请选择其他支付方式。”

逻辑时序图

sequenceDiagram
    participant User as 用户
    participant Terminal as 自助终端
    participant Server as 业务服务器
    participant YoyoCloud as 芯步云
    participant Speaker as 10W语音音柱

    User->>Terminal: 点击"取号"按钮
    Terminal->>Server: 上报出号请求
    Server-->>Server: 生成排队号
    Server->>YoyoCloud: POST /device/control 
{"play":"请A001号顾客就餐"} YoyoCloud->>Speaker: 推送MQTT指令 Speaker-->>Speaker: TTS合成语音 Speaker->>User: 播报:"请A001号顾客就餐"

五、 集成注意事项与最佳实践

  1. 处理异步与离线状态根据接口文档,调用设备控制接口返回200仅代表云端收到了指令,并不代表设备真的发声了。如果音柱断电或离线,指令会失效。完善一下:

    • 在业务逻辑里增加设备心跳查询。

    • 或者利用芯步的消息推送机制,监听设备是否成功执行了指令。

  2. 文本转语音(TTS)优化

    • 多音字处理:有些TTS引擎会读错多音字,在文本中用拼音或同音字替换。例如“请前往****行** 政楼”,如果读错可写成“请前往行行政楼”。

    • 数字读法:涉及到金额或电话号码,最好在字符串中加间隔或利用SDK特定标记。例如播报金额10086元,可以格式化为 一万零八十六元幺零零八六 发给音柱,具体取决于场景需求

  3. 本地网络部署(可选)如果你的自助终端集群处于局域网环境,且对公网延迟敏感,可以咨询芯步技术支持,启用局域网控制。这样你的服务器可以直接向局域网内的音柱发HTTP指令,无需经过云端,响应速度可提升至毫秒级

六、 总结

通过将10W语音播报音柱对接芯步的开放接口,原本静默的自助服务终端获得了 “开口说话” 的能力。这种方案不仅开发量小(仅需封装HTTP请求),而且非常灵活——你可以在后台随时修改播报内容、调节音量,甚至根据不同时段(如高峰期、午休期)动态调整语音策略,从而提升自助终端的易用性和用户体验。