播放TTS、播放音頻文件及錄音是構(gòu)建完整音頻處理功能的三大核心模塊。若想快速掌握并實現(xiàn)完整音頻處理能力,無需深挖底層細(xì)節(jié),只需聚焦“資源加載、播放控制、狀態(tài)同步與異常處理”四大關(guān)鍵環(huán)節(jié)——本文將拆解這三大模塊的核心邏輯,助你高效打通從核心功能到完整功能的實現(xiàn)路徑。
一、概述
本文檔詳細(xì)介紹了基于 Air8000 開發(fā)板或者 Air8000 核心板的音頻功能開發(fā),涵蓋音頻播放、文字轉(zhuǎn)語音、流式音頻處理和錄音等核心功能。通過本指南,開發(fā)者可以快速掌握 Air8000 的音頻處理能力,并實現(xiàn)各種音頻應(yīng)用場景。
錄音功能將麥克風(fēng)采集的模擬聲音信號轉(zhuǎn)換為數(shù)字音頻文件,支持 AMR 和 PCM 格式,可設(shè)置采樣率、時長和存儲路徑,適用于語音記錄、語音識別等場景。
TTS(文字轉(zhuǎn)語音)將文本內(nèi)容實時轉(zhuǎn)換為語音播放,支持中文普通話和多種發(fā)音風(fēng)格調(diào)節(jié),可通過特殊標(biāo)記控制語速、語調(diào)、音量等參數(shù),適用于語音提示、內(nèi)容播報等應(yīng)用。
播放音頻文件功能用于播放設(shè)備中的音頻文件,支持 MP3、WAV、AMR 等多種格式,可進(jìn)行單文件或多文件連續(xù)播放,適用于音樂、語音提示等場景。其中流式播放僅支持 PCM 格式。適用于音樂播放、語音提示、告警音效等各種音頻應(yīng)用場景。
二、演示功能概述
1、main.lua:主程序入口文件,加載以下 2-6 文件運行。
2、play_file.lua: 播放音頻文件,可支持 wav,amr,mp3 格式音頻:
自動播放一個 sample-6s.mp3 音樂
點 powerkey 按鍵進(jìn)行音頻切換
點擊 boot 按鍵停止音頻播放
3、play_stream: 流式播放音頻,僅支持 PCM 格式:
創(chuàng)建一個播放流式音頻 task(task_audio)
創(chuàng)建一個模擬獲取流式音頻的 task(audio_get_data)
此 task 通過流式傳輸不斷向 exaudio.play_stream_write 填入播放的音頻
播放 task 不斷播放傳入流式音頻
使用 powerkey 按鍵進(jìn)行音量減小,點擊 boot 按鍵進(jìn)行音量增加
4、play_tts: 支持文字轉(zhuǎn)普通話輸出,需要固件支持:
播放一個 TTS
點 powerkey 按鍵進(jìn)行 tts 的音色切換
支持五種音色:51 – 許久、52 – 許多、53 – 曉萍、54 – 唐老鴨、55 – 許寶寶 - 點擊 boot 按鍵停止音頻播放
5、record_file: 錄音到文件,僅支持 PCM 格式
主程序錄音到/record.amr 文件
使用 powerkey 按鍵進(jìn)行錄音音量減小
點擊 boot 按鍵進(jìn)行錄音音量增加
6、record_stream: 流式錄音,僅支持 PCM。
主程序錄音進(jìn)行流式錄音
錄音過程中不斷的進(jìn)行 recode_data_callback 回調(diào),回調(diào)內(nèi)容為音頻流的地址和長度
7、sample-6s.mp3/10.amr: 用于測試本地 mp3 和 amr 文件播放
8、test.pcm: 用于測試 pcm 流式播放(實際可以云端下載)
三、準(zhǔn)備硬件環(huán)境
1、Air8000 開發(fā)板 + 喇叭或者Air8000 核心板 +AirAudio_1010 音頻配件板 + 喇叭


Air8000 核心板和 AirAudio_1010 配件板的硬件接線方式為:
Air8000 開發(fā)板/核心板通過 TYPE-C USB 口供電;
TYPE-C USB 數(shù)據(jù)線直接插到核心板的 TYPE-C USB 座子,另外一端連接電腦 USB 口;
四、準(zhǔn)備軟件環(huán)境
1、Luatools 下載調(diào)試工具
2、Air8000 V2016 版本固件,選擇支持 TTS 功能的 1、3、5、7、13 或 101、103、105、107、113 號固件。
3、 luatos 需要的腳本和資源文件
4、 lib 腳本文件:使用 Luatools 燒錄時,勾選 添加默認(rèn) lib 選項,使用默認(rèn) lib 腳本文件;
exaudio 擴展庫
exaudio 擴展庫是 audio 核心庫的擴展庫,通過簡化配置參數(shù)和統(tǒng)一接口設(shè)計,讓音頻開發(fā)更簡單易用。它完整支持錄音、播放音頻,播放 TTS(文字轉(zhuǎn)語音)功能,并內(nèi)置了流式處理、電源管理等高級特性,建議新項目直接使用 exaudio 替代 audio 核心庫。
六、代碼解析
1、main.lua:主程序入口;

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

3、play_stream: 流式播放音頻,僅支持 PCM 格式

4、play_tts: 支持文字轉(zhuǎn)普通話輸出需要固件支持

5、record_file: 錄音到文件,僅支持 PCM 格式

6、record_stream: 流式錄音,僅支持 PCM

七、運行結(jié)果展示
1、play_file.lua: 播放音頻文件,可支持 wav,amr,mp3 格式音頻

2、play_stream: 流式播放音頻,僅支持 PCM 格式

3、play_tts: 支持文字轉(zhuǎn)普通話輸出需要固件支持


4、record_file: 錄音到文件,僅支持 PCM 格式

5、record_stream: 流式錄音,僅支持 PCM

八、總結(jié)
本文演示了如何使用 Air8000 開發(fā)板或者 Air8000 核心板 +AirAUDIO_1010 音頻配件板,實現(xiàn)完整的音頻處理功能,涵蓋了音頻文件播放、流式播放、TTS 語音合成以及文件錄音和流式錄音兩種錄音模式,為開發(fā)各類語音應(yīng)用提供了靈活的硬件基礎(chǔ)和軟件解決方案。
九、常見問題
1. 音頻播放沒有聲音怎么辦?
檢查硬件連接是否正確、確認(rèn)喇叭是否工作正常、檢查音頻配件板的供電和使能引腳配置是否正確、驗證 GPIO 管腳配置是否正確。
2. TTS 播放沒有聲音怎么辦?
確認(rèn)所使用的固件是否支持 TTS 功能、檢查 TTS 播放流程是否正常觸發(fā)。
3. 錄音功能無法工作怎么辦?
確認(rèn)麥克風(fēng)硬件連接正確且完好、檢查錄音參數(shù)格式設(shè)置是否支持、確保存儲空間充足。
4. 流式播放或錄音過程中中斷怎么辦?
檢查數(shù)據(jù)緩沖區(qū)管理邏輯確保數(shù)據(jù)持續(xù)供給、確認(rèn)播放與錄音的采樣率及格式設(shè)置一致、優(yōu)化系統(tǒng)任務(wù)調(diào)度避免阻塞。
今天的內(nèi)容就分享到這里了!
審核編輯 黃宇
-
音頻處理
+關(guān)注
關(guān)注
0文章
194瀏覽量
18324 -
TTS
+關(guān)注
關(guān)注
0文章
65瀏覽量
11571
發(fā)布評論請先 登錄
HarmonyOS實戰(zhàn)開發(fā)-如何實現(xiàn)音頻低時延錄制和播放,AudioVivid音樂播放的相關(guān)功能
音頻文件(WAV)特技播放的原理及實現(xiàn)
基于HarmonyOS Player,實現(xiàn)音頻的播放、管理控制和采集
如何在FETMX8MQ-C核心板上實現(xiàn)低功耗音頻播放
【1024平頭哥開發(fā)套件開發(fā)體驗】CB5654 開發(fā)實現(xiàn)用TTS播放文件內(nèi)容!
如何通過OpenHarmony的音頻模塊實現(xiàn)錄音變速功能?
HarmonyOS音頻開發(fā)指導(dǎo):使用OpenSL ES開發(fā)音頻播放功能
采用SPCE061A設(shè)計的SIO實現(xiàn)數(shù)碼錄音及播放
你要的錄音&播放錄音功能,直接用!Air201資產(chǎn)定位模組LuatOS快速入門
速通音頻處理:掌握TTS播放、文件播放與錄音核心,實現(xiàn)完整功能
評論