基于LabVIEW開發平臺的聲音能量設計
LabVIEW開發平臺
LabVIEW是目前唯一的編譯型圖形化編程語言,使用“所見即所得”的可視化技術建立人機界面,用圖標表示功能模塊,用圖標之間的連線來表示各模塊間的數據傳遞。同時,LabVIEW繼承了高級編程語言的結構化和模塊化編程的優點,支持模塊化與層次化設計,這種結構的設計增強了程序的可讀性,其界面非常直觀形象。
虛擬儀器是以計算機作為儀器的硬件支撐,充分利用計算機的運算、存儲、調用、顯示及文件管理等功能,把傳統儀器的專業化功能軟件化,使之與計算機結合起來融為一體,這樣便構成了一臺從外觀到功能都完全與傳統儀器相同,同時又充分享用了計算機資源的儀器系統。傳統儀器通常由信號采集、信號分析、信號輸出三部分組成;虛擬儀器同樣可以劃分為數據采集、數據分析處理、顯示結果三大功能模塊。
虛擬儀器的系統組成
虛擬儀器系統是由計算機、硬件平臺和應用軟件組成的。從構成方式,則有以數據采集卡(DAQ)和信號調理電路組成的PC-DAQ測試系統;以GPIB、VXI、串行總線和現場總線等標準總線儀器為硬件方式組成的GPIB系統、VXI系統、串行總線系統、現場總線系統等。目前通常采用的方法是在計算機上插入數據采集卡,用軟件在屏幕上生成儀器面板,用軟件進行信號分析處理等。這也正是本文設計的核心。我們采用PCI總線技術開發了虛擬儀器系統硬件平臺,其基于PCI總線的數據采集卡包括信號調理和數據采集兩部分,數據采集卡結合計算機數據處理軟件可以構造各種虛擬儀器。圖1為虛擬儀器系統構成框圖。
圖1 虛擬儀器系統構成框圖
語音信號的時域處理方法
數字語音處理的方法常常分為時域方法、頻域方法、同態方法、線性預測編碼方法以及其他各種方法等。時域方法涉及到語音信號的波形,利用時域方法來分析的語音信號特征參數包括語音的短時平均幅度和能量,短時平均過零率,短時自相關函數以及短時平均幅度差函數等。利用這些特征參數可以分析或處理語音,如清濁音分類,基音周期檢測等。限于篇幅,這里只對短時能量和短時平均幅度進行分析。語音信號的時域分析就是分析和提取語音信號的時域參數,其特點如下。
⑴表示語音信號較直觀、物理意義明確;
⑵實現較簡單、運算量少;
⑶可以得到語音的重要參數;
⑷使用示波器等通用設備可看到變化,使用方便。
考慮到上述優點,本文就語音信號的時域處理方法進行系統的分析。
● 短時能量分析
語音信號是一種隨時間而變化的信號,是濁音激勵還是清音激勵,濁音的基音周期以及信號幅度等都隨時間而變化,此變化又是緩慢的,可以認為在一小段時間里,例如10~20ms內語音信號近似不變。于是,可以把語音信號分成一些短段(或稱為分析幀)來進行處理。這些短段具有固定的特性,短段間經常有一定的重疊組成一段語音。這種方法稱為“短時”處理方法。這種短時處理方法可以用式1來表示。
(1)
式中T[]表示對話音進行變換,此變換不一定是線性的,也可以是非線性的。把變換后的序列乘以窗函數。這個窗序列位于與抽樣標志n相一致的時間,窗函數的寬度是有限的,然后對乘積的所有非零值求和所得到的Qn,就是在n這個時刻的T[x(k)]的部分加權平均值。短時能量通常定義為:
(2)
這個表示式還可以表示成:
(3)
圖2為相應的數學模型原理圖。
圖2 短時能量分析數學模型
綜上所述,語音的短時能量表示取決于h(n)的選擇或w(n)的選擇,通常使用兩種窗,其中一種為矩形窗,其窗函數如式4所示。
(4)
實驗結果表明,En值明顯小于濁音段的能量。因此,根據短時能量函數可以大致區分濁音和清音。在高En信噪比的情況下,利用短時能量函數也可以區分有聲和無聲。
● 短時平均幅度
由上式定義的短時能量函數由于需要計算,因此對于高電平信號,其值經過平方后則更大,而對于低電平信號其值為小于1的值,經過平方后則更小。以致短時能量E(n)對于信號電平值過于敏感。為了克服這個缺點,定義了一種短時平均幅度函數,見式5。平均能量的數學模型如圖3所示。
圖3 平均能量分析數學模型
(5)
式中用信號的絕對值代替信號的平方值。Mn能較好地反映Mn清音范圍內的幅度變化。在這一方面,Mn要比En好,Mn所能反映幅度變化的動態范圍也要比En好。所反映清音語音和濁音語音之間的電平差不如En那樣明顯。
短時能量與短時平均幅度的主要用途如下。
(1)可以從語音中區分出濁音來,因為濁音的能量要比清音大的多;
(2)可以用來區分聲母與韻母的分界、無聲與有聲的分界、連字的分界等;
(3)作為一種語音段信息,用于語音識別。
LabVIEW軟件設計
軟件設計主要分為信號采集流程和處理處理流程。硬件的波形信號采集流程如圖4所示,采集后對信號進行分析和處理的流程如圖5所示,即進行平均能量和短時能量分析。
圖4 波形采集流程
圖5 聲音能量分析流程圖
實驗結果
實驗中,通過單線耳塞(耳塞一端要把線露出來,把信號接入)將電腦上正在播放的音樂作為輸入信號,接入PCI-6025E數據采集卡中,設置數據采集卡通道為0,選擇采樣點為50,采樣率為8000,得到的實驗結果如圖6所示。選擇電腦中隨機播放的音樂作為數據輸入,而沒有直接用函數信號發生器產生理想的正弦波波形,是因為理想的正弦波是周期規律性變化的,對于短時平均能量或者短時平均幅度,其效果并不會那么明顯,從而更容易對數據進行分析。由圖6可見,原始聲音波形為-0.02~0.02之間,在0~100s的時間內,平均幅度比短時能量的坡度更大、更高,它們集中在0~0.3之間,比原始聲音波形的幅度要大,而短時能量的最高點也是不到0.005的幅度,100s之后,短時能量和平均幅度的趨勢基本相同,趨于0。
圖6 實驗結果的數據和曲線
結束語
本文用LabVIEW對聲音進行短時能量和平均幅度分析。可以用數據采集卡對輸入信號進行采集,將信號做為一種語音段信息,對語音進行識別,并可以從語音中區分出濁音來,還可以用來區分聲母與韻母的分界、無聲與有聲的分界、連字的分界等。用LabVIEW來對聲音進行處理,比C語言的編程更加簡單,且其界面美觀,處理結果也可以直接在前面板中進行描述。
評論