CATALOG

针对芯步30W云TTS语音音柱的音量音色调节需求,核心是调用其开放的HTTP API接口,通过签名鉴权后下发特定命令字。以下方案会详细说明接口格式、参数含义及多语言代码示例,帮你快速实现远程调参。

解决方案:基于芯步开放接口的30W云TTS音柱语音调节方案

一、 准备工作:搞懂“对话”格式

在开始写代码之前,我们需要先理解怎么跟这个音柱“说话”。芯步的接口设计得非常简单,它不需要你懂复杂的音频流协议,只需要你会发 HTTP请求 就行。

  1. 通信协议:HTTP/HTTPS (支持公网和局域网,甚至支持私有化部署)

  2. 数据格式:JSON。

  3. 核心地址http(s)://api.thingboot.com/{你的AppId}/device/control/?sign={你的签名}&ts={当前时间戳}

你只需要往这个地址 POST 一段 JSON 数据,音柱就会立刻响应。从下发到出声,也就 80-120 毫秒,几乎是实时的

二、 核心难点与解决:鉴权(Sign)计算

很多人第一次对接会觉得这个 Sign 计算很绕,其实就是 “老母鸡生小鸡” 的逻辑,我们可以分三步走:

  1. 材料准备:登录芯步后台,拿到你的 AppSecret 密码。

  2. 第一次加密:把你拿到的 AppSecret 丢进 MD5 算法里,得到一串 32位字符串

  3. 混合再加密:把上面得到的 32位字符串 拼接上当前的 时间戳(ts) ,再对整个拼接结果做一次 MD5 加密。

公式化:Sign = md5( md5(AppSecret) + ts )

举个栗子(伪代码):

  • 假设 AppSecret = "123456"

  • md5(AppSecret) = "e10adc3949ba59abbe56e057f20f883e"

  • 假设当前时间戳 ts = 1714352400

  • 那么拼接后的字符串为: e10adc3949ba59abbe56e057f20f883e1714352400

  • 最后把这个字符串再算一次 MD5,得到最终的 Sign

小贴士:时间戳 ts 一定要是级别的Unix时间戳,而且服务器时间误差不要太大,不然会鉴权失败

三、 实战调节:音量与音色

这是你最关心的部分。对接30W音柱时,我们主要用到两个参数:volume(音量)和 voice(音色)。

1. 调节音量 (0-9级)30W的音柱音量很足,适合户外。芯步将音量划分为 0(静音) 到 9(最大声)

  • 下发命令{"volume": "7"}

  • 场景:中午商场人多,背景嘈杂,需要调大音量。

  • JSON 示例

2. 切换音色 (男声/女声)芯步的TTS是在芯片端合成的,支持男女声切换,声音很自然,不是那种老式机器人音

  • 下发命令{"voice": "1"}

    • 0 或 不传: 女声 (通常默认是清晰温柔的女声)

    • 1: 男声 (比较沉稳,适合播报安防警示语)

  • JSON 示例

3. 组合拳:一边播报,一边调参有时候你需要播一段文字,同时要求这是“男声、音量8级、语速稍快”。芯步的接口支持一次性下发复合命令,你可以把想改的参数和播报文本写在同一个 order 里。

  • 播报文本"play:gbk:16" 后面跟你的文字

  • 综合示例:让设备用 男声8级音量 播报“危险区域请勿靠近”。

    (注:[alert_1] 是内置的警示音,可以先响一声警报再说话)

四、 代码实操 (Python 版)

为了让后端同学看得更明白,这里写一段 Python 代码,展示如何通过 requests 库实现上述的“组合拳”功能。

五、 常见进阶调节技巧

  1. 语速与语调:除了音量和音色,这个音柱还支持语速和语调的微调(0-9级)

    • {"speed": "2"}: 慢一点,适合播报电话号码或重要通知。

    • {"tone": "7"}: 语调上扬,听起来更热情。

  2. 多音字与数字读法:如果遇到“重庆”被读成“重(zhong)庆”,或者希望数字“123”读成“一二三”而不是“一百二十三”。

    • 可以在文本里用 # 号标记,或者使用接口支持的标记语法来控制读法

  3. 局域网私有化部署如果你的音柱和服务器在同一个局域网内,甚至不需要走外网。芯步支持私有化,你可以把请求地址改成你分配给音柱的局域网IP,这样响应速度更快,也更稳定

六、 总结

对接芯步的 30W 云 TTS 音柱并不复杂,核心就是 “POST JSON”

  • 控制音色,用 voice 参数。

  • 控制音量,用 volume 参数。

  • 控制播放,用 play:gbk:16 参数。

只要把签名算法搞定了,剩下的就是根据业务场景(比如白天音量8,晚上音量3)灵活拼 JSON 串了。官方也提供了各种语言的 Demo(PHP、JS、Java等),直接参考着改改就能上线。