剛接觸音頻開發時,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 配件板的硬件接線方式為:
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 腳本文件;
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 語音合成以及文件錄音和流式錄音兩種錄音模式,為開發各類語音應用提供了靈活的硬件基礎和軟件解決方案。
九、常見問題
1. 音頻播放沒有聲音怎么辦?
檢查硬件連接是否正確、確認喇叭是否工作正常、檢查音頻配件板的供電和使能引腳配置是否正確、驗證 GPIO 管腳配置是否正確。
2. TTS 播放沒有聲音怎么辦?
確認所使用的固件是否支持 TTS 功能、檢查 TTS 播放流程是否正常觸發。
3. 錄音功能無法工作怎么辦?
確認麥克風硬件連接正確且完好、檢查錄音參數格式設置是否支持、確保存儲空間充足。
4. 流式播放或錄音過程中中斷怎么辦?
檢查數據緩沖區管理邏輯確保數據持續供給、確認播放與錄音的采樣率及格式設置一致、優化系統任務調度避免阻塞。
今天的內容就分享到這里了!
審核編輯 黃宇
-
音頻處理
+關注
關注
0文章
162瀏覽量
18294 -
TTS
+關注
關注
0文章
62瀏覽量
11546
發布評論請先 登錄
【正點原子STM32N647開發板試用】--音頻錄音與播放
【振南ZN-X開發板(51版)】VS1003錄音到FlashROM 文件播放[簡易Flash錄音筆]
基于HarmonyOS Player,實現音頻的播放、管理控制和采集
【1024平頭哥開發套件開發體驗】CB5654 開發實現用TTS播放文件內容!
如何通過OpenHarmony的音頻模塊實現錄音變速功能?
HarmonyOS音頻開發指導:使用OpenSL ES開發音頻播放功能
基于ESP32構建的音頻播放器
你要的錄音&播放錄音功能,直接用!Air201資產定位模組LuatOS快速入門
新手速成:掌握TTS/文件播放/錄音核心,構建完整音頻處理功能
評論