11 音频
作者:李源龙 | 最后修改:2026-04-01
一、演示功能概述
本篇文档主要是讲解了使用 780EHV 搭配音频扩展小板 AirAUDIO_1000 使用 iRTU 固件进行播放音频,播放 TTS 等功能
二、准备硬件环境
1、Air780EHV 核心板 +AirAUDIO_1000 音频配件板 + 喇叭:点击购买

连接图:

注意:
如果搭配 AirAUDIO_1000 扩展板测试,需将 AirAUDIO_1000 扩展板中 PA 开关拨到 OFF,让软件控制 PA,避免 pop 音
Air780EHV 核心板和 AirAUDIO_1000 配件板的硬件接线方式为:
| Air780EHV核心板 | AirAUDIO_1000配件板 |
| 3/MIC+ | MIC+ |
| 4/MIC- | MIC- |
| 5/SPK+ | SPK+ |
| 6/SPK- | SPK- |
| 19/GPIO22 | PA_EN |
| VDD_EXT | VCC |
| GND | GND |
2、TYPE-C USB 数据线一根
- Air780EHV 核心板通过 TYPE-C USB 口供电;
- TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
三、准备软件环境
1.烧录工具:Luatools 工具
2.Air780EHV 烧录需要的 irtu 固件:固件版本
3.tcp 服务器测试地址:https://iot.luatos.com/#/page6/netlab。 详细使用说明参考:合宙 TCP/UDP web 测试工具使用说明
四、使用讲解
当前 780EHV 的音频功能主要是以服务器/串口发送命令然后模块接收到命令播放为主,如果是播放中文 TTS,需要是 UTF-8 编码格式的,其他格式播放会异常。
播放 TTS
指令功能
播放 TTS
指令格式
rrpc,ttsplay,data
指令解释
rrpc,ttsplay,:固定格式内容
data
含义:播放TTS内容;
数据类型:string;
取值范围:无限制;
是否必选:是;
注意事项:data的内容可以为中文,数字,英文,其中英文只能播放单个字母,没办法播放单词,播放中文的编码格式需要是UTF-8编码格式
示例:中文:rrpc,ttsplay,上海合宙 数字:rrpc,ttsplay,1234 英文字母:rrpc,ttsplay,abcd 中英混合:rrpc,ttsplay,上海合宙abc
返回值及解释
rrpc,ttsplay,data
rrpc,ttsplay,:固定格式内容
data
参数含义:播放结果
数据类型:string
取值范围:OK代表开始播放,ERROR代表播放异常
注意事项:该返回结果仅代表是否允许TTS播放,播放结束会有额外的指令返回
rrpc,playend,data1,data2
注意:该内容为播放完成之后返回的播放结果,不是接收到命令直接返回
rrpc,playend,:固定格式内容
data1
参数含义:播放结果
数据类型:string
取值范围:true 表示成功,false 表示失败
注意事项:该返回结果在模块播放完成之后返回
data2
参数含义:是否是用户停止
数据类型:string
取值范围:true 表示用户停止,false 表示不是用户停止
注意事项:该返回结果在模块播放完成之后返回
播放结果分为以下3种:
1)播放结束,播放成功:rrpc,playend,true,false
2)播放被中断指令打断:rrpc,playend,false,true
3)播放异常:rrpc,playend,false,false
示例

播放音频
指令功能
播放音频文件
指令格式
rrpc,fileplay,url,filename,isdelete
指令解释
rrpc,fileplay,:固定格式内容
url
含义:音频文件的url地址;
数据类型:string;
取值范围:该链接仅支持http和https链接,如需其他链接,可自行修改代码。
是否必选:否;
注意事项:音频文件的下载地址,如果播放本地音频文件,可以不选
示例:rrpc,fileplay,http://airtest.openluat.com:2900/download/1.mp3,1.mp3,0
filename
含义:音频文件的名字;
数据类型:string;
取值范围:文件名需要和下载url地址的文件名一致,如需播放本地文件,则需要文件存在,支持格式为wav,amr,mp3 格式音频
是否必选:是;
注意事项:暂无
示例代码:rrpc,fileplay,http://airtest.openluat.com:2900/download/1.mp3,1.mp3,0
isdelete
含义:播放完成是否删除;
数据类型:number;
取值范围:0/1;0代表播放完成之后不删除文件,1代表播放完成之后删除文件
是否必选:是;
注意事项:暂无
示例代码:rrpc,fileplay,http://airtest.openluat.com:2900/download/1.mp3,1.mp3,0
返回值及解释
rrpc,fileplay,data
rrpc,fileplay,:固定格式内容
data
参数含义:模块接收内容是否正确
数据类型:string
取值范围:OK代表播放接收内容正确,ERROR代表接收内容异常
注意事项:在播放本地文件,不进行http下载的时候,该返回值只用于判断文件是否存在,如果文件不存在会返回ERROR,如果文件存在则开始播放返回OK;如果存在url,进行http下载,该返回值OK仅代表接收到了指令
rrpc,playend,data1,data2
注意:该内容为播放完成之后返回的播放结果,不是接收到命令直接返回
rrpc,playend,:固定格式内容
data1
参数含义:播放结果
数据类型:string
取值范围:true 表示成功,false 表示失败
注意事项:该返回结果在模块播放完成之后返回
data2
参数含义:是否是用户停止
数据类型:string
取值范围:true 表示用户停止,false 表示不是用户停止
注意事项:该返回结果在模块播放完成之后返回
播放结果分为以下3种:
1)播放结束,播放成功:rrpc,playend,true,false
2)播放被中断指令打断:rrpc,playend,false,true
3)播放异常:rrpc,playend,false,false
示例

设置音量
指令功能
设置播放音量
指令格式
rrpc,setvol,data
指令解释
rrpc,setvol,:固定格式内容
data
含义:音量大小;
数据类型:number;
取值范围:0-100;
是否必选:是;
注意事项:默认值65,取值范围为0-100,设置完成后下次开机会沿用上次的音量设置结果
示例:rrpc,setvol,50
返回值及解释
rrpc,setvol,data
rrpc,setvol,:固定格式内容
data
参数含义:设置是否成功
数据类型:string
取值范围:OK代表设置成功,ERROR代表设置失败
注意事项:暂无
示例

获取音量大小
指令功能
获取音量大小
指令格式
rrpc,getvol
指令解释
rrpc,getvol:固定格式内容
返回值及解释
rrpc,getvol,data
rrpc,getvol,:固定格式内容
data
参数含义:音量大小
数据类型:number
取值范围:0-100
注意事项:如果没有设置过音量大小,默认值是65
示例

停止播放
指令功能
停止播放音频或者 tts
指令格式
rrpc,stopplay
指令解释
rrpc,stopplay:固定格式内容
返回值及解释
rrpc,stopplay,data
rrpc,stopplay,:固定格式内容
data
参数含义:停止播放结果
数据类型:string
取值范围:OK代表停止播放成功,ERROR代表停止播放异常
注意事项:停止播放之后,会收到rrpc,playend消息,rrpc,playend的第二个值会是true,证明是用户手动停止播放,例如:rrpc,playend,false,true
示例

五、使用示例
5.1 配置页面设置


使用的是串口 1,波特率为 115200,本次测试使用的为 TCP 服务器下发指令。
5.2 发送指令开始播放 TTS
发送指令的内容为 rrpc,ttsplay,上海合宙欢迎你,模块接收到并返回 rrpc,ttsplay,OK,播放结束之后模块返回 TTS 播放结果,rrpc,playend,true,false,表示播放结束,播放成功

5.3 发送音频播放指令-带 url 的指令
发送指令内容为:rrpc,fileplay,http://airtest.openluat.com/download/1.mp3,1.mp3,0 模块接收到开始先进行 http 下载,然后开始播放,播放结束之后返回播放结果 rrpc,playend,true,false,表示播放结束,播放成功,本次播放选择不删除音频文件。
是否删除取决于是否要继续使用,模块内部文件系统空间有限,当前使用的是 1 号固件,文件区大概为 768kB,一般音频文件大小在几十 kB-100kB 左右。建议常用的可以保存,不常用的可以播放完就删除。

从日志中分析,模块在 15:28:14 接收到数据,开始进行 HTTP 下载,本次下载的文件大小为 400kB,从接收到进行 http 到下载结束用时为 7 秒,400kB 的音频文件播放时长大概为 1 分 30 秒,已经算是比较大的音频,下载时间也会相对长一些。

5.4 发送音频播放指令-播放本地文件
发送指令内容为:rrpc,fileplay,,1.mp3,0 模块接收到指令开始播放,播放结束之后返回播放结果 rrpc,playend,true,false,表示播放结束,播放成功,本次播放选择不删除音频文件。

5.5 停止播放
发送指令的内容为 rrpc,stopplay,模块接收到并返回 rrpc,stopplay,OK,然后返回音频/tts 的播放结果,rrpc,playend,false,true,表示播放被中断指令打断

5.6 设置音量
发送指令的内容为 rrpc,setvol,70 模块接收到并返回 rrpc,setvol,OK,更改音量,该操作在播放音频中也可以使用,重启之后,依旧保存设置的音量

5.7 查询音量
发送指令的内容为 rrpc,getvol 模块接收到并返回 rrpc,getvol,70,70 为上面设置音量设置的,不设置音量的话,音量大小为 65。

六、总结
本文演示如何在 Air780EHV 核心板上面,用 irtu 固件,展示了音频播放的功能