跳转至

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 固件,展示了音频播放的功能