李文 夏平
摘要:語音信號去噪軟件平臺的開發(fā)能夠幫助學生對語音信號的理解和掌握,為通信中對語音信號傳輸與處理的研究打下基礎。首先,對原始語音信號加入不同類型的噪聲,通過設計濾波器及小波去噪,比較不同增強算法的去噪效果;其次,在MATLAB環(huán)境中構(gòu)建語音信號增強的GUI平臺。實驗結(jié)果表明,本軟件平臺仿真實現(xiàn)的去噪算法,界面友好、去噪效果清晰。
關(guān)鍵詞:語音信號去噪;MATLAB;濾波;小波
中圖分類號: TP391 文獻標識碼:A 文章編號:1009-3044(2018)12-0059-03
Abstract: The development of speech signal de-noising software platform can help students understand and master the speech signal, and lay a foundation for the research of speech signal transmission and processing in communication. First,F(xiàn)irst, to add different types of noise to the original voice signal, by means of designing filters and wavelet denoising,comparing different enhancement denoising effect of the algorithm, Secondly, build the GUI platform of speech signal enhancement in MATLAB environment. The experimental results show that the algorithm is implemented by the software platform, friendly interface, de-noising method implemented by the software platform is clear.
Key words: Speech Signal Denoising; MATLAB; Filtering ; Wavelet
1引言
現(xiàn)代通信與信息處理技術(shù)中,語音信號的傳輸與處理有著廣泛的應用;語音信號的處理也是長期研究熱點之一,隨著通信信息技術(shù)突飛猛進的發(fā)展,語音采集器及分析設施逐漸智能化、數(shù)字化以及功能多樣化發(fā)展,顯著提升了對語音信號的分析效率[1]。同時,語音信號在傳輸過程中總會受到各種噪聲干擾,降低了語音信號的完整性、可讀性;在此背景下,對語音信號進行去噪處理十分必要。傳統(tǒng)的去噪方法中,濾波以及小波去噪方法備受關(guān)注。
本文構(gòu)建基于MATLAB的GUI平臺對語音信號進行濾波及小波去噪,較好的解決語音信號在傳輸中受噪聲干擾問題,并加深對語音信號處理的理解和掌握。
2 GUI軟件平臺的構(gòu)建
2.1 基本框架
軟件平臺界面的設計需根據(jù)軟件的最終需求來確定,由于本軟件的目標是通過多種方法來實現(xiàn)語音信號的去噪處理,因此軟件的基本框架應為原始語音信號輸入、噪聲加入、噪聲參數(shù)設置、濾波算法、小波去噪以及仿真結(jié)果顯示等功能模塊[2]。如圖1所示。
本軟件平臺中濾波去噪需要設計濾波器的類型選擇、參數(shù)輸入,因此本軟件平臺還需設計子界面作為濾波器去噪的基本要求。
2.2 軟件平臺的界面設計
2.2.1主界面設計
使用鼠標將設計界面左側(cè)的GUI對象選擇區(qū)的各個對象,按要求拖到GUI布局去,放在合適的位置,并調(diào)整至合適的大小,完成軟件的主界面布局。如圖2所示。
圖中共有五大區(qū)域,包括四個主區(qū):輸入?yún)^(qū)、操作區(qū)、顯示區(qū)以及注釋區(qū),除此之外還有1個坐標軸用以顯示噪聲的函數(shù)表達。
(1) 輸入?yún)^(qū):選擇輸入的語音信號,并對語音信號添加噪聲操作,有三種典型噪聲可供選擇,以及設置噪聲參數(shù)。
(2) 操作區(qū):選擇不同按鈕,可分別在顯示區(qū)觀察原始信號、加噪后信號、濾波后信號波形。
(3) 顯示區(qū):顯示區(qū)有6個坐標軸用以顯示不同操作下各自波形變換情況。
(4) 注釋區(qū):用以對三種輸入噪聲相關(guān)參數(shù)進行約束,以保證程序正確運行。
(5) 1個外圍坐標軸:該坐標軸用以顯示三種噪聲的概率密度函數(shù),已確保噪聲設置準確無誤。
2.2.2子界面設計
該子界面是用于濾波器的種類選取、相關(guān)參數(shù)設置,包括低通濾波器的抽樣頻率F,通帶截止頻率Fp、阻帶截止頻率Fs、通帶衰減Ap、阻帶衰減As以及濾波器的階數(shù)N等參數(shù)設置。參數(shù)設置后可運行觀察該濾波器的幅度譜和相位譜,最終子界面的參數(shù)選取及該濾波器的波形顯示如圖3所示。
運行子界面時,需注意參數(shù)選取要求,參數(shù)選取過大過小,將直接影響濾波后波形;參數(shù)設置不符合下方“參數(shù)設定”面板欄最下方靜態(tài)文本要求時,軟件平臺將給出一個錯誤警告,如圖4所示。
2.3 軟件平臺的功能實現(xiàn)
軟件中的核心模塊為“原信號波形”、“加噪后波形”、“濾波去噪后波形”和“小波閾值去噪后波形”共四個模塊,通過該四個模塊的應用即可實現(xiàn)該軟件平臺的功能[3]。
2.3.1 “原信號波形”模塊
打開軟件平臺主界面后,首先用uigetfile函數(shù)選取一個音頻文件,自主定義選取的音頻文件格式有mp3、wav、acc三種,該函數(shù)用法如下:
[FileName,PathName,F(xiàn)ilterlndex] = uigetfile({'*.mp3';'*.wav';'*.acc'},'Pick an voice file') (1)
式中,F(xiàn)ilename用于獲得文件名,PathName用于獲取音頻文件路徑名,F(xiàn)ilterIndex為文件索引。
得到原信號后,可利用MATLAB中的audioread函數(shù)把語音信號轉(zhuǎn)換成序列,得到信號以及采樣頻率。由此可以準確地得到原始語音信號的時域波形及頻譜。如圖5所示。
2.3.2 “加噪后波形”模塊
輸入原始語音信號后,可對原語音信號添加噪聲,本軟件提供了三種噪聲:高斯噪聲、椒鹽噪聲、以及均勻分布噪聲,使用的主要函數(shù)為“imnoise”,其函數(shù)用法:
y=imnoise(x,‘噪聲類型,‘噪聲參數(shù)); (2)
式中,x為的原語音信號,y為加入噪聲后的疊噪語音信號。對于噪聲參數(shù)的相互傳遞,先在每個文本編輯框中的回調(diào)Callback函數(shù),獲取文本編輯框中的字符串,然后將所獲取的字符轉(zhuǎn)換為雙精度數(shù)值型,則可以得到用戶所輸入的參數(shù)值。具體函數(shù)語句:
用該語句便可以獲取加噪聲是的均值、方差、噪聲密度等一系列參數(shù)。如果想一次性調(diào)用該參數(shù)運用于整個m文件中時,可以添加全局變量“global”來實現(xiàn),在得到相關(guān)參數(shù)后便可點擊“加噪后波形”按鈕來觀察添加噪聲后的波形。如圖6所示,選取高斯噪聲,方差為0,標準差為0.24的噪聲波形。
通過頻譜觀察,可以看出噪聲均勻分布在整個頻域范圍內(nèi),原始的語音信號并沒有完全消失,說明進行濾波或者小波去噪后能夠較好地恢復原始信號,與原始語音信號的頻譜相對比,可以看出差異不大,濾波去噪時選取44100Hz左右的抽樣頻率即可恢復為原語音信號波形。
2.3.3 “濾波去噪后波形”模塊
語音信號去噪目前已有多種成熟、可靠性高的方法,如小波變換、濾波、小波包變換法等,本軟件平臺選取了FIR濾波器中較為實用的巴特沃斯濾波器,包括巴特沃斯濾波器低通濾波器、高通濾波器、帶通濾波器以及帶阻濾波器等。平臺設計中采用了彈出式菜單來選擇濾波器。命令語句:
S=get(handles.Butterworth,Value); (4)
式中,S為獲取的選擇值,S可能等于1,2,3,4中的任意數(shù),S為1即可表示選取了低通濾波器,以此推之。Butterworth為各個對象的tag,Value為數(shù)值的含義。
選取了相應地濾波器后,在點擊“濾波去噪后波形”按鈕,即可出現(xiàn)子界面用于確定選擇濾波器的參數(shù),再次點擊該按鈕,得到濾波后的噪聲波形及頻譜圖。
2.3.4 “小波閾值去噪后波形”模塊
小波閾值去噪法也是目前常見且恢復效果極佳的一種去噪方法。小波域中,有效信號對應系數(shù)很大,噪聲對應的系數(shù)最小。設計的平臺中,弱高斯噪聲方差為var,則噪聲系數(shù)大部分位于[-3*var,3*var]區(qū)間內(nèi),因此只要將區(qū)間[-3*var,3*var]內(nèi)的系數(shù)置為零(硬閾值函數(shù)的作用),便可最大程度地抑制噪聲,從而恢復原信號[4]。小波閾值去噪時,使用函數(shù)ddencmp和wdencmp。語法分別為:
[thr,sorth,keepapp]=ddencmp('den','wv',x); (5)
y=wdencmp('gbl',x,'db4',2,thr,sorth,keepapp); (6)
式中,thr為閾值,sorth為軟閾值或硬閾值,keepapp是允許用戶保存低頻系數(shù)。Den為信號消噪,wv是選擇小波分解,x為含噪聲的語音信號,因此使用函數(shù)ddencmp來獲取消噪時默認閾值。
(6)式中,x仍然為含噪聲的語音信號,y為去噪后的輸出信號,2為小波分解系數(shù)(一般設置該系數(shù)為2居多),‘glb為每一層都采用一個閾值進行處理,‘db4表示所使用的小波函數(shù)類型。即wdencmp函數(shù)用于一維或二維信號的消噪或壓縮。
3 實驗結(jié)果與分析
本文以隨機錄取的一段音頻文件為例,向原始的語音信號添加均值為0,標準差為0.24的高斯噪聲。在對含噪聲的語音信號分別進行濾波去噪和小波去噪處理,最終結(jié)果如圖7所示。
從圖7(b)可知,使用濾波去噪后,原始的信號(紅色部分)大部分已經(jīng)濾除了噪聲,但恢復的信號中仍然包含高斯噪聲,該濾波方法需要設計出最佳的濾波器,才能使恢復效果最好,目前的恢復效果較為理想。
圖7(c)中為使用小波閾值去噪后的時域和頻域波形,從圖中可知,恢復的信號基本全部為紅色區(qū),表明高斯噪聲部分幾乎完全濾出,去噪效果較好,語音信號中混雜的噪聲大部分為高頻信號,而小波閾值去噪法則能有效去除高頻部分,操作簡單[5]。
綜合圖7(b)和(c)兩圖可知,兩種去噪算法的可信度較高,但精度比較上,小波閾值去噪法更加精準、恢復信號的還原度更好。
4 結(jié)論
本軟件是基于MATLAB2016a環(huán)境下的可視化圖形界面開發(fā)完成的,充分利用了信號處理工具包以及GUI編程,界面簡單且流暢??捎糜贛ATLAB2016a及以上版本來運行。
該軟件平臺的開發(fā)目的在于為用戶提供一個簡潔實用軟件平臺主要用于語音信號的去噪處理。軟件的主要功能是對語音信號進行去噪處理,有濾波去噪及小波閾值去噪,用于恢復讓噪聲所干擾的語音信號,使其能夠盡可能的變?yōu)樵夹盘柕男Ч?。支持三種音頻格式的語音文件插入。
軟件平臺中設計了兩類去噪方法:濾波器法和小波閾值去噪,選取音頻文件來獲取原始語音信號,軟件平臺中的噪聲參數(shù)可自行設置,從而得到多種不同的波形用于分析。在語音去噪中,相關(guān)函數(shù)簡單且實用性強,易于學生學習語音信號處理的相關(guān)內(nèi)容以及實際科研中對語音信號的研究。
參考文獻:
[1] 馮浩.基于MATLAB GUI的FIR數(shù)字濾波器語音信號去噪處理[J].菏澤學院學報,2016,38(5):68-72.
[2] 趙曉鵬,夏平.基于MATLAB的數(shù)字圖像增強軟件平臺設計[J].電腦知識與技術(shù),2017,13(10):165-167.
[3] 岡薩雷斯R C,伍茲R E,埃丁斯S L,等.數(shù)字圖像處理:MATLAB版[M].北京:電子工業(yè)出版社,2005.
[4] 陳建勇,王道闊,鄧文鋒,等.重構(gòu)小波閾值函數(shù)在信號去噪中的應用與研究[J].CT理論與應用研究,2017,26(01):63-68.
[5] 阿布力米提·肉孜. 小波變換在維語音信號去噪中的應用[D].烏魯木齊:新疆師范大學, 2012.