韋善學 姜召文 張子敬
摘要:音頻數(shù)據(jù)采集與傳輸系統(tǒng)在設備故障診斷中有重要作用,音頻傳輸要求低延遲、高可靠性。本文提出一種基于5G通信的音頻數(shù)據(jù)采集與傳輸系統(tǒng),對目標聲音進行高速采集與壓縮,并通過5G無線網(wǎng)絡進行傳輸,基于Linux系統(tǒng)編寫Qt應用程序,實現(xiàn)實時性高、可靠性強的音頻數(shù)據(jù)采集與傳輸。
關鍵詞:5G通信;音頻;樹莓派;Qt
引言
聲音是由物體振動產(chǎn)生的聲波。設備在故障狀態(tài)下發(fā)出的聲音與正常狀態(tài)時的有明顯差異,聲音的獲取方式簡單,成本低,因此,基于聲音的設備故障檢測方法逐步成為研究的熱點[1]。音頻數(shù)據(jù)采集系統(tǒng)的安裝位置通常需要根據(jù)目標位置確定,音頻數(shù)據(jù)的傳輸方式應為無線網(wǎng)絡,以便于音頻數(shù)據(jù)采集系統(tǒng)的安裝和部署。傳統(tǒng)的無線網(wǎng)絡延遲高、可靠性差,無法滿足音頻數(shù)據(jù)實時傳輸?shù)囊蟆?/p>
5G通信是最新一代的無線通信網(wǎng)絡,通過提高通信頻率、設計大規(guī)模天線陣列、改善網(wǎng)絡結(jié)構(gòu)等方法,實現(xiàn)低延遲和高可靠的無線通信,適合于對無線通信質(zhì)量要求高的應用。5G通信頻段的Sub6G頻段中有一部分是兼容2G/3G/4G網(wǎng)絡的,其他頻段是5G獨有的頻段,目前我國三大運行商使用的5G頻段均在Sub6G頻段。
結(jié)合5G通信的特點,為實現(xiàn)低延遲、高可靠的音頻數(shù)據(jù)采集和傳輸,本文提出一種5G通信的音頻數(shù)據(jù)采集與傳輸系統(tǒng)。
1 基于5G通信的音頻數(shù)據(jù)采集與傳輸系統(tǒng)硬件設計
硬件設計框圖如圖 1所示,以樹莓派4B為主控電路,通過USB接口與5G模塊相連,5G模板選用SIM8200EA模塊,實現(xiàn)音頻數(shù)據(jù)的無線傳輸。聲音信號通過麥克風轉(zhuǎn)化為電信號,經(jīng)過HS-100B聲卡采集,通過USB接口將數(shù)據(jù)實時傳輸至樹莓派4B。
SIM8200EA是支持5G NSA/SA的多波段無線收發(fā)器,最大數(shù)據(jù)傳輸速率為4Gbps,兼容UART、PCIe、USB3.1等通信接口,采用M.2小型封裝,適合于系統(tǒng)集成。支持 TCP/IP/IPV4 /IPV6/Multi-PDP/FTP/ FTPS/HTTP/HTTPS/MQTTS/DNS/SSL3.0 等通信協(xié)議與云平臺進行數(shù)據(jù)交互。可采用AT指令進行無線數(shù)據(jù)收發(fā)的控制,便于與各類嵌入式系統(tǒng)連接。
2 基于5G通信的音頻數(shù)據(jù)采集與傳輸系統(tǒng)軟件設計
2.1 軟件總體框圖
基于Linux系統(tǒng)的Qt開發(fā)平臺[2]進行軟件開發(fā),軟件流程圖如圖 2所示。程序啟動后首先進行Qt組件初始化,包括窗口類、多媒體類、網(wǎng)絡套接字類、多線程類、按鍵類、定時器類等的初始化,同時,為了壓縮采集到的音頻數(shù)據(jù),加載并初始化FFMPEG模塊。初始化完成后,啟動三個線程,分別執(zhí)行音頻采集參數(shù)設置與音頻采集、FFMPEG音頻壓縮和音頻數(shù)據(jù)網(wǎng)絡傳輸任務。
2.2 Qt開發(fā)平臺
Qt是一款跨平臺C++圖形用戶界面應用程序開發(fā)框架,面向?qū)ο缶幊蹋稍赪indows、Linux和Mac OS上進行開發(fā)和運行。Qt基于信號與槽的機制進行信號與函數(shù)之間的安全關聯(lián),便于各個元件之間的協(xié)同工作。Qt提供了文件、輸入輸出、時間日期等多達250個以上的C++類,可以滿足大多數(shù)的應用程序需求。
2.3 音頻數(shù)據(jù)采集程序
首先實例化AudioRecorder類,指定好聲卡設備,設置編解碼器為“audio/PCM”,碼率為96000bps,聲音質(zhì)量為高,采樣率為界面設置的采樣率。在開始采集按鈕的clicked槽函數(shù)中啟動聲音采集,并在每采集一幀聲音結(jié)束后拋出待壓縮信號。當達到聲音采集時長時,定時器發(fā)出信號,在相應的槽函數(shù)中停止聲音采集。
2.4 FFMPEG音頻壓縮程序
FFMPEG是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序[3]。新版本的FFMPEG無需注冊編解碼器,通過avcodec_find_encoder_by_name("libfdk_aac")函數(shù)查找到AAC編解碼器。當接收到待壓縮信號后,PCM文件使用QFile類讀入,使用標準庫的memcpy函數(shù)將PCM的編碼音頻拷貝至AVFrame的數(shù)據(jù)緩存中,調(diào)用avcodec_encode_audio2函數(shù)進行數(shù)據(jù)壓縮。完成壓縮后,拋出待網(wǎng)絡傳輸?shù)男盘枴?/p>
2.5 網(wǎng)絡數(shù)據(jù)傳輸程序
為保證通信實時性,使用UDPSocket類進行音頻數(shù)據(jù)傳輸[4]。實例化QUdpSocket類后等待網(wǎng)絡傳輸信號。收到該信號后,使用writeDatagram函數(shù)將壓縮后的音頻數(shù)據(jù)發(fā)送至上位機。
2.6 界面設計
Qt的可視化UI設計器可以便捷的設計界面,做到“所見即所得”。分別添加音頻設備下拉框、音頻采樣頻率下拉框、音頻采樣時長編輯框、狀態(tài)反饋框、搜索設備按鈕、開始采集按鈕和停止采集按鈕等控件,采用網(wǎng)格型布局,設計出簡潔的界面。通過信號與槽功能添加各個控件對應的信號與槽函數(shù),實現(xiàn)人機交互。
為了便于部署和維護,采用3.5英寸觸摸屏幕作為顯示器,安裝對應的LCD顯示器和觸摸驅(qū)動后,切換為LCD顯示即可。軟件的運行效果如圖 3所示。通過音頻設備下拉框可選擇對應的聲卡,同時該聲卡所支持的采樣頻率可實時顯示在采樣頻率下拉框中。音頻時長可任意設置,默認為5分鐘。音頻壓縮格式為AAC,該格式可保證最佳音質(zhì)的前提下盡可能壓縮數(shù)據(jù),是目前主流的音頻壓縮方式。
3 結(jié)束語
本文針對基于5G通信的音頻數(shù)據(jù)采集與傳輸系統(tǒng)進行研究,結(jié)合5G通信的低延遲和高可靠性的特點,在樹莓派硬件平臺上,利用Linux系統(tǒng)Qt開發(fā)平臺設計了音頻采集程序、FFMPEG的音頻壓縮程序、網(wǎng)絡數(shù)據(jù)壓縮程序,并設計了人機交互界面,軟件流暢的運行在樹莓派系統(tǒng)上,實現(xiàn)音頻的采集、壓縮和通過5G網(wǎng)絡傳輸至上位機的功能,為基于5G通信的音頻數(shù)據(jù)采集與傳輸應用提供了有價值的參考。
參考文獻
[1]蔡文偉,黃鍵,李偉光,趙學智,張景潤,孫振忠.基于聲音信號的微型電機故障診斷方法研究[J].機床與液壓,2020,48(23):190-195.
[2]曾明輝,談宏華,邢栢豪,郭良等.基于QT和智能網(wǎng)關的智能家居系統(tǒng)設計[J].自動化與儀表,2021,36(10):28-32.
[3]程偉倫,唐恒飛.基于FFmpeg的車載嵌入式流媒體終端的研究與實現(xiàn)[J].農(nóng)業(yè)裝備與車輛工程,2021,59(08):120-122.
[4]彭漁露,馬莉,王百彥,強帆.一種實時數(shù)據(jù)丟包問題快速定位方法[J].現(xiàn)代計算機,2021,27(28):55-59.
作者簡介:韋善學(1984.10-)男,壯族,廣西東蘭縣人,本科,中國鐵塔股份有限公司河池市分公司,研究方向:通信領域