版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 數(shù)字信號課程設(shè)計</b></p><p> 題目:基于MATLAB的語音濾波實驗</p><p> 姓名: </p><p> 班級: 電信1002班 </p><p> 學號: <
2、;/p><p><b> 摘要</b></p><p> 數(shù)字信號處理是研究用數(shù)字方法對信號進行分析、變換、濾波、檢測、調(diào)制、解調(diào)以及快速算法的一門技術(shù)學科。但很多人認為:數(shù)字信號處理主要是研究有關(guān)數(shù)字濾波技術(shù)、離散變換快速算法和譜分析方法。隨著數(shù)字電路與系統(tǒng)技術(shù)以及計算機技術(shù)的發(fā)展,數(shù)字信號處理技術(shù)也相應地得到發(fā)展,其應用領(lǐng)域十分廣泛。語音信號處理是研究用數(shù)字信號處
3、理技術(shù)和語音學知識對語音信號進行處理的新興學科,是目前發(fā)展最為迅速的學科之一,所以對其研究就顯得尤為重要。</p><p> Matlab語言是一種數(shù)據(jù)分析和處理功能十分強大的計算機應用軟件,它可以講聲音文件變成離散的數(shù)據(jù)文件,然后用其強大的矩陣運算能力處理數(shù)據(jù)。這為本次課程設(shè)計提供了強大并良好的環(huán)境。</p><p> 本設(shè)計要求自己通過手機清唱一段歌曲,并用windows自帶的錄音
4、機錄制下來,保存格式為.wav格式,而且要求對所錄的語音進行頻率均衡和加入混響效果。從網(wǎng)上下載相應的歌曲伴奏,經(jīng)過截取、加噪、消噪后,與混響后的清唱語音進行合成,制作成一首歌曲。采用語音合成可幫助學生加強理解,利用MATLAB濾波器可以很容易地實現(xiàn)語音信號的消噪過程,利用MATLAB的聲音處理函數(shù)設(shè)計語音合成實驗,配合語音媒體播放器可以很方便地將經(jīng)過數(shù)字處理后的語音效果直觀地體現(xiàn)出來,對于學生深刻理解數(shù)字信號處理中抽象數(shù)學運算的現(xiàn)實物理
5、意義很有幫助。</p><p> 關(guān)鍵字:信號處理 語音合成 加噪 混響</p><p><b> 一.設(shè)計目的與任務(wù)</b></p><p> 首先錄制一段清唱歌曲語音信號,對其進行分析;然后在時域用數(shù)字信號處理的方法將信號進行人為地加噪與去噪處理,再進行延時混響處理。從網(wǎng)上下載一段該歌曲的伴奏,對伴奏進行截取、格式轉(zhuǎn)換
6、后,與伴唱歌曲進行合成,制作成一首歌曲,試聽效果,并與原始伴唱語音信號進行比較差別。通過數(shù)字信號處理的課程設(shè)計,鞏固和運用數(shù)字信號處理課程中的理論知識和實踐技能,掌握最基本的運用Matlab軟件處理信號的理論和方法,培養(yǎng)發(fā)現(xiàn)問題,分析問題和解決問題的能力。</p><p><b> 二.設(shè)計的基本要求</b></p><p> 錄制的語音清晰,分析語音信號的特點;
7、</p><p> 探討語音分析、加噪、去噪、混響以及合成的基本方法;</p><p> 寫出各個步驟的Matlab的程序代碼;</p><p> 分析錄制的語音信號的時域波形;分析加噪、去噪與合成前后的語音信號波形;</p><p> 熟悉加強濾波器的設(shè)計原理和濾波的過程;</p><p><b>
8、 三.設(shè)計流程</b></p><p> 圖1 語音合成流程圖</p><p> 整體思路是先把歌曲清唱部分和伴奏部分分別錄制下來。清唱部分先進行加噪,然后進行去噪處理,再進行延時混響處理,最后就可以與伴奏部分進行合成。在伴奏處理部分,由于清唱時的節(jié)奏與伴奏的節(jié)奏可能不一致,因此需要將伴奏或清唱部分進行延時處理,最后進行合成即可。</p><p>
9、<b> 四.實現(xiàn)過程</b></p><p> 4.1 語音信號的采集</p><p> 此次課程設(shè)計采用的語音信號是我清唱的歌曲《夢想天空分外藍》,錄音長度為一分零一秒,錄制軟件使用的是Windows自帶的錄音機,其保存形式為.wav文件。在準備伴奏是考慮過將網(wǎng)上下載下來的MP3格式的伴奏進行格式轉(zhuǎn)換,使其格式變成.wav的文件,但是發(fā)現(xiàn)轉(zhuǎn)換后的文件比原始文
10、件大很多,處理起來不方便,因此放棄了該打算,轉(zhuǎn)而采用使用播放器播放后錄音的方法。</p><p> 4.2語音信號的處理</p><p> ?。矗玻薄∏宄Z音信號的加噪</p><p> 將采集好的清唱語音用Matlab打開,使用的語句格式是x=wavread(‘YY.wav’),fs為采樣頻率(Hz),本課程設(shè)計中的語音信號采樣頻率都為fs=44100Hz。
11、在語音信號中加入噪聲,程序如下:</p><p> x1=wavread('清唱.wav');%讀取語音信號,‘清唱’中無噪聲.</p><p> fs=44100; %原語音信的采樣率為44100Hz</p><p> fn=1000; %設(shè)定噪聲的頻率為1000Hz</p><p&g
12、t; fn1=2000; %設(shè)定噪聲的頻率為2000Hz</p><p> fn2=3000; %設(shè)定噪聲的頻率為3000Hz</p><p> t=1:length(x1); %設(shè)置噪聲的度度跟原語音信一樣長,</p><p> x2=0.05*sin(2*pi*fn/fs*t);%產(chǎn)生幅度為2頻率為fn的正弦波作為噪
13、聲.</p><p> x3=0.05*sin(2*pi*fn1/fs*t);%產(chǎn)生幅度為2頻率為fn的正弦波作為噪聲.</p><p> x4=0.05*sin(2*pi*fn2/fs*t);%產(chǎn)生幅度為2頻率為fn的正弦波作為噪聲.</p><p> x=x1+x2'+x3'+x4'; %將原子核語音信號跟噪聲相加,x為帶有噪聲的語
14、音信號.</p><p> wavwrite(x,44100,'加噪清唱.wav');%將帶有噪聲的語音信號轉(zhuǎn)換為聲音,加噪清唱中將有噪聲</p><p> 在課程設(shè)計過程中,曾嘗試直接過對原清唱語音信號進行頻譜分析,但由于文件太大超出了內(nèi)存,因此采用了先對原清唱信號進行抽樣,后對壓縮清唱信號進行頻譜分析的方法。原清唱信號抽樣程序如下:</p><p
15、> y=wavread('清唱.wav'); %y讀取原語音文件的數(shù)據(jù),變成一維數(shù)組</p><p> n=length(y); %取原語音文件的長度</p><p> s=4; %設(shè)置抽取倍率為2,也可設(shè)置為大于2的整數(shù)</p><p> y1=zeros(1,fix(n/s));
16、%定義y1為一空數(shù)組,fix()為向下取整</p><p> for i=1:fix(n/s) %for循環(huán)為實現(xiàn)s倍率抽取</p><p> y1(i)=y(s*i); %對y1重新賦值</p><p><b> end</b></p><p> wavwrite(y1',4410
17、0/4,'壓縮清唱.wav'); %將抽取后的數(shù)據(jù)轉(zhuǎn)換為.wav文件,44100/s為播放時的數(shù)據(jù)讀取速率</p><p> 加噪前后的頻譜圖如下:</p><p> 剛開始試聽的時候,噪聲很大,原清唱信號被蓋住,影響濾波效果,因此再多次實驗后,將噪聲幅度衰減到原來的0.05以后比較好,加噪后的信號中清唱信號才能被識別出來。</p><p>
18、4.22 清唱語音信號的消噪</p><p> 打開Matlab,使用的語句格式x=wavread(‘YY.wav’)將‘加噪清唱.wav’打開,用Matlab自帶的濾波器設(shè)計工具進行濾波器的設(shè)計,然后進行去噪處理,程序如下:</p><p> x=wavread('加噪清唱.wav');%讀取原語音信號,原清唱信號中帶有噪聲.</p><p>
19、 y=filter(hn,1,x); </p><p> %Bndstop,FIR,Equiripple,Minimum order,Fs=44100,Fpass1=960,Fstop1=980,Fstop2=1020,Fpass2=1040,Apass1=1,Astop=60,Apass2=1</p><p> wavwrite(y,44100,'消噪1K赫茲清唱.w
20、av');</p><p> y1=filter(hn1,1,y); </p><p> %Bndstop,FIR,Equiripple,Minimum order,Fs=44100,Fpass1=1960,Fstop1=1980,Fstop2=2020,Fpass2=2040,Apass1=1,Astop=60,Apass2=1</p><p>
21、; wavwrite(y1,44100,'消噪2K赫茲清唱.wav');%將經(jīng)帶阻濾波消噪后的信號轉(zhuǎn)換為語音,lei3中將不再有噪聲</p><p> y2=filter(hn2,1,y1); %Bndstop,FIR,Equiripple,Minimum order,Fs=44100,Fpass1=2960,Fstop1=2980,Fstop2=3020,Fpass2=3050,Apass1
22、=1,Astop=60,Apass2=1</p><p> wavwrite(y2,44100,'消噪清唱.wav');%將經(jīng)帶阻濾波消噪后的信號轉(zhuǎn)換為語音,‘消噪清唱’中將不再有噪聲,頻譜分析圖如下:</p><p> 從圖中可以看出濾波后的噪聲幅度很小,因此實現(xiàn)了濾波的效果。</p><p> ?。矗? 清唱語音信號的延時混響處理</
23、p><p> 在消噪后,‘消噪清唱’中雖然沒有了噪聲,但清唱效果不太好,因此將消噪的信號進行延時混響處理,以期得到更好的效果,程序如下:</p><p> x=wavread('消噪清唱.wav'); %讀入原始聲音</p><p> n=1200; %設(shè)定延
24、遲時間t=n/fs秒,改變該數(shù)據(jù)可改變混響深度(時間間隔)</p><p> N=60; %y設(shè)定延遲級數(shù)為N級,改變該數(shù)據(jù)可改變次數(shù)</p><p> x1=[x;zeros(N*n,1)]; %將x通過補零延長到經(jīng)N級延時后的長度</p><p> for i
25、=1:N %進行N次延時,第一次延時在x前補n 個0,后補(N-1)*n個0</p><p> x2=[zeros(i*n,1);x;zeros((N-i)*n,1)]; %第i次延時在x前補i*n個0,后補(N-i)*n個0</p><p> x1=x1+1/(2*i)*x2; %將經(jīng)延
26、時的信號x1跟x逐次相加</p><p><b> end</b></p><p> wavwrite(x1,44100,'混響清唱.wav'); %將混響后的數(shù)據(jù)轉(zhuǎn)換為聲音</p><p> 4.24 伴奏的延時處理</p><p> 由于清唱時的節(jié)奏與伴奏的節(jié)奏不一致,因此需要
27、將伴奏或處理完成后的清唱進行延時處理,此次采用的是將伴奏部分進行延時處理,使其一致,程序如下:</p><p> x=wavread('伴奏.wav'); %讀入原始聲音</p><p><b> i=10;</b></p><p> n=2200;%設(shè)定延遲時間t=n/fs秒,改變該數(shù)據(jù)可改
28、變混響深度(時間間隔)</p><p> x2=[zeros(n*i,1);x]; %第i次延時在x前補i*n個0,后補(N-i)*n個0</p><p> wavwrite(x2,44100,'延時伴奏.wav'); %將混響后的數(shù)據(jù)轉(zhuǎn)換為聲音</p><p> 4.3語音信號的合成</p><p>
29、 將已經(jīng)處理好的清唱信號與伴奏信號進行合成,程序如下:</p><p> x1=2*wavread('混響清唱.wav');%讀取原語音信號,混響清唱中無噪聲.</p><p> x2=2.1*wavread('延時伴奏.wav');%讀取原語音信號,延時伴奏中無噪聲.</p><p> lx1=length(x1);</
30、p><p> lx2=length(x2);</p><p> if(lx1>=lx2) </p><p> x2=[x2',zeros(1,lx1-lx2)];</p><p><b> else </b></p><p> x1=[x1',zeros(1,l
31、x2-lx1)];</p><p><b> end </b></p><p> x=x1'+x2; %將原子核語音信號跟噪聲相加,x為帶有噪聲的語音信號.</p><p> wavwrite(x,44100,'合成.wav');</p><p>
32、最后合成‘合成.wav’文件,最終順利完成該課程設(shè)計。</p><p> 4.4 課程設(shè)計主意事項:</p><p> 一、錄制伴唱語音的時候應盡量選擇相對安靜的環(huán)境,在電腦上錄制最好使用比較好的錄音設(shè)備,這樣錄制的效果會比較好。</p><p> 二、在設(shè)計濾波器的時候,應該先找出噪聲的頻率,再設(shè)計濾波器。對加噪的清唱語音信號應該連續(xù)濾波。若噪聲信號太強,即
33、幅度太大時應當先對噪聲幅度進行衰減,否則濾波效果不太理想。</p><p> 三、在進行語音合成的時候應該對程序進行仔細的分析,如果伴奏的聲音大,伴唱的聲音小,那么就應該吧伴奏的聲音進行適度的衰減,從而保證伴奏與伴唱的幅度相匹配。</p><p><b> 結(jié)語:</b></p><p> 此次課程設(shè)計過程中,遇到了很多的困難與問題,但最
34、終在老師及同學的幫助之下順利地完成了課程設(shè)計。此次課程采用了高效快捷的開發(fā)工具——MATLAB,實現(xiàn)了信號的采集,信號的加噪并設(shè)計濾波器進行消噪處理,信號的延時混響處理,伴奏部分的延時,以及最后的合成。但在此期間也有不少值得改進的問題,比如在加噪部分時,剛開始所加的噪聲的幅度遠遠超過了語音信號的幅度,因此在加載噪聲后生成的語音信號中,原語音信號被噪聲基本覆蓋了。經(jīng)過多次試驗后發(fā)現(xiàn),應該適度減低噪聲的幅度,才能達到更好的濾波效果,從而更好
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號處理課程設(shè)計---基于matlab的語音信號濾波處理
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 數(shù)字信號課程設(shè)計--語音數(shù)字信號處理與分析及matlab實現(xiàn)
- 數(shù)字信號處理matlab濾波器課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于matlab有噪聲語音信號處理
- 數(shù)字信號處理課程設(shè)計---基于matlab的濾波器的設(shè)計
- 基于matlab的數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于 matlab 的語音去噪處理
- 數(shù)字信號課程設(shè)計---語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計--語音信號濾波去噪
- 數(shù)字信號處理課程設(shè)計報告--基于matlab的語音去噪處理
- 數(shù)字信號處理課程設(shè)計--語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計---語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計---語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計--語音信號的處理與濾波
- 基于matlab的數(shù)字信號濾波處理..
- 基于matlab的數(shù)字信號處理與分析課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于matlab的數(shù)字圖像處理
- 數(shù)字信號處理課程設(shè)計---帶通濾波器的設(shè)計及其matlab實現(xiàn)
評論
0/150
提交評論