无论是开发语音助手、音频播放器,还是录音工具,TTS播放、文件播放与录音都是绕不开的核心功能。本文提炼核心流程,帮你跳过冗余细节,快速掌握这三大功能的核心实现逻辑。
一、概述
本文档详细介绍了基于 Air8000 开发板或者 Air8000 核心板的音频功能开发,涵盖音频播放、文字转语音、流式音频处理和录音等核心功能。通过本指南,开发者可以快速掌握 Air8000 的音频处理能力,并实现各种音频应用场景。
录音功能将麦克风采集的模拟声音信号转换为数字音频文件,支持 AMR 和 PCM 格式,可设置采样率、时长和存储路径,适用于语音记录、语音识别等场景。
TTS(文字转语音) 将文本内容实时转换为语音播放,支持中文普通话和多种发音风格调节,可通过特殊标记控制语速、语调、音量等参数,适用于语音提示、内容播报等应用。
播放音频文件功能用于播放设备中的音频文件,支持 MP3、WAV、AMR 等多种格式,可进行单文件或多文件连续播放,适用于音乐、语音提示等场景。其中流式播放仅支持 PCM 格式。适用于音乐播放、语音提示、告警音效等各种音频应用场景。
二、演示功能概述
1、main.lua:主程序入口文件,加载以下 2-6 文件运行。
2、play_file.lua: 播放音频文件,可支持 wav,amr,mp3 格式音频:
自动播放一个 sample-6s.mp3 音乐
点 powerkey 按键进行音频切换
点击 boot 按键停止音频播放
3、play_stream: 流式播放音频,仅支持 PCM 格式:
创建一个播放流式音频 task(task_audio)
创建一个模拟获取流式音频的 task(audio_get_data)
此 task 通过流式传输不断向 exaudio.play_stream_write 填入播放的音频
播放 task 不断播放传入流式音频
使用 powerkey 按键进行音量减小,点击 boot 按键进行音量增加
4、play_tts: 支持文字转普通话输出,需要固件支持:
播放一个 TTS
点 powerkey 按键进行 tts 的音色切换
支持五种音色:51 – 许久、52 – 许多、53 – 晓萍、54 – 唐老鸭、55 – 许宝宝 - 点击 boot 按键停止音频播放
5、record_file: 录音到文件,仅支持 PCM 格式
主程序录音到/record.amr 文件
使用 powerkey 按键进行录音音量减小
点击 boot 按键进行录音音量增加
6、record_stream: 流式录音,仅支持 PCM。
主程序录音进行流式录音
录音过程中不断的进行 recode_data_callback 回调,回调内容为音频流的地址和长度
7、sample-6s.mp3/10.amr: 用于测试本地 mp3 和 amr 文件播放
8、test.pcm: 用于测试 pcm 流式播放(实际可以云端下载)
三、准备硬件环境
1、Air8000 开发板 + 喇叭或者 Air8000 核心板 +AirAudio_1010 音频配件板 + 喇叭


Air8000 核心板和 AirAudio_1010 配件板的硬件接线方式为:
TYPE-C USB 数据线一根
Air8000 开发板/核心板通过 TYPE-C USB 口供电;
TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
四、准备软件环境
1、Luatools 下载调试工具
2、Air8000 V2016 版本固件,选择支持 TTS 功能的 1、3、5、7、13 或 101、103、105、107、113 号固件。
3、 luatos 需要的脚本和资源文件
4、 lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;
五、API 接口
exaudio 扩展库
exaudio 扩展库是 audio 核心库的扩展库,通过简化配置参数和统一接口设计,让音频开发更简单易用。它完整支持录音、播放音频,播放 TTS(文字转语音)功能,并内置了流式处理、电源管理等高级特性,建议新项目直接使用 exaudio 替代 audio 核心库。
六、代码解析
1、main.lua:主程序入口;

2、play_file.lua: 播放音频文件,可支持 wav,amr,mp3 格式音频

3、play_stream: 流式播放音频,仅支持 PCM 格式

4、play_tts: 支持文字转普通话输出需要固件支持

5、record_file: 录音到文件,仅支持 PCM 格式

6、record_stream: 流式录音,仅支持 PCM

七、运行结果展示
1、play_file.lua: 播放音频文件,可支持 wav,amr,mp3 格式音频

2、play_stream: 流式播放音频,仅支持 PCM 格式

3、play_tts: 支持文字转普通话输出需要固件支持


4、record_file: 录音到文件,仅支持 PCM 格式

5、record_stream: 流式录音,仅支持 PCM

八、总结
本文演示了如何使用 Air8000 开发板或者 Air8000 核心板 +AirAUDIO_1010 音频配件板,实现完整的音频处理功能,涵盖了音频文件播放、流式播放、TTS 语音合成以及文件录音和流式录音两种录音模式,为开发各类语音应用提供了灵活的硬件基础和软件解决方案。
九、常见问题
- 音频播放没有声音怎么办?
检查硬件连接是否正确、确认喇叭是否工作正常、检查音频配件板的供电和使能引脚配置是否正确、验证 GPIO 管脚配置是否正确。
- TTS 播放没有声音怎么办?
确认所使用的固件是否支持 TTS 功能、检查 TTS 播放流程是否正常触发。
- 录音功能无法工作怎么办?
确认麦克风硬件连接正确且完好、检查录音参数格式设置是否支持、确保存储空间充足。
- 流式播放或录音过程中中断怎么办?
检查数据缓冲区管理逻辑确保数据持续供给、确认播放与录音的采样率及格式设置一致、优化系统任务调度避免阻塞。
今天的内容就分享到这里了!