胡成娟
(陜西學前師范學院網絡與信息中心,陜西西安710061)
隨著嵌入式技術的發展,數字音頻采集技術得以廣泛使用。這種背景下,人們對數字音頻產品提出更高的要求,過去運用單一的處理器無法達到系統實時性、高效性等方面的需要。由于現代計算機技術的不斷發展,LabVIEW圖形編程技術得到廣泛使用。LabVIEW是由NI公司研發的虛擬儀器平臺軟件平臺,是運用圖表替代文本創建應用程序的圖形化編程技術[1]。有學者研究就指出,運用LabVIEW軟件中的聲卡子虛擬器能有效控制計算機聲卡,組成具備高采樣精度、采樣率處在48 kHz的數據采集系統,從而滿足數據采集需要,順利實現離線信號處理功能,如:顯示存儲數據、信號時頻域分析等情況[2]。必須注意,若必須對采集數據展開復雜的運算時,上述系統執行效果并不理想。加之,這種采集系統并未配置實時處理功能,就是需要在存儲進程結束后,方可對數據開展后續的處理。因此,為滿足多領域對數據采集實時處理的需求,設計價格低廉、操作靈活的數據采集與處理系統尤為重要。本文以LabVIEW軟件為研究對象,設計一款聲卡數據采集與分析系統,該系統可順利實現聲卡數據采集與處理進程,順利實現邊采集邊處理的功能。此外,由于LabVIEW軟件中的MATLAB節點,促使該系統順利完成復雜的運算任務,展現出較強的普適性,可以擴展至多個領域使用。
聲音作為一種振動波,其包含幅值、頻率等一系列的屬性,可以發生連續性變化。聲卡能夠檢測出聲音信號,并配置相應的信號處理電路,從而把聲音模擬信號轉變為數字信號,提供給PC計算機分析和存儲,也能把聲音數據轉為模擬信號實現輸出[3-4]。其操作流程見圖1。集成于計算機上的聲卡系統運用DSP芯片實現語音信號的采集,在DSP芯片內配備RAM,從而暫時存儲數據信息。同時,也要對數據實施恰當的處理,把聲音信號進行編碼、解碼操作,并依托自帶數模轉換器,達到聲音信號模擬化、數字化間的快速便捷轉換。聲卡數字化聲音接口主要包含直接傳輸與DMA傳送兩種方式,前一種方法是因應用程序直接依托數字信號處理器把聲音數據實施輸入輸出,這些數據均為8位或者16位脈沖編碼調制PCM數據;后一種DMA傳輸方法把聲音信號在數字信號處理器內實現輸入或輸出[5-6]。

圖1 聲卡工作流程圖
聲卡主要包含Line In、Mic In這兩信號的輸入輸出孔,聲音傳感器信號可依托這兩個插孔與聲卡實現連接。如果信號自Mic In輸入,會適當放大所采集的數據。加之,因配備前置放大器,極易引起噪聲且會使得信號過負荷,因此,Line In具有噪聲干擾較小、動態性好等優點,具有推薦應用的價值。而引入聲卡測量信號,可使用音頻或者屏蔽電纜,有效降低噪聲產生的干擾。當輸入的信號電平比聲卡設定的最大輸入電平高,可以在聲卡輸入插孔與被測量信號間安裝衰減器,并把被測信號衰減到不超過聲卡最大的允許輸入電平[7-8]。同時,把聲卡LineOut端口連接到耳機,達到實時監聽聲音信號的目的[9]。信號記錄儀器運用計算機,將內置聲卡當做A/D轉換設置,硬件結構見圖2。

圖2 設計系統的硬件結構
被檢測出來的信號通過傳感器轉變為電荷,信號調整器將電荷轉變成電壓,并放大給數據采集卡。這種情況下,計算機借助LabVIEW軟件對采集的聲音默認設置為其所處操作系統,本次研究應用最普通的聲卡,對高級高級聲卡信號進行采集過程中,要及時關閉混響等特效設置,防止這些噪聲影響最終結果的真實性。虛擬儀器采集信號實現流程如圖3所示。

圖3 信號測試環節流程圖
應用LabVIEW軟件當做虛擬一起的開發工具,必須關注以下兩個方面的內容:1)系統軟件前面板設計與布局:LabVIEW軟件能夠為系統開發人員提供大量前面板控件,以此達到進一步優化設計界面的目的。同時,所設計的系統也支持開發人員自行創造出來新的控件,以此滿足自身操作的各項需求。必須注意,前面板設計要達到布局合理、操作方便等方面的要求。2)程序框圖編程順利實現,主要包含以下幾個模塊的內容,例如:設置聲卡、信號分析、聲音播放等,如圖4所示。

圖4 系統主體部分簡圖
2.2.1 設置聲卡模塊
對音頻數據進行采集前,先要設置相應的參數,例如:設備的ID、采樣模式、每條通道采樣數(512/1024/2048/8196)等,其中,設備ID為從多塊聲卡所組成的多通道數據采集系統,對其進行設置尤為重要。聲卡設置界面如圖5所示。

圖5 聲卡設置面板
2.2.2 數據采集處理模塊
數據采集模塊依據使用者設定的采樣頻率、數量等信息對聲音數據進行采集。系統把采集得到的聲音數據頻域及時域圖像依次顯示在系統前置界面中,并將上述數據保存起來。同時,還要對采集的數據開展分析處理,獲得最終的檢測結果。因PCM波形格式的文件模式信息質量較好,本系統采用這種模式保存音頻數據。聲音數據采集主要運用LabVIEW自帶聲卡采集函數VI進行編寫,這些VI能通過執行函數面板—編程—圖像與聲音中找到,用于讀取或停止聲音輸入、啟動聲音輸入、聲音輸入清零等函數VI[10-11]。對采集數據處理如圖6所示。

圖6 數據處理框圖
2.2.3 信號分析模塊
這個模塊就是對由數據采集模塊采集的數據或由文件重載前采集并存儲的數據,對其展開頻域和時域分析并顯示相應的域圖。此外,用戶也能對數據實施分段處理,甚至對選擇的數據按頻段完成分析。LabVIEW軟件所提供的編程環境及數據流驅動方法,促使用戶能夠直觀看到程序代碼并執行響應操作[13]。本次設計的聲卡數據采集與處理系統充分應用LabVIEW中的多線程技術,為整個系統數據采集、信號分析等操作自動配置優先級,有效預防單線程系統中發生調用阻塞的情況,也不會浪費CPU運行時間。如:用戶的接口操作被分配給一個特定線程,并對其賦予較低的優先級,移動面板窗口這種事件不會對數據采集時間,確保系統穩定、可靠地運行[14-15]。該VI主要通過LabVIEW內的While Loop結構順利實現信號采集、存儲等功能。此外,利用Sound Input、Signal Processing模板內的節點實現信息采集、功率譜分析等處理。而在進行信號分析前添加Butterworth低通濾波器。能夠對原始數據實施平滑濾波處理,有效消除噪聲干擾,提升信噪比。與模擬濾波器比較,這種濾波器無需配置精度較高的組件,且不會由于溫度、濕度改變出現誤差。
2.2.4 設計聲音播放模塊
對于所有采集的聲音信息實施存儲后,便于隨時播放。在播放聲音功能模塊中,主要功能為顯示波形、合理調節音量等。為清晰展示所播放聲音的圖形,波形圖利用兩種顏色的雙通道信號完成處理。聲音播放前面板見圖7。

圖7 聲音播放模塊前面板效果圖
本次實驗中選擇6弦吉他發出的單一聲色,每一根弦所用材料相同,均屬于圓柱狀且處于繃緊狀態,但粗細有所不同,用手指撥動這些弦能夠發出各種不同音色,而同一根弦經過對其振動部分的長度進行控制,達到改變弦發出音色的目的。進行測試過程中,將麥克風設置在距離弦50 mm處并進行固定處理[17]。隨之,有選擇的撥動該吉他各條弦,所產生的音頻信號通過麥克風采集發出9種音色,每一種音色每次采集時間設定為2 s,所采集的數據利用LabVIEW顯示并實施相應的處理。
現實條件下,設定吉他的一個單音色為標準聲音,隨之開展200組相同及不同的檢測,共對9個音色實施相同的測試。其中,把被測和標準聲音信號波形、測試結果保存下來,測試結果見表1。
根據上表的數據可知,在標準的信號3%誤差范圍之內總的檢測準確度大于88%,最高能達到93.76%,表明所設計的聲卡數據采集與處理系統準確度、穩定性比較高,如果適當改變誤差的閥值,其準確度也會發生明顯改變,見圖8。表明如果誤差閥值處在3%~5%范圍之內,測量準確度處于最高狀態。

表1 吉他相同與不同音色測試結果

圖8 平均準確度與誤差閥值的相關性
總之,本次研究設計一款依托LabVIEW多線程技術的聲卡數據采集與處理系統[18],該系統能實時對聲音信號實施采集、分析等操作,即可及時獲得高效的檢測結果,并把所采集的聲音數據及檢測結果均被存儲下列,便于后期進行調用檢驗。在此基礎上,依托對吉他多音色實例測試,本文所設計的系統配備友好的操作界面,總體檢測準確度、穩定性較高,滿足語音識別、噪雜環境聲音監測等方面的需求。