CATALOG

芯步的智能语音喇叭2通过开放HTTP接口,支持远程TTS播报任意文本内容。以下方案涵盖接口协议、签名计算、多语言代码示例及播报优化策略,帮助你快速集成自定义语音功能。

1. 产品概述与核心能力

芯步智能语音喇叭2是一款支持WiFi联网的远程语音播报设备。它最大的特点在于无需预先烧录录音文件,开发者只需通过其开放的HTTP接口推送文本,设备即可实时将文本合成为语音并进行播报

该产品的核心优势在于:

  • 极简接入:设备上电后仅需通过WiFi配网,无需额外的网关或中转设备。

  • 实时性强:从调用API接口到设备播报,响应速度通常在毫秒级。

  • 音质清晰:支持男声、女声选择,并针对数字、金额、多音字做了智能优化

  • 高扩展性:适用于任何支持HTTP请求的编程语言(Java, Python, PHP, Go, Node.js等)或开发工具(如Postman)。

适用场景:线下店铺订单提醒(如餐饮、零售)、工厂产线流程异常警报、停车场的车牌识别语音播报、内部办公OA系统的会议/任务提醒等。

2. 硬件准备与网络配置

在实际编码之前,需要完成物理设备的初始化。

第一步:设备配网设备通电后,指示灯通常会进入快闪状态(等待配网)。用户需关注“芯步”官方微信公众号或小程序,输入当前的2.4GHz WiFi密码,通过声波或AirKiss技术将网络凭证推送给喇叭。

第二步:获取唯一标识配网成功后,设备会在物联网后台显示为在线状态。开发者需登录芯步控制台(Console),在设备列表中获取该设备的唯一ID(Device ID)。这个ID将是后续API请求中的关键参数

3. 开放接口协议详解

智能语音喇叭2提供的是标准HTTP API,采用POST请求方式,数据格式为 JSON

3.1 请求地址与鉴权

  • 请求URLhttp(s)://api.thingboot.com/{AppId}/device/control/

  • 鉴权方式: 动态签名(Sign)为保证安全性,每次请求需携带签名。

  • 参数位置: Query String

你需要准备以下凭证(在控制台获取):

  • AppId: 应用的唯一标识,直接拼接在URL路径中。

  • AppSecret: 应用的密钥,严禁直接传输,仅用于计算签名。

3.2 签名算法

签名(sign)的计算逻辑如下

  1. 首先将 AppSecret 进行MD5加密,得到 SignKeySignKey = md5(AppSecret)

  2. 获取当前的Unix时间戳(秒)ts

  3. SignKeyts 进行拼接(字符串连接),再进行一次MD5加密得到最终签名。sign = md5( SignKey + ts )

  4. 最终的完整请求路径为: /device/control/?sign={sign}&ts={ts}

安全性提示:每一次请求都应实时计算签名,将请求时间戳(ts)的有效期设定在合理范围内(如前后5分钟内),以防请求被恶意重放。

3.3 核心指令:播报自定义内容

这是实现本文主题“自定义语音播报”的核心指令。

  • 命令类型play:gbk:16

  • 执行方式: 将你需要播报的文字作为JSON的value传入。

在JSON请求体中,主要包含两个字段

  • device: 之前在后台获取的设备ID。

  • order: 具体的执行命令(JSON对象格式)。

核心播报指令示例

3.4 辅助控制指令

为了提升用户体验,在播报前或播报过程中,可以调用以下辅助指令:

指令 Key可用参数/值功能说明
volume0 - 9调节音量大小,0为静音,9为最大音量。
voice0或10:女声;1:男声
speed0 - 9调节语速,数值越大语速越快。
tone0 - 9调节语调。
ring1 - 5内置5种铃声(在播报前插入)。
alert1 - 5内置5种警示音(适用于警报场景)

带格式设置的综合请求示例该指令将使喇叭先响一声轻微的提示音(提示音1),然后将音量调至7(中高音量),再用女声播报自定义内容。

4. 代码实现示例

以下提供几种常见开发语言的接入范例,用于展示如何发起一个HTTP请求并下发上述JSON指令。

4.1 Java (基于 OkHttp)

在实际项目中,需将硬编码的AppSecretDeviceId替换为配置项。

4.2 Shell (使用 CURL)

对于运维脚本或快速测试,使用curl是最便捷的方式。

5. 高级应用与最佳实践

5.1 队列机制与防冲突

由于网络延迟或并发请求,可能会出现连续多条指令下发的情况。智能语音喇叭2内部维护了播报队列

  • 机制:在当前播报未完成时,新指令会自动排队,依次播报。

  • :若业务场景需要打断(如紧急火警),在发送紧急指令前,先发送{"stop":"0"}(停止当前)或{"stop":"1"}(清空队列),再发送紧急内容。

5.2 自定义文本的“智能”优化

虽然接口支持直接发送中文,但对于特定数值,进行预处理好:

  • 金额:直接推“100.50元”,喇叭能自动读为“一百点五零元”。

  • 电话号码:对于含数字的长串,推荐在文本中加入空格或逗号分隔,如“拨打 1 8 9 空格 2 3 1 9”,比直接播“一亿八千九百...”更符合电话通知的预期

  • 多音字:遇到“重庆”这种词,可以尝试在文本中标注拼音或添加谐音字(如“重-庆”),以纠正发音。

5.3 上行消息处理(高级)

喇叭不仅支持“听”,还支持“说”。设备上有一个轻触按钮

  • 功能:可以配置按下按钮时,向指定的服务器URL(Callback URL)发送一个HTTP请求。

  • 应用:例如车间工人按下喇叭按钮“报修”或“完成任务”,系统后台即可接收到事件通知,实现闭环的工单管理

6. 故障排查指南

  • 签名校验失败(401)

    • 检查时间戳ts是否为当前的Unix秒数(多数服务器拒绝偏差超过10分钟的请求)。

    • 核对MD5计算顺序:md5( md5(Secret) + ts ),注意是字符串拼接,不是数值相加。

  • 设备不在线(1002)

    • 检查设备电源,确认指示灯是否为常亮状态。

    • 若指示灯闪烁,说明WiFi断开;若WiFi密码变更,需重新配网。

  • 无声音或声音异常

    • 检查volume参数是否误设为0。

    • 检查order中的JSON Key是否准确(例如play:gbk:16必须全小写且包含引号),格式错误将导致指令被忽略。

7. 总结

通过芯步智能语音喇叭2的开放接口,开发者仅需3步即可实现自定义语音播报:

  1. 设备配网并获取ID。

  2. 计算签名并构建包含播报文本的JSON请求。

  3. 发送POST请求至指定API。

该方案因其轻量级(HTTP协议)、高灵活(支持各类开发语言)的特点,能够快速赋能各类行业软件的语音交互能力,极大提升现场操作人员的信息接收效率。