周建芳, 陳 新
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州350002)
計算機聲卡是一種常用的數(shù)據(jù)采集卡。所謂“虛擬儀器”就是借助于計算機的軟硬件平臺,并配以少量輔助設(shè)備(或器件),構(gòu)成功能適合用戶要求的儀器。系統(tǒng)操作直觀、方便、靈活,如同在真實儀器上的一樣[1]。實驗室虛擬儀器工程平臺 (LabVIEW,Laboratory Virtual Instrument Engineering Workbench)是一個圖形化編程系統(tǒng),集開發(fā)、調(diào)試、運行于一體,廣泛應(yīng)用于數(shù)據(jù)采集與控制、測試等領(lǐng)域[2]?;诼暱ǖ囊纛l信號分析處理系統(tǒng),是在LabVIEW環(huán)境下利用聲卡采集信號并對信號進(jìn)行分析與處理。系統(tǒng)價格低、實用性好,在實驗室應(yīng)用與工程測量中具有廣闊的前景。
聲卡適合于采集頻率在20~20 000 Hz范圍內(nèi)的音頻信號。LabVIEW提供了豐富的函數(shù)庫和子例程,還有專用的代碼庫,開發(fā)的虛擬儀器系統(tǒng)靈活性高,功能強大?;诼暱ǖ奶摂M音頻信號分析處理系統(tǒng)應(yīng)該達(dá)到以下目標(biāo):被測音頻信號由話筒采集,聲卡實現(xiàn)A/D 轉(zhuǎn)換,經(jīng)LabVIEW開發(fā)的虛擬儀器進(jìn)行時域分析、頻域分析和嘯叫抑制處理。且在系統(tǒng)中增加了錄音與回放部分,可以直接調(diào)用做比對分析。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框
LabVIEW是一個基于G語言(Graphics Language)的測試系統(tǒng)軟件開發(fā)平臺。LabVIEW將廣泛的數(shù)據(jù)采集、分析與顯示功能集中在同一個環(huán)境中,用戶通過定義和連接代表各種功能模塊的圖標(biāo)創(chuàng)建虛擬儀器。
LabVIEW平臺開發(fā)的虛擬儀器軟件包括兩個方面:前面板和程序框圖。前面板是模仿真實儀器的面板,用于設(shè)置輸入和顯示輸出。前面板中放置的控件在程序框圖中都有相應(yīng)的對象。程序框圖用 G語言編寫。程序由端口、圖框、節(jié)點與連線構(gòu)成[2]。
作為語音信號與計算機的通用接口,聲卡的基本工作流程如圖2所示。
圖2 聲卡的基本工作流程
聲卡具有16 位以上的量化精度,且價格低廉、兼容性好等優(yōu)點,其主要技術(shù)參數(shù)包括:采樣頻率、采樣位數(shù)和緩沖區(qū)大小[3]。設(shè)置緩沖區(qū),可以有效地保證聲卡與CPU的協(xié)調(diào)工作,一般使用的默認(rèn)值是8KB(8192字節(jié))。
在LabVIEW環(huán)境中有專門的聲音子選板,集中在Sound VI下,有3大模塊Sound Input、Sound Output和文件。聲卡的參數(shù)設(shè)置由Sound Input模塊中的SI CONFIG函數(shù)完成,提供與聲卡相關(guān)的函數(shù),這些函數(shù)節(jié)點直接與聲卡驅(qū)動聯(lián)系,能夠快速對聲卡進(jìn)行訪問和操作,執(zhí)行性能高[4]。
根據(jù)VI結(jié)構(gòu)化的特征,系統(tǒng)采用友好的圖形界面與用戶進(jìn)行交互。系統(tǒng)的功能模塊包括:音頻采集與存儲、時域分析、頻域分析、嘯叫抑制和錄音與回放。以下對各功能模塊進(jìn)行簡要說明[5]。
利用LabVIEW中相關(guān)的函數(shù)節(jié)點,可以實現(xiàn)對音頻信號的采集與存儲。根據(jù)設(shè)置的聲音格式參數(shù)從聲卡獲得數(shù)據(jù)。采集到的數(shù)據(jù)及其特性以波形圖呈現(xiàn)于用戶面前,且采集結(jié)束后,可以播放采集到的.wav文件。
音頻信號采集過程分為初始化配置聲卡、采樣、釋放聲卡。由LabVIEW提供的SI CONFIG函數(shù)、SI START函數(shù)、SI READ函數(shù)、SI STOP函數(shù)和SI CLEAR函數(shù)完成。程序運行前先對設(shè)備ID、每通道采樣數(shù)、采樣模式、聲音格式參數(shù)進(jìn)行設(shè)置。聲卡可設(shè)置為單/雙通道,則運行音頻采集與存儲程序?qū)崿F(xiàn)單/雙通道的音頻采集;而無信號輸入時采集的是系統(tǒng)噪聲。數(shù)據(jù)存儲功能是通過 Sound File Write.vi(寫入波形至文件)實現(xiàn),在前面板要設(shè)置信號存儲路徑,一般為采集的音頻波形文件命名時默認(rèn)擴展名是.wav[6]。
音頻時域分析.vi可直接調(diào)用音頻采集和存儲.vi所采集的信號文件或其他待測的音頻文件,測量其時域參數(shù)并顯示相應(yīng)的波形圖。LabVIEW提供了大量的信號時域分析函數(shù),如平滑濾波、加窗函數(shù)等。由于話筒采集的音頻信號中含有周圍環(huán)境的噪聲,因此需要對采集的數(shù)據(jù)作濾波處理。程序中選用帶通濾波器函數(shù),高、低截止頻率可根據(jù)被測對象固有頻率的大小合理選擇。通過時域分析,可測得幅度周期平均值、峰峰值(波峰/ 波谷檢測)、信號的平均頻率、均方值、方差等參數(shù)。還可以利用LabVIEW強大的信號處理功能,對信號進(jìn)行時域內(nèi)其他分析。
對信號進(jìn)行時域分析有時不能反映信號的全部特征,因此要對信號進(jìn)行頻域分析,LabVIEW提供了豐富的信號頻域分析節(jié)點。通過Sound Input Read讀取輸入的聲音波形,將波形輸入到FFT Spectrum. vi模塊、FFT Power Specstrum. vi模塊和其他頻譜測量模塊,一般測量頻譜需要對輸入信號做加窗處理,常選擇Hanning窗。通過頻域分析模塊后分別輸出未加窗的幅頻譜和相頻譜、分析后的功率譜波形、加窗后的幅頻譜。另外為了便于觀察,還輸出處理前的時域波形[5]。圖3為一被測音頻信號的頻域分析圖。
圖3 音頻頻域分析
話筒拾音的音響系統(tǒng),都有反饋嘯叫的可能。實際測試對講系統(tǒng)的雙向通話時,嵌入式硬件終端的話筒與喇叭距離太近,喇叭輸出的聲音直接被話筒拾音而產(chǎn)生嘯叫。話筒嘯叫的危害很大,直接影響聽者的情緒。嘯叫時輸出的聲壓很大,破壞效果,影響語音質(zhì)量。
聲反饋嘯叫實際上是一個或多個音頻頻率點在聲學(xué)路徑上形成了正反饋,導(dǎo)致一個或多個音頻頻率點被過分放大后通過揚聲器送出“刺耳”的周期頻率聲音。即原理是音頻系統(tǒng)存在正反饋形成的振蕩。嘯叫產(chǎn)生模型是:傳聲器拾音——前置放大——功率放大——揚聲器——聲學(xué)直達(dá)或反射路徑——傳聲器拾音。目前在擴聲系統(tǒng)中對嘯叫的抑制方法有很多,如移相法、移頻法、均衡法等。雖然抑制嘯叫手段有所不同, 但都是為了破壞聲音信號正反饋而形成振蕩。移頻方式抑制嘯叫的能力比較顯著。移頻就是移動頻率,將音頻信號的頻譜整體搬移幾個赫茲,從而破壞構(gòu)成聲反饋的條件,減小嘯叫發(fā)生的可能性,從而顯著提高擴聲系統(tǒng)增益[7]。它適用于各種類型的擴聲系統(tǒng)中,具有極大的實用價值。
LabVIEW環(huán)境下信號移頻處理過程如下:輸入信號——窗函數(shù)選擇——FFT——截取雙邊譜——單邊譜移位——重構(gòu)雙邊譜——IFFT——輸出信號[8]。程序中多次調(diào)用數(shù)組選板提供的數(shù)組函數(shù)[9]。如圖4所示。
圖4 信號移頻處理邏輯框
圖5 嘯叫抑制部分程序框
硬件終端采集語音時,必須采集到一幀或多幀后才能實現(xiàn)編碼、打包及解碼。因此在嘯叫抑制模塊中先對采集的數(shù)據(jù)進(jìn)行了信號分幀處理(每幀長320個字節(jié))再移頻。其中將信號移頻處理功能部分的程序單獨編制成為一個子VI,在需要時直接調(diào)用,簡化程序框圖,如圖5所示。
錄音與回放模塊設(shè)置聲卡參數(shù)后運行程序可實現(xiàn)音頻的錄入,以及設(shè)置錄制聲音的文件名保存路徑,并開發(fā)有對于保存的數(shù)據(jù)文件讀取程序,實現(xiàn).wav格式文件的回放。回放移頻處理后的文件,抑制嘯叫效果明顯。該程序也可增添其它功能。
以計算機聲卡對音頻信號進(jìn)行采集分析處理,借助LabVIEW軟件平臺,設(shè)計開發(fā)的音頻信號分析處理系統(tǒng),實現(xiàn)了對音頻信號的采集、時域分析、頻域分析以及嘯叫抑制處理等功能。實驗測試中,系統(tǒng)運行平穩(wěn),操作方便,分析處理結(jié)果較理想。而且,系統(tǒng)充分利用LabVIEW數(shù)據(jù)分析處理能力強、界面友好等優(yōu)點,降低開發(fā)成本,方便實用,具有一定的參考和工程應(yīng)用價值[10]。
[1] 曲麗蓉,胡蓉,范壽康.LabVIEW、MATLAB及其混合編程技術(shù)[M].北京:機械工業(yè)出版社,2011.
[2] 郝張紅,劉先勇,袁長迎,等.基于聲卡的虛擬音頻信號采集與處理[J].微計算機原理,2007,23(12):98-99.
[3] 李江全,劉恩博,胡蓉,等. LabVIEW虛擬儀器數(shù)據(jù)采集與串口通信測控應(yīng)用實踐[M].北京:人民郵電出版社,2010.
[4] 史劍鋒,常國棟,李志剛.一種基于LabVIEW和MATLAB 的語音識別方法[J].信息安全與通信保密,2007(07):57-59.
[5] 高丙坤,高潤檸,王靜,等.基于 PC聲卡和 LabVIEW的音頻分析儀設(shè)計[J].實驗室科學(xué),2010,13(04):117-119.
[6] 蔣靈搏.基于 LabVIEW 的音頻檢測系統(tǒng)設(shè)計[J].儀器儀表用戶,2011,3(28):78-90.
[7] 郝為強.擴聲系統(tǒng)移頻增音的PSpice仿真分析[J].電聲技術(shù),2006,12(03):13-16.
[8] 劉鋼.快速傅立葉變換在聲音均衡和頻譜中的應(yīng)用[J].通信技術(shù),2008,41(07):250-251.
[9] 楊君,呂鏡清.FFT濾波誤差分析[J].通信技術(shù),2010,43(06):235-237.
[10] 高陽,黃征,徐徹,等.基于高階頻譜分析的音頻篡改鑒定[J].信息安全與通信保密,2008(02):94-96.