燕麗紅
(西安歐亞學(xué)院信息工程學(xué)院 西安 710065)
語(yǔ)音信號(hào)作為當(dāng)今生活中最常用的信號(hào)被廣泛引用[1~2],而語(yǔ)音信號(hào)在信息的傳輸過程中的可靠性、有效性以及其他的一些問題也都不斷地出現(xiàn),不斷被學(xué)者去攻克,而如今大數(shù)據(jù)崛起標(biāo)志新時(shí)代的到來,對(duì)語(yǔ)音信號(hào)的處理更是要求及時(shí)、有效,可靠[3~4]。因此,本文首先對(duì)語(yǔ)音信號(hào)進(jìn)行分析,并模擬通信信道的噪聲進(jìn)行加噪聲音的分析,進(jìn)而設(shè)計(jì)合理的濾波器進(jìn)行語(yǔ)音信號(hào)的回復(fù),主要通過Matlab及GUI人機(jī)界面進(jìn)行了語(yǔ)音信號(hào)的處理,對(duì)于實(shí)際語(yǔ)音信號(hào)分析具有很重要的指導(dǎo)作用,同時(shí)對(duì)于學(xué)生進(jìn)行信號(hào)處理類課程的學(xué)習(xí)奠定了一定的基礎(chǔ)。
本系統(tǒng)主要通過麥克風(fēng)、錄音軟件等形式進(jìn)行語(yǔ)音信號(hào)的采集,并根據(jù)采樣定理進(jìn)行語(yǔ)音信號(hào)的離散化處理,并模擬具體的通信信道進(jìn)行加噪語(yǔ)音信號(hào)的產(chǎn)生,進(jìn)行通過數(shù)字信號(hào)處理系統(tǒng)設(shè)計(jì)相關(guān)理論進(jìn)行濾波器設(shè)計(jì),進(jìn)而實(shí)現(xiàn)原始語(yǔ)音的回復(fù)。系統(tǒng)實(shí)現(xiàn)框圖如圖1所示。
圖1 典型的語(yǔ)音信號(hào)處理框圖
audioread函數(shù):讀取MP3格式音頻。
Freqz函數(shù):計(jì)算線性系統(tǒng)的響應(yīng)頻率,包括幅頻響應(yīng)和相頻響應(yīng)。
rand函數(shù):在某一信號(hào)中加入隨機(jī)噪聲。
cheb1ord函數(shù):切比雪夫1型濾波器。
Filter函數(shù):一維數(shù)字濾波器[5~8]。
首先通過格式工廠將自己的錄音通過格式工廠進(jìn)行轉(zhuǎn)換成MP3,進(jìn)而使用audioread函數(shù)進(jìn)行調(diào)用并實(shí)現(xiàn)原始語(yǔ)音的產(chǎn)生。
fs=16000;
[x,fs,bits]=audioread(‘ 這 是 我 的 錄 音 。mp3’);
play(x); %話音回放
N=length(x); % 計(jì)算信號(hào)x的長(zhǎng)度
n=0:N-1;
figure(1);
plot(n,x1);%畫出原始語(yǔ)音信號(hào)的時(shí)域波形
圖2 原始語(yǔ)音和加噪語(yǔ)音時(shí)域、頻域圖
由于通信信道自帶會(huì)有噪聲,因此模擬信道進(jìn)行隨機(jī)噪聲的產(chǎn)生[9],進(jìn)而模擬帶噪信號(hào)進(jìn)行設(shè)計(jì)。
L=length(x);%計(jì)算音頻信號(hào)的長(zhǎng)度
n=0.04*randn(L,2);%產(chǎn)生等長(zhǎng)度的隨機(jī)噪聲信號(hào)
x_z=x+n;%將兩個(gè)信號(hào)疊加成一個(gè)新的信號(hào)——加噪聲處理
sound(x_z);%對(duì)加噪后的語(yǔ)音信號(hào)進(jìn)行分析
n=length(x);%選取變換的點(diǎn)數(shù)
x_zp=fft(x_z,n);%對(duì)n點(diǎn)進(jìn)行傅里葉變換到頻域
f=fs*(0:n/2-1)/n;%對(duì)應(yīng)點(diǎn)的頻率
根據(jù)語(yǔ)音信號(hào)的特點(diǎn),設(shè)計(jì)數(shù)字濾波器[10],對(duì)加噪后的語(yǔ)音信號(hào)進(jìn)行濾波處理。
wp=0.01;ws=0.06;rp=1;rs=50;
[N4,Wc]=buttord(wp,ws,rp,rs);
[B,A]=butter(N4,Wc);
[Hd,w]=freqz(B,A);
圖3 巴特沃斯過濾前后對(duì)比圖
通過圖形可以明顯看出,采用巴特沃斯濾波器進(jìn)行的語(yǔ)音信號(hào)處理很好地進(jìn)行了還原。
結(jié)合語(yǔ)音信號(hào)處理的框圖,通過GUI設(shè)計(jì)人機(jī)交互界面[11~12],方便用戶進(jìn)行原始信號(hào),加噪信號(hào),及濾波器設(shè)計(jì)等模塊的設(shè)計(jì),對(duì)不同的模塊設(shè)計(jì)其相應(yīng)的屬性進(jìn)行控件的設(shè)置,通過與Matlab產(chǎn)生的信號(hào)進(jìn)行對(duì)比和設(shè)計(jì),對(duì)于用戶對(duì)信號(hào)的分析可以更有效和直觀[13~15]。
首先在GUI界面中,構(gòu)建人機(jī)交互界面,包含原始語(yǔ)音、加噪語(yǔ)音、濾波器實(shí)現(xiàn)方法(脈沖響應(yīng)不變法、雙線性變換法)及退出模塊,通過設(shè)置控件屬性,調(diào)整控件大小,設(shè)計(jì)的語(yǔ)音信號(hào)處理平臺(tái)如圖4所示。
圖4 基于GUI的語(yǔ)音信號(hào)處理平臺(tái)框架
function pushbutton2_Callback(hObject,eventdata,handles)
%hObjecthandle to pushbutton2(see GCBO)
%eventdata reserved-to be defined in a future version of Matlab
%handles structure with handles and user data(see GUIDATA)
y1=fft(x1,512);
f=Fs*(0:511)/512;
Au=0.04;
wav_in=wav_in(:,1);
t=0:1/Fs:(size(x1)-1)/Fs;%將所加噪聲信號(hào)的點(diǎn)數(shù)調(diào)整到與原始信號(hào)相同
d=[Au*cos(2*pi*5000*t)]';%噪聲為 5kHz的余弦信號(hào)
x2=10*x1+d;
y2=fft(x2,512);
handles.x1=x2
guidata(hObject,handles);
axes(handles.axes2);
plot(t,x2)
title(‘加噪后的信號(hào)’);
圖5 基于GUI的加噪語(yǔ)音信號(hào)的產(chǎn)生
%---Executes on button press in pushbutton3。
function pushbutton3_Callback(hObject,eventdata,handles)
%hObjecthandle to pushbutton3(see GCBO)
%eventdata reserved-to be defined in a future version of Matlab
%handles structure with handles and user data(see GUIDATA)
global x1;
global x2;
global Fs;
global bits;
mc(x2,F(xiàn)s,bits,hObject,handles)
%---Executes on button press in pushbutton4。
function pushbutton4_Callback(hObject,eventdata,handles)
%hObjecthandle to pushbutton4(see GCBO)
%eventdata reserved-to be defined in a future version of Matlab
%handles structure with handles and user data(see GUIDATA)
sx(x2,F(xiàn)s,bits,hObject,handles)
圖6 基于GUI的濾波器設(shè)計(jì)的原始語(yǔ)音信號(hào)的還原
語(yǔ)音信號(hào)處理作為信號(hào)處理的典型應(yīng)用之一,如何有效、快捷地進(jìn)行系統(tǒng)的設(shè)計(jì)和分析,是滿足當(dāng)今大數(shù)據(jù)處理時(shí)代要求高效、可靠的基本條件,本文通過Matlab進(jìn)行語(yǔ)音信號(hào)的采集和處理,通過通過GUI界面設(shè)計(jì)了語(yǔ)音信號(hào)處理平臺(tái),方便用戶進(jìn)行系統(tǒng)有效的分析和處理。而在圖形可視化界面設(shè)計(jì)過程中,還可以將其設(shè)計(jì)的濾波器系統(tǒng)保存為.txt文件,從而方便在其他平臺(tái)上的數(shù)據(jù)處理和分析。這將對(duì)用戶進(jìn)行DSP處理器進(jìn)行系統(tǒng)設(shè)計(jì)帶來很大的便利,也將會(huì)是用戶在工程應(yīng)用上的一個(gè)有效的數(shù)據(jù)分析工具。