胡成娟
(陜西學(xué)前師范學(xué)院網(wǎng)絡(luò)與信息中心,陜西西安710061)
隨著嵌入式技術(shù)的發(fā)展,數(shù)字音頻采集技術(shù)得以廣泛使用。這種背景下,人們對數(shù)字音頻產(chǎn)品提出更高的要求,過去運用單一的處理器無法達(dá)到系統(tǒng)實時性、高效性等方面的需要。由于現(xiàn)代計算機技術(shù)的不斷發(fā)展,LabVIEW圖形編程技術(shù)得到廣泛使用。LabVIEW是由NI公司研發(fā)的虛擬儀器平臺軟件平臺,是運用圖表替代文本創(chuàng)建應(yīng)用程序的圖形化編程技術(shù)[1]。有學(xué)者研究就指出,運用LabVIEW軟件中的聲卡子虛擬器能有效控制計算機聲卡,組成具備高采樣精度、采樣率處在48 kHz的數(shù)據(jù)采集系統(tǒng),從而滿足數(shù)據(jù)采集需要,順利實現(xiàn)離線信號處理功能,如:顯示存儲數(shù)據(jù)、信號時頻域分析等情況[2]。必須注意,若必須對采集數(shù)據(jù)展開復(fù)雜的運算時,上述系統(tǒng)執(zhí)行效果并不理想。加之,這種采集系統(tǒng)并未配置實時處理功能,就是需要在存儲進(jìn)程結(jié)束后,方可對數(shù)據(jù)開展后續(xù)的處理。因此,為滿足多領(lǐng)域?qū)?shù)據(jù)采集實時處理的需求,設(shè)計價格低廉、操作靈活的數(shù)據(jù)采集與處理系統(tǒng)尤為重要。本文以LabVIEW軟件為研究對象,設(shè)計一款聲卡數(shù)據(jù)采集與分析系統(tǒng),該系統(tǒng)可順利實現(xiàn)聲卡數(shù)據(jù)采集與處理進(jìn)程,順利實現(xiàn)邊采集邊處理的功能。此外,由于LabVIEW軟件中的MATLAB節(jié)點,促使該系統(tǒng)順利完成復(fù)雜的運算任務(wù),展現(xiàn)出較強的普適性,可以擴(kuò)展至多個領(lǐng)域使用。
聲音作為一種振動波,其包含幅值、頻率等一系列的屬性,可以發(fā)生連續(xù)性變化。聲卡能夠檢測出聲音信號,并配置相應(yīng)的信號處理電路,從而把聲音模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號,提供給PC計算機分析和存儲,也能把聲音數(shù)據(jù)轉(zhuǎn)為模擬信號實現(xiàn)輸出[3-4]。其操作流程見圖1。集成于計算機上的聲卡系統(tǒng)運用DSP芯片實現(xiàn)語音信號的采集,在DSP芯片內(nèi)配備RAM,從而暫時存儲數(shù)據(jù)信息。同時,也要對數(shù)據(jù)實施恰當(dāng)?shù)奶幚?,把聲音信號進(jìn)行編碼、解碼操作,并依托自帶數(shù)模轉(zhuǎn)換器,達(dá)到聲音信號模擬化、數(shù)字化間的快速便捷轉(zhuǎn)換。聲卡數(shù)字化聲音接口主要包含直接傳輸與DMA傳送兩種方式,前一種方法是因應(yīng)用程序直接依托數(shù)字信號處理器把聲音數(shù)據(jù)實施輸入輸出,這些數(shù)據(jù)均為8位或者16位脈沖編碼調(diào)制PCM數(shù)據(jù);后一種DMA傳輸方法把聲音信號在數(shù)字信號處理器內(nèi)實現(xiàn)輸入或輸出[5-6]。
圖1 聲卡工作流程圖
聲卡主要包含Line In、Mic In這兩信號的輸入輸出孔,聲音傳感器信號可依托這兩個插孔與聲卡實現(xiàn)連接。如果信號自Mic In輸入,會適當(dāng)放大所采集的數(shù)據(jù)。加之,因配備前置放大器,極易引起噪聲且會使得信號過負(fù)荷,因此,Line In具有噪聲干擾較小、動態(tài)性好等優(yōu)點,具有推薦應(yīng)用的價值。而引入聲卡測量信號,可使用音頻或者屏蔽電纜,有效降低噪聲產(chǎn)生的干擾。當(dāng)輸入的信號電平比聲卡設(shè)定的最大輸入電平高,可以在聲卡輸入插孔與被測量信號間安裝衰減器,并把被測信號衰減到不超過聲卡最大的允許輸入電平[7-8]。同時,把聲卡LineOut端口連接到耳機,達(dá)到實時監(jiān)聽聲音信號的目的[9]。信號記錄儀器運用計算機,將內(nèi)置聲卡當(dāng)做A/D轉(zhuǎn)換設(shè)置,硬件結(jié)構(gòu)見圖2。
圖2 設(shè)計系統(tǒng)的硬件結(jié)構(gòu)
被檢測出來的信號通過傳感器轉(zhuǎn)變?yōu)殡姾?,信號調(diào)整器將電荷轉(zhuǎn)變成電壓,并放大給數(shù)據(jù)采集卡。這種情況下,計算機借助LabVIEW軟件對采集的聲音默認(rèn)設(shè)置為其所處操作系統(tǒng),本次研究應(yīng)用最普通的聲卡,對高級高級聲卡信號進(jìn)行采集過程中,要及時關(guān)閉混響等特效設(shè)置,防止這些噪聲影響最終結(jié)果的真實性。虛擬儀器采集信號實現(xiàn)流程如圖3所示。
圖3 信號測試環(huán)節(jié)流程圖
應(yīng)用LabVIEW軟件當(dāng)做虛擬一起的開發(fā)工具,必須關(guān)注以下兩個方面的內(nèi)容:1)系統(tǒng)軟件前面板設(shè)計與布局:LabVIEW軟件能夠為系統(tǒng)開發(fā)人員提供大量前面板控件,以此達(dá)到進(jìn)一步優(yōu)化設(shè)計界面的目的。同時,所設(shè)計的系統(tǒng)也支持開發(fā)人員自行創(chuàng)造出來新的控件,以此滿足自身操作的各項需求。必須注意,前面板設(shè)計要達(dá)到布局合理、操作方便等方面的要求。2)程序框圖編程順利實現(xiàn),主要包含以下幾個模塊的內(nèi)容,例如:設(shè)置聲卡、信號分析、聲音播放等,如圖4所示。
圖4 系統(tǒng)主體部分簡圖
2.2.1 設(shè)置聲卡模塊
對音頻數(shù)據(jù)進(jìn)行采集前,先要設(shè)置相應(yīng)的參數(shù),例如:設(shè)備的ID、采樣模式、每條通道采樣數(shù)(512/1024/2048/8196)等,其中,設(shè)備ID為從多塊聲卡所組成的多通道數(shù)據(jù)采集系統(tǒng),對其進(jìn)行設(shè)置尤為重要。聲卡設(shè)置界面如圖5所示。
圖5 聲卡設(shè)置面板
2.2.2 數(shù)據(jù)采集處理模塊
數(shù)據(jù)采集模塊依據(jù)使用者設(shè)定的采樣頻率、數(shù)量等信息對聲音數(shù)據(jù)進(jìn)行采集。系統(tǒng)把采集得到的聲音數(shù)據(jù)頻域及時域圖像依次顯示在系統(tǒng)前置界面中,并將上述數(shù)據(jù)保存起來。同時,還要對采集的數(shù)據(jù)開展分析處理,獲得最終的檢測結(jié)果。因PCM波形格式的文件模式信息質(zhì)量較好,本系統(tǒng)采用這種模式保存音頻數(shù)據(jù)。聲音數(shù)據(jù)采集主要運用LabVIEW自帶聲卡采集函數(shù)VI進(jìn)行編寫,這些VI能通過執(zhí)行函數(shù)面板—編程—圖像與聲音中找到,用于讀取或停止聲音輸入、啟動聲音輸入、聲音輸入清零等函數(shù)VI[10-11]。對采集數(shù)據(jù)處理如圖6所示。
圖6 數(shù)據(jù)處理框圖
2.2.3 信號分析模塊
這個模塊就是對由數(shù)據(jù)采集模塊采集的數(shù)據(jù)或由文件重載前采集并存儲的數(shù)據(jù),對其展開頻域和時域分析并顯示相應(yīng)的域圖。此外,用戶也能對數(shù)據(jù)實施分段處理,甚至對選擇的數(shù)據(jù)按頻段完成分析。LabVIEW軟件所提供的編程環(huán)境及數(shù)據(jù)流驅(qū)動方法,促使用戶能夠直觀看到程序代碼并執(zhí)行響應(yīng)操作[13]。本次設(shè)計的聲卡數(shù)據(jù)采集與處理系統(tǒng)充分應(yīng)用LabVIEW中的多線程技術(shù),為整個系統(tǒng)數(shù)據(jù)采集、信號分析等操作自動配置優(yōu)先級,有效預(yù)防單線程系統(tǒng)中發(fā)生調(diào)用阻塞的情況,也不會浪費CPU運行時間。如:用戶的接口操作被分配給一個特定線程,并對其賦予較低的優(yōu)先級,移動面板窗口這種事件不會對數(shù)據(jù)采集時間,確保系統(tǒng)穩(wěn)定、可靠地運行[14-15]。該VI主要通過LabVIEW內(nèi)的While Loop結(jié)構(gòu)順利實現(xiàn)信號采集、存儲等功能。此外,利用Sound Input、Signal Processing模板內(nèi)的節(jié)點實現(xiàn)信息采集、功率譜分析等處理。而在進(jìn)行信號分析前添加Butterworth低通濾波器。能夠?qū)υ紨?shù)據(jù)實施平滑濾波處理,有效消除噪聲干擾,提升信噪比。與模擬濾波器比較,這種濾波器無需配置精度較高的組件,且不會由于溫度、濕度改變出現(xiàn)誤差。
2.2.4 設(shè)計聲音播放模塊
對于所有采集的聲音信息實施存儲后,便于隨時播放。在播放聲音功能模塊中,主要功能為顯示波形、合理調(diào)節(jié)音量等。為清晰展示所播放聲音的圖形,波形圖利用兩種顏色的雙通道信號完成處理。聲音播放前面板見圖7。
圖7 聲音播放模塊前面板效果圖
本次實驗中選擇6弦吉他發(fā)出的單一聲色,每一根弦所用材料相同,均屬于圓柱狀且處于繃緊狀態(tài),但粗細(xì)有所不同,用手指撥動這些弦能夠發(fā)出各種不同音色,而同一根弦經(jīng)過對其振動部分的長度進(jìn)行控制,達(dá)到改變弦發(fā)出音色的目的。進(jìn)行測試過程中,將麥克風(fēng)設(shè)置在距離弦50 mm處并進(jìn)行固定處理[17]。隨之,有選擇的撥動該吉他各條弦,所產(chǎn)生的音頻信號通過麥克風(fēng)采集發(fā)出9種音色,每一種音色每次采集時間設(shè)定為2 s,所采集的數(shù)據(jù)利用LabVIEW顯示并實施相應(yīng)的處理。
現(xiàn)實條件下,設(shè)定吉他的一個單音色為標(biāo)準(zhǔn)聲音,隨之開展200組相同及不同的檢測,共對9個音色實施相同的測試。其中,把被測和標(biāo)準(zhǔn)聲音信號波形、測試結(jié)果保存下來,測試結(jié)果見表1。
根據(jù)上表的數(shù)據(jù)可知,在標(biāo)準(zhǔn)的信號3%誤差范圍之內(nèi)總的檢測準(zhǔn)確度大于88%,最高能達(dá)到93.76%,表明所設(shè)計的聲卡數(shù)據(jù)采集與處理系統(tǒng)準(zhǔn)確度、穩(wěn)定性比較高,如果適當(dāng)改變誤差的閥值,其準(zhǔn)確度也會發(fā)生明顯改變,見圖8。表明如果誤差閥值處在3%~5%范圍之內(nèi),測量準(zhǔn)確度處于最高狀態(tài)。
表1 吉他相同與不同音色測試結(jié)果
圖8 平均準(zhǔn)確度與誤差閥值的相關(guān)性
總之,本次研究設(shè)計一款依托LabVIEW多線程技術(shù)的聲卡數(shù)據(jù)采集與處理系統(tǒng)[18],該系統(tǒng)能實時對聲音信號實施采集、分析等操作,即可及時獲得高效的檢測結(jié)果,并把所采集的聲音數(shù)據(jù)及檢測結(jié)果均被存儲下列,便于后期進(jìn)行調(diào)用檢驗。在此基礎(chǔ)上,依托對吉他多音色實例測試,本文所設(shè)計的系統(tǒng)配備友好的操作界面,總體檢測準(zhǔn)確度、穩(wěn)定性較高,滿足語音識別、噪雜環(huán)境聲音監(jiān)測等方面的需求。