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