




已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
吉林工程技術(shù)師范學(xué)院DSP語(yǔ)音信號(hào)處理課程設(shè)計(jì)報(bào)告書(shū)設(shè)計(jì)內(nèi)容: 語(yǔ)音信號(hào)處理GUI工具箱設(shè)計(jì) 專(zhuān) 業(yè): 電子信息 班級(jí): 0742 學(xué)生姓名: 陳陽(yáng) 學(xué)號(hào): 29 指導(dǎo)教師: 李?lèi)?劉銀輝 信息工程學(xué)院摘要語(yǔ)音信號(hào)處理是研究數(shù)字信號(hào)要處理技術(shù)和語(yǔ)音信號(hào)進(jìn)行處理的一門(mén)學(xué)科,是一門(mén)新型的學(xué)科,是在多們學(xué)科基礎(chǔ)上發(fā)展起來(lái)的綜合性技術(shù),它設(shè)計(jì)到數(shù)字信號(hào)處理、模式識(shí)別、語(yǔ)言學(xué)、語(yǔ)音信號(hào)處理是研究用數(shù)字信號(hào)處理技術(shù)對(duì)語(yǔ)音信號(hào)進(jìn)行處理的一門(mén)學(xué)科。處理的目的是要得到一些語(yǔ)音參一以便高效地傳輸或儲(chǔ)存;或者是通過(guò)處理的某種運(yùn)算以達(dá)到某種用途的要求。語(yǔ)音信號(hào)處理又是一門(mén)新興的邊緣學(xué)科。如上所述,它是“語(yǔ)言語(yǔ)音學(xué)”與“數(shù)字信號(hào)處理”兩個(gè)學(xué)科相結(jié)合的產(chǎn)物。語(yǔ)音信號(hào)處理屬于信息科學(xué)的一個(gè)重要分支,大規(guī)模集成技術(shù)的高度發(fā)展和計(jì)算機(jī)技術(shù)的飛速前進(jìn),推動(dòng)了這一技術(shù)的發(fā)展。在數(shù)字音頻技術(shù)和多媒體技術(shù)迅速發(fā)展的今天,傳統(tǒng)的磁帶語(yǔ)音錄放系統(tǒng)因體積大、使用不便、放音不清晰而受到了巨大挑戰(zhàn)。本課題組提出的體積小巧,功耗低的數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng),可以有效的解決傳統(tǒng)的語(yǔ)音錄放系統(tǒng)在電子與信息處理的使用中受到的限制。 本文提出了語(yǔ)音信號(hào)處理課程建設(shè)的實(shí)驗(yàn)環(huán)節(jié)中的一些考慮,作為專(zhuān)業(yè)課程的學(xué)習(xí),實(shí)驗(yàn)內(nèi)容不能僅僅停留在驗(yàn)證性實(shí)驗(yàn)上,還應(yīng)增加實(shí)驗(yàn)延伸的設(shè)計(jì)要求,使學(xué)生加深對(duì)理論分析認(rèn)識(shí)的同時(shí),強(qiáng)調(diào)培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力和知識(shí)綜合運(yùn)用能力。從而提高語(yǔ)音信號(hào)的教學(xué)和實(shí)驗(yàn)的質(zhì)量。實(shí)驗(yàn)內(nèi)容采用MATLAB編程實(shí)現(xiàn),不僅易于語(yǔ)音信號(hào)處理的實(shí)現(xiàn),更易引導(dǎo)學(xué)生完成實(shí)驗(yàn)延伸的設(shè)計(jì)。關(guān)鍵字:MATLAB軟件 語(yǔ)音信號(hào)處理 實(shí)驗(yàn)設(shè)計(jì)目 錄摘 要 第一章 緒論11.1 選題背景11.2 課題任務(wù)11.3 課題意義1第二章 理論基礎(chǔ)及系統(tǒng)要求22.1 引言22.2 課程設(shè)計(jì)基本要求22.3 系統(tǒng)基本原理2第三章 設(shè)計(jì)方案論證33.1設(shè)計(jì)理論依據(jù)3第四章 圖形用戶界面設(shè)計(jì)4 4.1圖形用戶界面概念4 4.2用戶界面設(shè)計(jì)4第五章 課程設(shè)計(jì)的軟件實(shí)現(xiàn)8 5.1部分函數(shù)語(yǔ)法格8 5.2語(yǔ)音信號(hào)處理的相關(guān)函數(shù)8 5.3 GUI實(shí)驗(yàn)箱操作界面設(shè)計(jì)14第六章 心得體會(huì)15附錄源代碼13參考文獻(xiàn)1第一章 緒論1.1 選題背景 在我們的現(xiàn)實(shí)生活中從磁帶、錄像帶到CD、VCD、DVD;從黑白電視機(jī)、彩色電視機(jī)、高清晰度電視機(jī)(HDTV)到具有數(shù)字信號(hào)處理功能的電視機(jī);從留聲機(jī)、錄音機(jī)到語(yǔ)音信箱;現(xiàn)在正處在模擬信息到數(shù)字信息的變革之中,傳統(tǒng)的磁帶語(yǔ)音錄放系統(tǒng)因其體積大,使用不便,在電子與信息處理的使用中受到許多限制。 雖然,目前廣播電視系統(tǒng)尚未實(shí)現(xiàn)真正的數(shù)字化,相信在不久的將來(lái),真正的數(shù)字電視機(jī)、數(shù)字收音機(jī)、數(shù)字收錄機(jī)將進(jìn)入家庭。所以,研究音頻信號(hào)的數(shù)字化存儲(chǔ)、處理和回放系統(tǒng)有著很重要的現(xiàn)實(shí)意義。通過(guò)設(shè)計(jì)語(yǔ)音信號(hào)實(shí)驗(yàn)箱可以對(duì)語(yǔ)音信號(hào)實(shí)現(xiàn)各種形式的變換,因此學(xué)會(huì)對(duì)語(yǔ)音信號(hào)的處理,也可自行研究將此語(yǔ)音處理技術(shù)應(yīng)用到現(xiàn)實(shí)生活中。1.2 課題任務(wù) 本實(shí)驗(yàn)任務(wù)所提出的語(yǔ)音信號(hào)處理實(shí)驗(yàn)箱系統(tǒng),其基本原理是對(duì)語(yǔ)音的錄音和放音進(jìn)行數(shù)字化控制.其中,關(guān)鍵技術(shù)在于:為了增加語(yǔ)音存儲(chǔ)時(shí)間,提高存儲(chǔ)器的利用率,采用了非失真壓縮算法對(duì)語(yǔ)音信號(hào)進(jìn)行壓縮后再存儲(chǔ),而在回放是再進(jìn)行解壓縮;同時(shí),對(duì)輸入語(yǔ)音信號(hào)進(jìn)行數(shù)字濾波以抑制雜音和干擾,從而確保了語(yǔ)音回放的可靠質(zhì)量. 通過(guò)設(shè)計(jì)一個(gè)GUI實(shí)驗(yàn)箱,并添加相應(yīng)的控制控件,添加一個(gè)聲音文件,通過(guò)MATLAB編程,使其通過(guò)各種按鈕實(shí)現(xiàn)語(yǔ)音信號(hào)處理的各種功能,最后做成一個(gè)完整的語(yǔ)音信號(hào)處理實(shí)驗(yàn)箱。1.3 課題意義:語(yǔ)音信號(hào)處理是一門(mén)比較實(shí)用的電子工程的專(zhuān)業(yè)課程,語(yǔ)音是人類(lèi)獲取信息的重要來(lái)源和利用信息的重要手段,通過(guò)語(yǔ)言相互傳遞信息是人類(lèi)最重要的基本功能之一,語(yǔ)言是人類(lèi)特有的功能,它是創(chuàng)造和記載幾千年來(lái)人類(lèi)文明史的根本手段,沒(méi)有語(yǔ)言就沒(méi)有今天的人類(lèi)文明,語(yǔ)音是語(yǔ)言的聲學(xué)表現(xiàn),是相互傳遞信息的重要的手段,是人類(lèi)最重要、最有效、最常用和最方便的交換信息的形式。語(yǔ)音信號(hào)處理是研究用數(shù)字信號(hào)處理技術(shù)對(duì)語(yǔ)音信號(hào)進(jìn)行處理的一門(mén)學(xué)科,它是一門(mén)新興的學(xué)科,同時(shí)又是綜合性的多學(xué)科領(lǐng)域行業(yè)涉及面很廣的交叉學(xué)科。第二章 理論基礎(chǔ)及系統(tǒng)要求2.1 引言目前,隨著數(shù)字化信號(hào)處理技術(shù)的不斷提高,單片機(jī),數(shù)字信號(hào)處理器以及語(yǔ)音處理大規(guī)模集成電路的進(jìn)步,語(yǔ)音合成,語(yǔ)音識(shí)別,語(yǔ)音存儲(chǔ)和回放技術(shù)的應(yīng)用越來(lái)越廣泛.本文提出的體積小巧,功耗低的數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng)將完全可以替代傳統(tǒng)的語(yǔ)音錄放系統(tǒng).2.2 課程設(shè)計(jì)基本要求(1)學(xué)會(huì)MATLAB的使用,掌握MATLAB的程序設(shè)計(jì)方法;(2)掌握在windows 環(huán)境下語(yǔ)音信號(hào)采集的方法;(3)掌握數(shù)字信號(hào)處理的基本概念,基本理論和基本方法;(4)掌握MATLAB設(shè)計(jì)的方法;(5)學(xué)會(huì)用MATLAB對(duì)信號(hào)進(jìn)行分析和處理。2.3 系統(tǒng)基本原理語(yǔ)音采集原理是,人耳能聽(tīng)到的聲音是一種頻率范圍為20Hz20kHz,而一般語(yǔ)音頻率最高為3.4kHz.語(yǔ)音的采集是指語(yǔ)音聲波信號(hào)經(jīng)麥克風(fēng)和高頻放大器轉(zhuǎn)換成有一定幅度的模擬量電信號(hào),然后再轉(zhuǎn)換成數(shù)字量的全過(guò)程.本次設(shè)計(jì)的基本原理是對(duì)語(yǔ)音的錄音和放音進(jìn)行數(shù)字化控制.其中,關(guān)鍵技術(shù)在于:為了增加語(yǔ)音存儲(chǔ)時(shí)間,提高存儲(chǔ)器的利用率,采用了非失真壓縮算法對(duì)語(yǔ)音信號(hào)進(jìn)行壓縮后再存儲(chǔ),而在回放是再進(jìn)行解壓縮;同時(shí),對(duì)輸入語(yǔ)音信號(hào)進(jìn)行數(shù)字濾波以抑制雜音和干擾,從而確保了語(yǔ)音回放的可靠質(zhì)量. 通過(guò)設(shè)計(jì)一個(gè)GUI實(shí)驗(yàn)箱,并添加相應(yīng)的控制控件,添加一個(gè)聲音文件,通過(guò)MATLAB編程,使其通過(guò)各種按鈕實(shí)現(xiàn)語(yǔ)音信號(hào)處理的各種功能,最后做成一個(gè)完整的語(yǔ)音信號(hào)處理實(shí)驗(yàn)箱。第三章 設(shè)計(jì)方案論證3.1 設(shè)計(jì)理論依據(jù)3.1.1采樣定理:在進(jìn)行模擬/數(shù)字信號(hào)的轉(zhuǎn)換過(guò)程中,當(dāng)采樣頻率fs.max大于信號(hào)中,最高頻率fmax的2倍時(shí),則采樣之后的數(shù)字信號(hào)完整地保留了原始信號(hào)中的信息,一般實(shí)際應(yīng)用中保證采樣頻率為信號(hào)最高頻率的5-10倍;采樣定理又稱(chēng)乃奎斯特定理。3.1.2 采樣頻率: 采樣頻率是指計(jì)算機(jī)每秒鐘采集多少個(gè)聲音樣本,是描述聲音文件的音質(zhì)、音調(diào)、衡量聲卡、聲音文件的質(zhì)量標(biāo)準(zhǔn)。采樣頻率越高,即采樣的間隔時(shí)間越短,則在單位時(shí)間內(nèi)計(jì)算機(jī)得到的聲音樣本數(shù)據(jù)就越多,對(duì)聲音波形的表示也就越精確,采樣頻率與聲音頻率之間有一定的關(guān)系,根據(jù)奈奎斯特理論,只有采樣頻率高于聲音信號(hào)最高頻率的2倍的時(shí)候,才能把數(shù)字信號(hào)表示的聲音還原成為原來(lái)的聲音,這就是說(shuō)采樣頻率是衡量聲卡采集、記錄和還原聲音文件的質(zhì)量標(biāo)準(zhǔn)。3.1.3 采樣位數(shù)與采樣頻率采樣位數(shù)即采樣值或取樣值,用來(lái)衡量聲音波動(dòng)變化的參數(shù),是指聲卡在采集和播放聲音文件時(shí)候使用數(shù)字聲音信號(hào)的二進(jìn)制為數(shù)。采樣頻率是指錄音設(shè)備在一秒鐘內(nèi)對(duì)聲音信號(hào)的采樣次數(shù),采樣頻率越高聲音的還原就越真實(shí)越自然。采樣位數(shù)和采樣頻率對(duì)于音頻接口來(lái)說(shuō)是最為重要的兩個(gè)基本指標(biāo),也是選擇音頻接口的兩個(gè)重要標(biāo)準(zhǔn)。無(wú)論采樣頻率如何,理論上來(lái)說(shuō)采樣的位數(shù)決定了音頻數(shù)據(jù)最大的力度范圍。每增加一個(gè)采樣位數(shù)相當(dāng)于力度范圍增加了6dB。采樣位數(shù)越多則捕捉到的信號(hào)越精確。對(duì)于采樣率來(lái)說(shuō)你可以想象它類(lèi)似一個(gè)照相機(jī)。顯然采樣率越高,計(jì)算機(jī)提取的圖片越多,對(duì)于原始 的還原也越加精確。第四章 圖形用戶界面設(shè)計(jì)4.1圖形用戶界面概念圖形用戶界面或圖形用戶接口是指采用圖形方式顯示的計(jì)算機(jī)操作環(huán)境用戶接口。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)更為簡(jiǎn)便易用。GUI是MATLAB提供的圖形用戶界面開(kāi)發(fā)環(huán)境,提供了一系列用于創(chuàng)建圖形用戶界面的工具,從而簡(jiǎn)化界面布局和編程工作。4.2用戶界面設(shè)計(jì)4.2.1 GUI設(shè)計(jì)模板在MATLAB主窗口中,選擇File菜單中的New菜單項(xiàng),再選擇其中的GUI命令,就會(huì)顯示圖形用戶界面的設(shè)計(jì)模板。MATLAB為GUI設(shè)計(jì)一共準(zhǔn)備了四個(gè)模板,分別是Blank GUI、GUI with Uicontrols、GUI with Axes and Menu、Modal Question Dialog。當(dāng)用戶選擇不同的模板時(shí),在GUI設(shè)計(jì)模板界面的右邊就會(huì)現(xiàn)實(shí)出與該模板對(duì)應(yīng)的GUI圖形。4.2.2 GUI設(shè)計(jì)窗口在GUI設(shè)計(jì)模板中選中一個(gè)模板,然后單擊OK按鈕,就會(huì)現(xiàn)實(shí)GUI設(shè)計(jì)窗口,選擇不同的GUI設(shè)計(jì)模式時(shí),在GUI設(shè)計(jì)窗口中顯示的結(jié)果是不一樣的。GUI設(shè)計(jì)窗口由菜單欄、工具欄、控件工具欄以及圖形對(duì)象設(shè)計(jì)區(qū)等部分組成。GUI設(shè)計(jì)窗口的菜單欄有File、Edit、View、Layout、Tools和Help六個(gè)菜單項(xiàng),使用其中的命令可以完成圖形用戶界面的設(shè)計(jì)操作。 4.2.3 GUI設(shè)計(jì)窗口的基本操作(1)前面板的設(shè)計(jì):在GUI設(shè)計(jì)窗口創(chuàng)建圖形對(duì)象后,通過(guò)雙擊該對(duì)象,就會(huì)顯示該對(duì)象的屬性編輯器。如下圖所示。例如,創(chuàng)建一個(gè)Push Button對(duì)象,并設(shè)計(jì)該對(duì)象的屬性值。 圖4-1 按鈕屬性編輯器通過(guò)以上的按鈕屬性編輯器可以根據(jù)個(gè)人情況對(duì)按鈕的名稱(chēng)、顏色、大小等方面的屬性進(jìn)行修改,使按鈕在視覺(jué)上變的更加完美。(2)按鈕功能的實(shí)現(xiàn):在GUI設(shè)計(jì)窗口創(chuàng)建按鈕后,通過(guò)右鍵單擊按鈕,選擇view callbacks 下的callback對(duì)相應(yīng)的按鈕進(jìn)行編程,使按鈕實(shí)現(xiàn)相應(yīng)的功能,如下圖所示對(duì)按鈕的相應(yīng)功能進(jìn)行設(shè)置。 圖4-2 按鈕功能編輯器進(jìn)入到按鈕程序編輯窗口,通過(guò)編程即可實(shí)現(xiàn)按鈕的相應(yīng)功能,如下圖: 圖4-3 按鈕的編程實(shí)現(xiàn)界面通過(guò)對(duì)各個(gè)按鈕控件的修改,和對(duì)m文件程序的添加就完成對(duì)GUI窗口的設(shè)計(jì),最后得到的圖形化操作界面如下圖所示: 圖4-4 圖形化操作界面4.2.4 語(yǔ)音的錄入與打開(kāi) 在MATLAB中,y,fs,bits=wavread(Blip,N1 N2);用于讀取語(yǔ)音,采樣值放在向y中,fs表示采樣頻率,bits表示采樣位數(shù)。N1 N2表示讀取從N1點(diǎn)到N2點(diǎn)的值。 Sound(x,fs,bits);用于對(duì)聲音的回放,向量y則就代表了一個(gè)信號(hào)也就是說(shuō)可以像處理一個(gè)信號(hào)表達(dá)式一樣處理這個(gè)聲音信號(hào)。第五章 課程設(shè)計(jì)的軟件實(shí)現(xiàn)5.1部分函數(shù)語(yǔ)法格式讀wav文件: x=wavread(filename) 數(shù)組a及b中元素相乘: a.*b創(chuàng)建圖形窗口命令: figure繪圖函數(shù): plot(x) 坐標(biāo)軸: axis(xmin xmax ymin ymax)坐標(biāo)軸注解: xlabel() ylabel() 圖例注解: legend()一階高通濾波器: y=filter(1-0.09375,1,x)分幀函數(shù): f=enframe(x,len,inc) x為輸入語(yǔ)音信號(hào),len指定了幀長(zhǎng),inc指定幀移,函數(shù)返回為nlen的一個(gè)矩陣,每一行都是一幀數(shù)據(jù)。5.2 語(yǔ)音信號(hào)處理的相關(guān)函數(shù)5.2.1語(yǔ)音信號(hào)的短時(shí)譜:周期性聲門(mén)波可表示為: (5-1)其中, gn是聲門(mén)波的單周期的波形,pn是間隔為 P 的周期采樣序列。當(dāng) un通過(guò)線性非時(shí)變聲道,且該聲道的單位沖擊響應(yīng)為 hn時(shí),聲道輸出為: (5-2)為了觀察一段語(yǔ)音,需要將聲道輸出乘以一個(gè)以時(shí)刻為中心的窗函數(shù) wn,即得到: (5-3)這段語(yǔ)音信號(hào)的頻域表達(dá)式為 : (5-4)即語(yǔ)音信號(hào)的譜包絡(luò)為 語(yǔ)譜圖就是顯示時(shí)變頻譜幅度特征的圖形表達(dá)式為 (5-5)將語(yǔ)音信號(hào)短時(shí)譜程序?qū)懭氲組ATLAB中得到單色語(yǔ)譜圖的波形如下:圖 5-1 語(yǔ)音信號(hào)單色語(yǔ)譜圖5.2.2 自相關(guān)方法估計(jì)語(yǔ)音信號(hào)的聲道參數(shù):由均方預(yù)測(cè)誤差最小的得到正則方程 (5-6)其中, (5-7)在最佳解時(shí)的誤差為 (5-8)在自相關(guān)法中式5-6,式5-8變?yōu)?(5-9) (5-10)由式5-9和式5-10可列出方程組式5-11 (5-11)解方程組 式5-9 求出線性預(yù)測(cè)系數(shù),通過(guò)誤差式5-11可求出增益G (5-12)加窗后信號(hào)頻譜圖如下:圖5-2 加窗后信號(hào)頻譜圖通過(guò)以上的方法,改變參數(shù)分別求得4極點(diǎn)模型頻率響應(yīng)和6極點(diǎn)模型頻率響應(yīng),六極點(diǎn)波形如下圖所示: 圖5-3 六極點(diǎn)波形圖最后通過(guò)以上方法用一個(gè)函數(shù)分別實(shí)現(xiàn)以上三個(gè)功能,三個(gè)波形顯示在一個(gè)界面,通過(guò)觀察圖形,查看它們之間的分別。三者比較所得到的波形如下:圖 5-4 三者比較波形圖5.2.3 基音周期檢測(cè):數(shù)據(jù)為濁音語(yǔ)音信號(hào)speech1_10k(10000 樣點(diǎn)/秒)用 25ms 的漢明窗對(duì)語(yǔ)音信號(hào) speech1_10k 進(jìn)行加窗處理,并畫(huà)出所得到的加窗信號(hào)的自相關(guān)函數(shù),再用根據(jù)中心消波法及三電平中心消波法原理改進(jìn)程序,最后對(duì)比中方法基音檢測(cè)的效果并分析結(jié)果。實(shí)驗(yàn)原理及方法(1)自相關(guān)檢測(cè)原理:對(duì)于離散的數(shù)字語(yǔ)音信號(hào)序列x(n),如果周期N,則自相關(guān)函數(shù)也是同周期的周期函數(shù)。即:x(n)=x(n+N).清音信號(hào)沒(méi)有周期性,它的自相關(guān)函數(shù)也沒(méi)有周期。濁音信號(hào)具有準(zhǔn)周期性。自相關(guān)基因檢測(cè)正是利用這一性質(zhì)對(duì)語(yǔ)音信號(hào)進(jìn)行基因檢測(cè)的。(2)中心消波法檢測(cè)原理:中心消波處理是使用如下圖所示的中心消波函數(shù)進(jìn)行處理的: 圖5-5 中心消波檢測(cè)圖(3)三電平消波法原理:為了減少自相關(guān)計(jì)算中的乘法運(yùn)算,可以把上述中心消波以后的信號(hào)y(n)的自相關(guān)用兩個(gè)信號(hào)的互相關(guān)代替,其中一個(gè)信號(hào)是y(n)另一個(gè)信號(hào)是對(duì)y(n)進(jìn)行三電平量化產(chǎn)生的結(jié)果。且這個(gè)信號(hào)有三種可能的取值,因而這里的互相關(guān)計(jì)算只需要做加減法,而這個(gè)互相關(guān)序列的周期性與y(n)的自相關(guān)序列是近似相同的。三電平法對(duì)語(yǔ)音信號(hào)處理得到的波形如下: 圖5-6 三電平法波形圖中心消波法得到的波形如下圖: 圖5-7 中心消波法波形圖5.3 GUI實(shí)驗(yàn)箱操作界面設(shè)計(jì) 通過(guò)對(duì)各個(gè)控件的編程和對(duì)參數(shù)的設(shè)計(jì),最后得到的GUI實(shí)驗(yàn)箱操作界面如下圖所示,通過(guò)界面上的各個(gè)按鈕即可實(shí)現(xiàn)相應(yīng)的功能。 圖 5-8 GUI實(shí)驗(yàn)箱操作界面 第六章 心得體會(huì)通過(guò)本次課程設(shè)計(jì)完成了對(duì)語(yǔ)音信號(hào)的讀取與打開(kāi),與課題的要求十分相符;初略的完成了界面的設(shè)計(jì),但也存在相當(dāng)?shù)牟蛔悖_(dá)到了打開(kāi)語(yǔ)音文件,顯示已定波形。語(yǔ)音信號(hào)處理時(shí)語(yǔ)音學(xué)與數(shù)字信號(hào)處理技術(shù)相結(jié)合的交叉學(xué)科,將語(yǔ)音當(dāng)做一種特殊的信號(hào),即一種“復(fù)雜向量”來(lái)看待。也就是說(shuō),體現(xiàn)了數(shù)字信號(hào)處理技術(shù)。本次課程設(shè)計(jì)時(shí)希望將數(shù)字信號(hào)處理技術(shù)應(yīng)用于某一實(shí)際領(lǐng)域,這里就是指對(duì)語(yǔ)音的處理。作為存儲(chǔ)于計(jì)算機(jī)中的語(yǔ)音信號(hào),其本身就是離散化了的向量,我們只需要將這些離散的量提取出來(lái),就可以對(duì)其進(jìn)行處理了。本次課設(shè),用到了處理數(shù)字信號(hào)的強(qiáng)有力工具M(jìn)ATLAB,通過(guò)MATLAB里幾個(gè)命令函數(shù)的調(diào)用,很輕易的在實(shí)際化語(yǔ)音與數(shù)字信號(hào)的理論之間搭了一座橋。最后,還利用了MATLAB的另一強(qiáng)大功能GUI界面設(shè)計(jì)。設(shè)計(jì)出了一個(gè)簡(jiǎn)易的用戶應(yīng)用界面,可以讓人實(shí)現(xiàn)界面操作。通過(guò)本次課程設(shè)計(jì)讓我更加了解了語(yǔ)音信號(hào)處理在現(xiàn)實(shí)中的強(qiáng)大的應(yīng)用空間,同時(shí)查閱了很多相關(guān)的資料,應(yīng)用MATLAB軟件來(lái)完成,熟練掌握了MATLAB軟件,本次課程設(shè)計(jì)要求用GUI設(shè)計(jì)模塊,查閱了很多資料,更加深刻的了解了這方面知識(shí)。本次課程設(shè)計(jì),我明白了理論的學(xué)習(xí)需要在實(shí)踐中才能得到鞏固。在課程設(shè)計(jì)中,只有動(dòng)手慢慢研究,才能真正了解MATLAB的運(yùn)用以及各個(gè)基本函數(shù)的調(diào)用方法,掌握GUI實(shí)驗(yàn)箱的設(shè)計(jì)方法及在MATLAB軟件平臺(tái)中可以直接設(shè)計(jì)數(shù)字濾波器的各個(gè)函數(shù)的調(diào)用,對(duì)設(shè)計(jì)GUI實(shí)驗(yàn)箱的所有函數(shù)的運(yùn)用有了比較好的認(rèn)識(shí)。通過(guò)這個(gè)課程設(shè)計(jì),我學(xué)到了很多MATLAB和語(yǔ)音信號(hào)的知識(shí),提高了自己在語(yǔ)音信號(hào)設(shè)計(jì)方面的知識(shí)能力,動(dòng)手能力和思維能力都得到了一定的提升,希望自己以后可以更多的繼續(xù)學(xué)習(xí)這一門(mén)課程設(shè)計(jì)方面的知識(shí)。附錄1.源程序代碼:function varargout = Likunpeng(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Likunpeng_OpeningFcn, . gui_OutputFcn, Likunpeng_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction Likunpeng_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; guidata(hObject, handles);function varargout = Likunpeng_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axes(handles.axes1);plot(1:length(x)/sampling_rate,x) function pushbutton2_Callback(hObject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axis(0 etime -2.5 2.5);axes(handles.axes1);imagesc(0:.010:etime, 0:1000:(sampling_rate/2), log10(abs(spec);axis(xy) function pushbutton7_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L);axes(handles.axes1);plot(r); function pushbutton8_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);axes(handles.axes1);plot(fw);function pushbutton5_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L)pfw=cceps(fw);rpfw=rceps(fw);axes(handles.axes1);plot(rpfw);function pushbutton6_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);pfw=cceps(fw);rpfw=rceps(fw);z=rpfw(1:30);logz=real(exp(fft(z,L);axes(handles.axes1);plot(logz);function pushbutton4_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); L=length(y); fw=y.*hamming(L);r=real(log(fft(fw,L)pfw=cceps(fw);axes(handles.axes1);plot(pfw); function pushbutton3_Callback(hObject, eventdata, handles)global file;y,fs=wavread(file); axes(handles.axes1);plot(y); function pushbutton9_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);%250sw=speech1_10k.*hamming(250);%a Rsw=xcorr(sw);%a t=0.1:0.1:25;axes(handles.axes1);plot(t,sw); function pushbutton10_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); t=0.1:0.1:length(Rsw)/10; axes(handles.axes1); plot(t,Rsw); function pushbutton11_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); w=pi/512:pi/512:pi; FW2=fft(sw,1024); FW3=FW2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(FW3);function pushbutton12_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw4=Rsw(250:253);Rsw(249:252);Rsw(248:251);Rsw(247:250); rea4=inv(Rsw4)*Rsw(251:254); A4=sqrt(Rsw(250)-Rsw(251:254)*rea4); w=pi/512:pi/512:pi; j=sqrt(-1); FW4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); HW4=A4./(1-FW4); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(HW4),g); function pushbutton13_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw6=Rsw(250:255);Rsw(249:254);Rsw(248:253);Rsw(247:252);Rsw(246:251);Rsw(245:250); rea6=inv(Rsw6)*Rsw(251:256); A6=sqrt(Rsw(250)-Rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); FW6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); HW6=A6./(1-FW6); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1); plot(w,log(abs(HW6),r); function pushbutton14_Callback(hObject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); Rsw=xcorr(sw); Rsw4=Rsw(250:253);Rsw(249:252);Rsw(248:251);Rsw(247:250); Rsw6=Rsw(250:255);Rsw(249:254);Rsw(248:253);Rsw(247:252);Rsw(246:251);Rsw(245:250); rea4=inv(Rsw4)*Rsw(251:254); rea6=inv(Rsw6)*Rsw(251:256); A4=sqrt(Rsw(250)-Rsw(251:254)*rea4);A6=sqrt(Rsw(250)-Rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); FW4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); FW6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); HW4=A4./(1-FW4); HW6=A6./(1-FW6); FW2=fft(sw,1024); FW3=FW2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(FW3),w,log(abs(HW4),w,log(abs(HW6); function pushbutton21_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k1=1:1:240 if x2(k1)0 x2(k1)=1; else if x2(k1)=0 x2(k1)=0; else if x2(k1)tc x3(k1)=x3(k1)-tc; else if x3(k1)-tc x3(k1)=x3(k1)+tc; else x3(k1)=0; end endendj=1:240;axes(handles.axes1);plot(j,x3); function pushbutton20_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,x1); function pushbutton19_Callback(hObject, eventdata, handles)global file;Y=wavread(file,1 1800);x1=Y(271:510);x2=Y(271:510);x3=Y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,r); function pushbutton23_Callback(hObject, eventdata, handles)close function pushbutton24_Callback(hObject, eventdata, handles)global file;H=*.wav;filename,pathname=uigetfile(H,);file=strcat(pathname,filename);function pushbutton1_ButtonDownFcn(hObject, eventdata, handles)function pushbutton29_Callback(hObject, eventdata, handles)global file;x=wavread(file);axes(handles.axes1);plot(x);function f=enframe(x,win,inc)nx=length(x(:);nwin=length(win);if (nwin = 1)len = win;elselen = nwin;endif (nargin 1)w = win(:);f = f .* w(ones(nf,1),:);endfunction pushbutton28_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);amp1=sum(abs(yframe),2);axes(handles.axes1);plot(amp1);function pushbutton27_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);amp2=sum(abs(yframe.*yframe),2);axes(handles.axes1);plot(amp2);function pushbutton26_Callback(hObject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);FrameLen=240; FrameInc=80;yframe=enframe(x,FrameLen,FrameInc);tmp1=enframe(x(1:end-1),FrameLen,FrameInc);tmp2=enframe(x(2:end),FrameLen,FrameInc);signs=(tmp1.*tmp2)0.02;zcr=sum(signs.*diffs,2);axes(handles.axes1);plot(zcr);參考文獻(xiàn)1 劉慶華 陳紫強(qiáng).基于MATLAB和DSP的語(yǔ)音信號(hào)處理課程的建設(shè).電氣電子教學(xué)學(xué)報(bào).2006,10(3):124-128 2 張力.MATLAB在語(yǔ)音信號(hào)處理輔助教學(xué)中的應(yīng)用.電氣電子教學(xué)學(xué)報(bào).2005,27卷2 期:96-99 3 鄧立新 楊震.信息技術(shù)融入“語(yǔ)音信號(hào)處理”課程的教學(xué)實(shí)踐.電氣電子教學(xué)學(xué)報(bào).2005,27卷5期:13-16 4 胡航.語(yǔ)音信號(hào)處理.哈爾濱工業(yè)大學(xué)出版社.2005年2月,第二版:96-1015 張平.matlab基礎(chǔ)與應(yīng)用.北京航空航天大學(xué)出版社.2007,第二版:135-1376 謝德芳.數(shù)字信號(hào)處理.北京科學(xué)出版社.2005, 第一版:85-927 陳后金 薛健.數(shù)字信號(hào)處理.北京高等教育出版社.2004, 第一版:65-698 維納K英格爾 劉樹(shù)堂.數(shù)字信號(hào)處理(MATLAB版).西安交通大學(xué)出版社.2008, 第二版:204-2089 張小虹.信號(hào)系統(tǒng)與數(shù)字信號(hào)處理.西安電子科技出版社.2002, 第一版:32-3910 蔡啟忠.控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)(MATLAB版).重慶大學(xué)出版社.2003, 第一版:61-6811 趙力.語(yǔ)音信號(hào)處理.機(jī)械工業(yè)出版社.2003,第二版:168-17212 李昌立 吳善培.數(shù)字語(yǔ)音-語(yǔ)音編碼實(shí)用教材.人民郵電出版社.2004,142-149 13 易克初.語(yǔ)音信號(hào)處理.國(guó)防工業(yè)出版社.2000,第一版:146-150 14 朱民雄.計(jì)算機(jī)語(yǔ)音技術(shù)(修訂版).北京航空航天大學(xué)出版社.2002,第一版:152-16815 張建平.數(shù)字信號(hào)處理實(shí)驗(yàn)教程.清華大學(xué)出版社.2010,第二版:205-213 16 張雄偉.現(xiàn)代語(yǔ)音處理技術(shù)及應(yīng)用機(jī)械工業(yè)出版社.2003,第二版:168-17517 吳家安.語(yǔ)音編碼技術(shù)及應(yīng)用.機(jī)械工業(yè)出版社.2006,第一版:258-26218 劉幺和 宋庭新.語(yǔ)音識(shí)別與控制應(yīng)用技術(shù).科學(xué)出版社.2008,第二版:162-16519 李昌立 吳善培.數(shù)字語(yǔ)音語(yǔ)音編碼實(shí)用教程.人民郵電出版社.2004,第一版:167-171 20 姚天任.數(shù)字語(yǔ)音處理.華中科技大學(xué)出版社.1992,第二版:235-238 21 王炳錫.語(yǔ)音編碼.西安電子科技大學(xué)出版社.2002, 第一版:185-192袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃蠆羆艿薃袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)PVC便箋盒數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)面罩市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)鋁研磨面板材市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)連接器端子市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)網(wǎng)站監(jiān)護(hù)與綜合管理系統(tǒng)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)硬質(zhì)合金左螺旋鉸刀市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)電動(dòng)耙市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)汽車(chē)全套飾件市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)改性PE多孔管市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)弱酸染料市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030中國(guó)柔性直流輸電行業(yè)運(yùn)營(yíng)規(guī)劃及發(fā)展前景深度分析報(bào)告
- 安全產(chǎn)風(fēng)險(xiǎn)管理制度
- 深化國(guó)有企業(yè)改革調(diào)研提綱
- 小學(xué)騎車(chē)安全課件
- 公司個(gè)人獨(dú)資章程范本
- 《中國(guó)酒類(lèi)企業(yè)ESG披露指南》
- 2025至2030年中國(guó)玉米淀粉行業(yè)市場(chǎng)現(xiàn)狀分析及前景戰(zhàn)略研判報(bào)告
- 2025年江蘇高考政治試卷真題解讀及答案講解課件
- 2025上半年山東高速集團(tuán)有限公司社會(huì)招聘211人筆試參考題庫(kù)附帶答案詳解析集合
- 遼寧省點(diǎn)石聯(lián)考2024-2025學(xué)年高二下學(xué)期6月份聯(lián)合考試化學(xué)試題(含答案)
- 安徽省2025年普通高校招生志愿預(yù)填表(普通類(lèi))
評(píng)論
0/150
提交評(píng)論