模式識別導論課程論文(共47頁)_第1頁
模式識別導論課程論文(共47頁)_第2頁
模式識別導論課程論文(共47頁)_第3頁
模式識別導論課程論文(共47頁)_第4頁
模式識別導論課程論文(共47頁)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、模式識別(m sh sh bi)導論課程(kchng)論文題 目 基于(jy)Matlab的語音識別系統(tǒng) 院(系) 專業(yè)學生名單 指導教師 指導教師工作單位 起訖日期 年 月 至 月 摘 要語音(yyn)是人的自然屬性之一,是人類信息交流的基本手段(shudun)。語音中包含有多種信息,如語義信息、語言信息、說話人信息、情感信息等。語音識別(shbi)就是從語音信號中識別出這些信息。按照任務的不同,語音識別可以分為四個方面:說話人識別、語種識別、關鍵詞識別和連續(xù)語音識別。語音識別是以聲音作為研究對象,它是語音信號處理的一個重要研究方向,是模式識別的一個分支涉及到生理學、心理學、語言學、計算機科

2、學以及信號處理等諸多領域,甚至還涉及到人的體態(tài)語言(如人在說話時的表情、手勢等行為動作可幫助對方理解),其最終目標是實現(xiàn)人與機器進行自然語言通信。語音識別作為一門兼具理論價值與應用價值的研究課題,得到越來越多研究者的興趣和關注,各種各樣的語音識別方法層出不窮。本次課程論文通過分析MFCC系數(shù)和語音識別的基本原理,應用Matlab 設計實驗程序并結(jié)合VQ矢量量化模型完成語音識別的VQ實現(xiàn)。本次課程論文通過語音識別的相關的背景、步驟以及原理,設計了三個matlab語音識別實驗,并包含了實驗的流程和結(jié)果。在附錄中附有程序代碼,以供參考。關鍵詞:語音識別;MatlabABSTRACTVoice is

3、one of the peoples natural attribute, which is the basic means of communication.Voice contains many information, such as semantic information, language information, the speaker, effective information and so on. Voice recognition is to recognize these information from the voice signal. According to t

4、he different roles, voice recognition can be divided to four floor, including the speaker recognition, the type of voice recognition, the key words recognition and the recognition of continuous voice.The voice recognition bases on the voice as a research object, is an important direction for the voi

5、ce recognition process, which is a branch of model recognition involving physiology, psychology, philology, computer science, signal process and other fields, even involving body language. The final target is to make the machine communicate with human beings.In recent years, face recognition researc

6、h topics, which have both theoretical value and application value, attracted more and more researchers. A wide variety of face recognition methods emerge in an endless stream.This thesis analyzes the basic principle of the VQ and voice recognition. And the experimental procedure is designed with mat

7、lab for completing new methods in voice recognition based on VQ.This paper describes the analysis and design background, steps as well as the principle of the process and design three matlab experiments for the voice recognition, which contains experiment process and results. With program code in th

8、e appendix for reference.Key words:Voice recognition; Matlab; 目 錄1.緒論(xln)11.1課題研究(ynji)的目的11.2課題(kt)研究的意義11.3國內(nèi)外研究概況2原理分析52.1語音識別系統(tǒng)的特征提取52.2語音識別系統(tǒng)的分類模型8語音識別的整體過程113.1 語音識別系統(tǒng)的結(jié)構(gòu)113.2語音信號預處理113.3語音信號的特征提取153.4用矢量量化聚類法生成碼本163.5VQ的說話人識別174.實驗設計184.1實驗一184.2實驗二184.3實驗三19實驗結(jié)果215.1實驗一215.2實驗二235.3實驗三26總結(jié)2

9、77.程序代碼28致謝45參考文獻45 1.緒論(xln)1.1課題研究(ynji)的目的近年來,語音(yyn)識別作為一門兼具理論價值與應用價值的研究課題,得到越來越多研究者的興趣和關注,各種各樣的語音識別方法層出不窮。 本次課程論文通過語音識別的基本原理,應用Matlab 設計實驗程序。1.2課題研究的意義語音識別是以聲音作為研究對象它是語音信號處理的一個重要研究方向,是模式識別的一個分支涉及到生理學、心理學、語言學、計算機科學以及信號處理等諸多領域,甚至還涉及到人的體態(tài)語言(如人在說話時的表情、手勢等行為動作可幫助對方理解),其最終目標是實現(xiàn)人與機器進行自然語言通信。語音識別是近年來十分

10、活躍的一個研究領域。語音識別技術作為一種重要的人機交互手段,輔助甚至取代傳統(tǒng)的鍵盤、鼠標等輸入設備,在個人計算機和手機等數(shù)碼產(chǎn)品上進行文字錄入和操作控制。同時在手持式PDA、智能家電、工業(yè)現(xiàn)場控制等應用場合,語音識別技術則有更為廣闊的發(fā)展前景。由于計算機功能的日益強大,存儲技術、語音算法技術和信號處理技術的長足進步,以及軟件編程水平的提高,語音識別技術已經(jīng)取得突破性的進展。語音識別技術的應用主要有以下兩個方面。一是用于人機交流。語音識別技術的采用,改變了人與計算機的互動模式,人們只需動動口,就能打開或關閉程序,改變工作界面。這種使電腦人性化的結(jié)果是使人的雙手得到解放,使每個人都能操作和應用計算

11、機。語音識別技術的另一方面應用便是語音輸入和合成語音輸出?,F(xiàn)在,已經(jīng)出現(xiàn)能將口述的文稿輸入計算機并按指定格式編排的語音軟件,它比通過鍵盤輸入在速度上要提高24倍。裝有語音軟件的電腦還能通過語音合成把計算機里的文件用各種語言“讀”出來,這將大大推進遠程通信和網(wǎng)絡電話的發(fā)展。在現(xiàn)階段,語音技術主要用于電子商務、客戶服務和教育培訓等領域,它對于節(jié)省人力、時間,提高工作效率將起到明顯的作用。能實現(xiàn)自動翻譯的語音識別系統(tǒng)目前也正在研究、完善之中。語音識別是一門交叉學科。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。人們預計,未來 10 年內(nèi),語音識別技術將進入工業(yè)、家電、通信、汽車電子、醫(yī)

12、療、家庭服務、消費電子產(chǎn)品等各個領域。1.3國內(nèi)外研究(ynji)概況20世紀50代,就有人(yu rn)提出“口授(kushu)打印機”的設恕。可以說,這是有關語音識別技術最早構(gòu)想。語音識別技術經(jīng)歷了語音識別、語音合成以及自然語音合成3個階段。從原理上講,似乎讓計算機識別人的語言并不難,其實困難還是不少的。例如,不同的人讀同一個詞所發(fā)出的音在聲學特征上卻不完全相同;即便是同一個人,右不同情況下對同一個字的發(fā)音也不相同。加上人們講話時常有不合語法規(guī)律的情況,有時還夾雜些俗語,或省略一些詞語,而且語速變化不定。所有這些,在我們聽別人講話時似乎都不成為問題,但讓機器理解則很是困難。按照任務的不同,

13、語音識別可以分為四個方面:說話人識別、語種識別、關鍵詞識別和連續(xù)語音識別。1952年貝爾研究所Davis等人研究成功了世界上第一個能識別10個英文數(shù)字發(fā)音的實驗系統(tǒng)。1960年英國的Denes等人研究成功了第一個計算機語音識別系統(tǒng)。大規(guī)模的語音識別3 研究是在進入了70年代以后,在小詞匯量、孤立詞的識別方面取得了實質(zhì)性的進展。進入80年代以后,研究的重點逐漸轉(zhuǎn)向大詞匯量、非特定人連續(xù)語音識別。在研究思路上也發(fā)生了重大變化,即由傳統(tǒng)的基于標準模板匹配的技術思路開始轉(zhuǎn)向基于統(tǒng)計模型 (HMM)的技術思路。此外,再次提出了將神經(jīng)網(wǎng)絡技術引入語音識別問題的技術思路。進入90年代以后,在語音識別的系統(tǒng)框

14、架方面并沒有什么重大突破。但是,在語音識別技術的應用及產(chǎn)品化方面出現(xiàn)了很大的進展。DARPA(Defense Advanced Research Projects Agency)是在70年代由美國國防部遠景研究計劃局資助的一項10年計劃,其旨在支持語言理解系統(tǒng)的研究開發(fā)工作。到了80年代,美國國防部遠景研究計劃局又資助了一項為期10年的DARPA戰(zhàn)略計劃,其中(qzhng)包括噪聲下的語音識別和會話(口語)識別系統(tǒng),識別任務設定為“(1000單詞)連續(xù)語音(yyn)數(shù)據(jù)庫管理”。到了90年代,這一DARPA計劃仍在持續(xù)進行中。其研究重點已轉(zhuǎn)向識別裝置(zhungzh)中的自然語言處理部分,識別

15、任務設定為“航空旅行信息檢索”。日本也在1981年的第五代計算機計劃中提出了有關語音識別輸入-輸出自然語言的宏偉目標,雖然沒能實現(xiàn)預期目標,但是有關語音識別技術的研究有了大幅度的加強和進展。1987年起,日本又擬出新的國家項目高級人機口語接口和自動電話翻譯系統(tǒng)。中國發(fā)展中國的語音識別研究起始于1958年,由中國科學院聲學所利用電子管電路識別10個元音。直至1973年才由中國科學院聲學所開始計算機語音識別。由于當時條件的限制,中國的語音識別研究工作一直處于緩慢發(fā)展的階段。進入80年代以后,隨著計算機應用技術在中國逐漸普及和應用以及數(shù)字信號技術的進一步發(fā)展,國內(nèi)許多單位具備了研究語音技術的基本條件

16、。與此同時,國際上語音識別技術在經(jīng)過了多年的沉寂之后重又成為研究的熱點,發(fā)展迅速。就在這種形式下,國內(nèi)許多單位紛紛投入到這項研究工作中去。1986年3月中國高科技發(fā)展計劃(863計劃)啟動,語音識別作為智能計算機系統(tǒng)研究的一個重要組成部分而被專門列為研究課題。在863計劃的支持下,中國開始了有組織的語音識別技術的研究,并決定了每隔兩年召開一次語音識別的專題會議。從此中國的語音識別技術進入了一個前所未有的發(fā)展階段。目前在大詞匯語音識別方面處于領先地位的IBM語音研究小組,就是在70年代開始了它的大詞匯語音識別研究工作的。AT&T的貝爾研究所也開始了一系列有關非特定人語音識別的實驗。這一研究歷經(jīng)1

17、0年,其成果是確立了如何制作用于非特定人語音識別的標準模板的方法。這一時期所取得的重大進展有:隱式馬爾科夫模型(HMM)技術的成熟和不斷完善成為語音識別的主流方法。以知識為基礎的語音識別的研究日益受到重視。在進行連續(xù)語音識別的時候,除了(ch le)識別聲學信息外,更多地利用各種語言知識,諸如構(gòu)詞、句法、語義、對話背景方面等的知識來幫助進一步對語音作出識別和理解。同時在語音識別研究領域,還產(chǎn)生了基于統(tǒng)計概率的語言模型。人工神經(jīng)網(wǎng)絡在語音識別中的應用研究的興起。在這些研究中,大部分采用基于反向傳播算法(BP算法)的多層感知網(wǎng)絡。人工神經(jīng)網(wǎng)絡具有區(qū)分復雜的分類邊界的能力(nngl),顯然它十分有助

18、于模式劃分。特別是在電話語音識別方面,由于其有著廣泛的應用前景,成了當前語音識別應用的一個熱點。另外,面向個人用途的連續(xù)語音聽寫機技術也日趨完善。這方面,最具代表性的是IBM的ViaVoice和Dragon公司的Dragon Dictate系統(tǒng)。這些系統(tǒng)具有(jyu)說話人自適應能力,新用戶不需要對全部詞匯進行訓練,便可在使用中不斷提高識別率。中國的語音識別技術的發(fā)展 :在北京有中科院聲學所、自動化所、清華大學、北方交通大學等科研機構(gòu)和高等院校。另外,還有哈爾濱工業(yè)大學、中國科技大學、四川大學等也紛紛行動起來?,F(xiàn)在,國內(nèi)有不少語音識別系統(tǒng)已研制成功。這些系統(tǒng)的性能各具特色。 = 1 * GB3

19、 * MERGEFORMAT 在孤立字大詞匯量語音識別方面,最具代表性的要數(shù)92年清華大學電子工程系與中國電子器件公司合作研制成功的THED-919特定人語音識別與理解實時系統(tǒng)。 = 2 * GB3 * MERGEFORMAT 在連續(xù)語音識別方面,91年12月四川大學計算機中心在微機上實現(xiàn)了一個主題受限的特定人連續(xù)英語漢語語音翻譯演示系統(tǒng)。 = 3 * GB3 * MERGEFORMAT 在非特定人語音識別方面,有清華大學計算機科學與技術系在87年研制的聲控電話查號系統(tǒng)并投入實際使用。2.原理(yunl)分析2.1 語音(yyn)識別系統(tǒng)的特征提取語音識別系統(tǒng)中的特征提取即提出適合分類的某些信

20、息特征(如說話(shu hu)人,或語言特征,或關鍵詞特征),次特征應能有效地區(qū)分不同的模式,而且對同種方式的變化保持相對穩(wěn)定。目前的語音識別系統(tǒng)主要依靠較低層次的聲學特征進行識別。語音識別特征大致可以分為3類:(1)線性預測系數(shù)及其派生參數(shù),如線性預測系數(shù)(LPC)、線譜對系數(shù)、線性預測倒譜系數(shù)(LPCC)及其組合參數(shù)。(2)由語音頻譜直接導出的參數(shù),如基音(Pitch)及其輪廓、美爾頻率倒譜系數(shù)(MFCC)、感知線性預測(PLP)參數(shù)、口音敏感倒譜系數(shù)(ASCC)。(3)混合參數(shù)?;旌蠀?shù)由以上不同的參數(shù)組成的矢量。語音識別中幾種常用的參數(shù):線性預測系數(shù)(LPC)語音產(chǎn)生的線性預測模型是2

21、0世紀50年代提出的,其中,聲道和嘴唇的聲輻射以及聲門激勵的組合譜效應被模型化為一個時變數(shù)字濾波器,其穩(wěn)態(tài)系統(tǒng)傳輸函數(shù)為 ,該式子把語音信號s(n)建模成一個P階的AR過程。對于濁音段,此系統(tǒng)受準周期沖激串激勵;對于清音段,該系統(tǒng)則受隨機噪聲序列激勵。此模型的參數(shù)有濁音/清音判決、濁音語音的基音周期、增益常數(shù)G及數(shù)字濾波器參數(shù)。利用該傳輸函數(shù)可得到語音信號s(n)合成的差分方程為,可以看出,s(n)是前P個語音(yyn)信號采樣值s(n-1),s(n-2),s(n-P)的線性組合,因此(ync)該語音產(chǎn)生模型通常被稱為線性預測(LP)模型或自回歸(AR)模型。(k=1,2,P)為線性預測系數(shù),

22、是從語音信號中提取出來的。聲道形狀在時間上是變化的,所以預測系數(shù)也是時變的。根據(jù)語音信號的短時平穩(wěn)性,可認為(rnwi)語音在每一個分析幀(1030ms)上是非時變的,從而計算得到一組預測系數(shù)。計算預測系數(shù)的常用方法是自相關法,其思想為使預測誤差e(n)的均方值最小。,其中:,稱做s(n)的預測值或估計值。計算的準則是使極小,故令得到一個線性方程組: 其中稱為語音短時自相關系數(shù),N為語音幀的樣點數(shù),P為預測器階數(shù),用德賓(Durbin)算法解方程式即可得(k=1,2,P)。Levinson-Durbin遞推算法求解過程:采用Durbin算法(sun f)遞推時,從零階預測開始,此時P=0,可以

23、(ky)逐步遞推出一直(yzh)到。最后用確定增益G值。其中各階預測系數(shù)的最后一個值被定義為偏相關系數(shù),整個遞推過程為(1)(2)(3)(4)(5)如果iP則轉(zhuǎn)到(2),如果i=P則終止計算。最終解為,其中代表第n幀的自相關函數(shù),表示第i階預測器的第j個預測系數(shù),計算結(jié)束后會得到各階預測器的預測系數(shù)、反射系數(shù)和各階預測誤差功率。線性預測倒譜系數(shù)(LPCC)同態(tài)信號處理就是將非線性問題轉(zhuǎn)化為線性問題來進行處理的一種方法。對語音信號產(chǎn)生過程建模成一個激勵信號通過時變系統(tǒng)的過程,即一個卷積的過程,卷積作為一個非線性問題可使用同臺處理來解決。LPC系數(shù)可以用來估計語音信號的倒譜,這也是語音信號短時倒譜

24、分析中一種特殊的處理方法。聲道傳輸函數(shù)H(z)的沖激響應為h(n),首先求序列h(n)的倒譜。因為H(z)是最小相位的,所以可以求出和之間的遞推關系為 由上式可以直接(zhji)從預測系數(shù)推得倒譜,由于這個倒譜是從線性預測系數(shù)得到的,因此又稱之為LPC倒譜(LPCC)。由于LPCC利用(lyng)了線性預測中聲道傳輸函數(shù)H(z)的最小相位特性,因此避免了一般同態(tài)處理中求復對數(shù)而帶來的相位卷繞的問題。美爾頻率(pnl)倒譜系數(shù)(MFCC)MFCC不同于LPCC,它是在頻譜上采用濾波器組的方法計算出來的,這組濾波器在頻率的美爾(Mel)坐標上是等帶寬的。這是因為人類在對1000Hz以下的聲音頻率范

25、圍的感知遵循近似線性關系。美爾刻度與頻率的關系式為 MFCC正是基于這個現(xiàn)象提出的,它的計算過程如下圖所示圖2 MFCC的計算過程語音信號在經(jīng)過加窗處理后變?yōu)槎虝r信號,用FFT計算它的能量譜之后,通過一個具有40個濾波器的濾波器組,前13個濾波器在1000Hz以下是線性劃分的,后27個濾波器在1000Hz以上是在美爾坐標上線性劃分的。如果表示第k個濾波器的輸出能量,則美爾頻率倒譜在美爾刻度譜上可以采用修改的離散余弦變換(DCT)求得,其中,P為MFCC參數(shù)的階數(shù)。2.2 語音識別系統(tǒng)的分類模型 模型建立是指在訓練階段用合適的模型來表征這些參數(shù),使得模型能夠代表該語言的語音特性。對模型的選擇主要

26、應從語音的類型、所期望的性能、訓練和更新的難易程度以及計算量和存儲量等方面綜合考慮??煞譃橐韵滤念悾耗0迤ヅ淠P停簭拿糠N模型的訓練語句中提取相應的特征矢量,這些特征矢量稱為模板。識別時,從語音信號中按同樣的處理法提取測試模板,并且與其(yq)相應的參考模板相比較。模板匹配模型的不足之處在于不能全面地反映樣本分布及統(tǒng)計特性,適應性較差。典型的模板匹配模型有最鄰近(NN)模型、動態(tài)時間規(guī)整(DTW)模型和矢量量化(VQ)模型。概率統(tǒng)計生成模型(又稱參數(shù)模型):語音信號(xnho)具有短時平穩(wěn)性,通過對穩(wěn)態(tài)特征如基音、聲門增益、低階反射系數(shù)的統(tǒng)計分析,可以利用均值、方差等統(tǒng)計量和概率密度函數(shù)進行分類

27、判決。概率統(tǒng)計生成模型采用某種概率密度函數(shù)來描述語音特性在特性空間的分布情況,并以該概率密度函數(shù)的一組參數(shù)作為語音模型。概率統(tǒng)計生成模型由于考慮了語音的統(tǒng)計特性,能較全面地反映語音的統(tǒng)計信息,其優(yōu)點是不用對特征參量在時域上進行規(guī)整。典型的概率統(tǒng)計生成模型有隱馬爾可夫模型(HMM)和高斯混合模型(GMM)。神經(jīng)網(wǎng)絡模型(ANN):人工神經(jīng)網(wǎng)絡在某種程度上模擬了生物的感知特性,它是一種分布式并行處理結(jié)構(gòu)的網(wǎng)絡模型,具有自組織和自學習能力、很強的復雜分類邊界區(qū)分能力以及對不完全信息的穩(wěn)健性,其性能近似理想的分類器。其缺點是訓練時間長,動態(tài)時間規(guī)整哪里弱。目前(mqin)常用的神經(jīng)網(wǎng)絡模型有多層次感知

28、器(MLP)、徑向基函數(shù)(RBF)網(wǎng)絡、自組織映射(SOM)網(wǎng)絡和支持向量機(SVM)網(wǎng)絡等。融合模型:把以上分類方法與不同特征進行有機組合可顯著提高語音識別的性能。動態(tài)時間規(guī)整(DTW)模型:由于語速、語調(diào)、重音和韻律的變化,語音信息存在時變因素,從而使得測試模板和參考模板在時間尺度上可能不完全一致。因此,需要將識別模板和參考模板進行時間對齊,按照某種距離測度計算兩模板間的相似程度。模板序列與輸入序列不均勻匹配得分z定義為 ,其中,模板標記j(i)是由基于最鄰近原則的動態(tài)時間規(guī)整法(DTW)給出的。DTW算法使z最小化,將兩個信號進行時間上的對齊。在時間對齊后,最終的距離和是匹配得分基礎。矢

29、量(shling)量化(VQ)模型:一般采用LBG算法把訓練數(shù)據(jù)進行聚類生成碼本,即參考模板的集合。識別(shbi)時,對輸入矢量進行矢量量化,以量化產(chǎn)生的失真度作為判決標準。L幀測試語音矢量的匹配(ppi)得分為 ,其中,C是參考模板的集合。VQ模型不需對要時間進行對齊,具有復雜度低、精度較高以及判斷速度快的優(yōu)點。3、隱馬爾可夫模型(HMM):隱馬爾可夫模型把語音建模成由可觀察的符號序列組成的隨機過程,符號序列是發(fā)聲系統(tǒng)狀態(tài)序列的輸出。HMM為有限狀態(tài)的隨機過程,從狀態(tài)到狀態(tài)的轉(zhuǎn)移概率為;對應于狀態(tài),語音特征x(隨機向量)的概率密度函數(shù)為。由給定模型M產(chǎn)生具有L幀語音特征向量(連續(xù))的似然值

30、為,其中,表示所有可能狀態(tài)的集合。對于離散的語音特征向量,和為相應的概率。在使用HMM識別時,為每個說話人建立發(fā)聲模型,通過訓練得到狀態(tài)轉(zhuǎn)移概率矩陣和語音特征向量的概率密度矩陣。識別時計算未知語音在狀態(tài)轉(zhuǎn)移過程中的最大似然值或概率,根據(jù)最大似然值或概率的模型進行判決。高斯混合模型(GMM):高斯混合模型本質(zhì)上是一種多維概率密度函數(shù),可以用來表示語音特征矢量的分布。一個具有M個混合數(shù)的D維GMM,其概率密度函數(shù)用M個高斯分量的加權和來表示,即 ,其中,x是一個D維德觀測矢量;為混合權值,滿足 ;為D維高斯密度函數(shù),即其中(qzhng),為均值(jn zh)矢量;為協(xié)方差矩陣(j zhn);D是參

31、數(shù)的維數(shù)高斯混合模型可由各均值矢量、協(xié)方差矩陣及混合權值來描述,可表示為三元式 在GMM模型中,首先對特征矢量進行聚類,把每一類看做是一個多維高斯分布函數(shù);然后,求出每一類的均值、協(xié)方差矩陣和出現(xiàn)的概率,得到每種模式的訓練模板;最后,將觀測序列代入每個模板,對應于最大的后驗概率的模板作為所識別的對象。3.語音識別的整體過程3.1 語音識別系統(tǒng)的結(jié)構(gòu)典型的語音識別系統(tǒng)結(jié)構(gòu)框圖如下圖所示,一個完整的語音識別系統(tǒng)包括預處理、特征提取、模型建立、模式匹配和判決規(guī)則(guz)等5個部分。圖1 語音(yyn)識別系統(tǒng)的結(jié)構(gòu)框圖 語音識別是屬于人工智能領域中的一項技術(jsh),從本質(zhì)上講,語音識別技術是一

32、個語音信號模式識別問題,它由訓練(或注冊)和識別(或測試)兩個階段完成。從訓練語音中提取語音特征、建立參考模型并儲存的過程稱為訓練階段;從待識別語音中提取語音特征,依據(jù)參考模型進行比較和判決的過程稱為識別階段。3.2 語音信號預處理 實際的語音信號是模擬信號,因此在對語音信號進行數(shù)字處理之前,首先要將模擬語音信號s(t)以采樣周期T采樣,將其離散化為s(n),采樣周期的選取應根據(jù)模擬語音信號的帶寬來確定,以避免信號的頻域混疊失真。在對離散后的語音信號進行量化處理過程中會帶來一定的量化噪聲和失真。語音信號的預處理包括預加重和加窗分幀處理。3.2.1 語音信號預加重處理 預加重的目的是提升高頻部分

33、,使信號的頻譜變得平坦,保持在低頻到高頻的整個頻帶中,能用同樣的信噪比求頻譜,以便于頻譜分析或聲道參數(shù)分析。用預加重數(shù)字濾波器來實現(xiàn),它一般是一階的數(shù)字濾波器:,其中,為預加重系數(shù),一般3.2.2 語音信號(xnho)分幀處理進行預加重數(shù)字濾波器處理之后,接下來就要進行加窗分幀處理。分幀是用可移動的有限長度窗口進行加權的方法來實現(xiàn)的,即用一定的窗函數(shù)w(n)來乘以s(n),從而形成(xngchng)加窗語音信號在語音信號數(shù)字處理(chl)中常用的窗函數(shù)有兩種,一種是矩形窗,另一種是漢明窗。矩形窗 ,其中,N為幀長clear all;x=linspace(0,100,1000); %在0到100

34、的橫坐標間取10000個點h=zeros(10000,1); %為矩陣h賦0值h(1001:8000)=1; %矩形窗長,窗內(nèi)取值為1subplot(211);plot(h); %畫時域波形title(矩形窗時域波形,fontsize,18);xlabel(樣點數(shù),fontsize,18);ylabel(幅度,fontsize,18);axis(0,10000,-1,2);w=h(1001:1060); %取窗長內(nèi)的60個數(shù)據(jù)點W=fft(w,1024); %對時域信號進行1024點的傅里葉變換W2=W/W(1); %幅度(fd)歸一化W3=20*log10(abs(W2); %對歸一化幅度(

35、fd)取對數(shù)W4=2*0:511/1024; %頻率(pnl)歸一化subplot(212);plot(W4,W3(1:512); %畫幅頻特性圖title(矩形窗幅頻特性,fontsize,18);xlabel(歸一化頻率,fontsize,18);ylabel(幅度/dB,fontsize,18);漢明窗 在確定了窗函數(shù)以后,對語音信號的分幀處理,實際上就是對各幀進行某種變換或運算。設這種變化或運算用T表示,x(n)為輸入語音信號,w(n)為窗序列,h(n)是與w(n)有關的濾波器,則各幀經(jīng)處理后的輸出可以表示為,這樣經(jīng)過上述處理過程,語音信號就已經(jīng)被分割成一幀一幀的加過窗函數(shù)的短時信號,

36、然后再把每一個短時語音信號幀看成平穩(wěn)的隨機信號,利用數(shù)字信號處理技術來提取語音特征參數(shù)。在進行處理時,按幀從數(shù)據(jù)區(qū)中取出數(shù)據(jù),處理完成后再取下一幀,等等,最后得到由每一幀參數(shù)組成的語音特征參數(shù)的時間序列。clear all;h=hamming(60); %取60個點的漢明窗值subplot(211);plot(h); %畫時域波形title(漢明窗時域波形,fontsize,18);xlabel(樣點數(shù),fontsize,18);ylabel(幅度(fd),fontsize,18);H=fft(h,1024); %對時域信號進行(jnxng)1024點的傅里葉變換H1=H/H(1);H2=20

37、*log10(abs(H1);H3=2*0:511/1024;subplot(212);plot(H3,H2(1:512); %畫幅頻特性圖title(漢明窗幅頻特性,fontsize,18);xlabel(歸一化頻率(pnl),fontsize,18);ylabel(幅度/dB,fontsize,18);3.2.3 端點檢測語音信號起止點的判別式任何一個語音識別系統(tǒng)必不可少的組成部分。因為只有準確地找出語音段的起始點和終止點,才有可能使采集到的數(shù)據(jù)是真正要分析的語音信號,這樣不但減少了數(shù)據(jù)量、運算量和處理時間,同時也有利于系統(tǒng)識別率的改善。常用的端點檢測方法有兩種:短時平均幅度 端點檢測中需

38、要計算信號的短時能量,由于短時能量的計算涉及到平方運算,而平方運算擴大了振幅不等的任何相鄰取樣值之間的幅度差別,給窗的寬度選擇帶來了困難,因為必須用較寬的窗才能對取樣間的平方幅度起伏有較好的平滑效果,然而又可能導致短時能量反映不出語音能量的時變特點。而用短時平均幅度來表示語音能量,在一定程度上可以克服這個弊端。短時平均過零率 當離散信號的相鄰兩個取樣值具有不同的符號時,便出現(xiàn)過零現(xiàn)象,單位時間內(nèi)過零的次數(shù)叫做過零率。如果離散時間的包絡是窄帶信號,那么過零率可以比較準確地反映該信號的頻率。在寬帶信號情況下,過零率只能粗略地反映信號的頻譜特性。端點檢測系統(tǒng)包括語音預處理模塊、能量和過零率參數(shù)提取模

39、塊、端點檢測模塊,下圖為基于能量和過零率的兩級三門限判決的語音端點檢測系統(tǒng)的框架?;谀芰亢瓦^零率的語音端點檢測算法步驟(bzhu)如下: = 1 * GB3 * MERGEFORMAT 語音信號(xnho)進行預加重和分幀處理,對語音的高頻部分進行了加重,增加了語音的高頻分辨率,同時將分幀后的信號記為,n為離散語音信號時間(shjin)序列,N為幀長 = 2 * GB3 * MERGEFORMAT 計算每一幀語音信號的短時能量和短時過零率 = 3 * GB3 * MERGEFORMAT 考察語音的平均能量設置一個較高的門限,用以確定語音開始;然后再根據(jù)背景噪聲平均能量確定一個稍低門限,用以確

40、定第一級中的語音結(jié)束點。完成第一級判決,然后根據(jù)背景噪聲的平均過零率來設置第三個門限,最終判斷出語音的準確的邊界點。3.3 語音識別的特征提取 語音線性預測的基本思想是:由于語言樣點之間存在相關性,所以可以用過去的樣點值來預測現(xiàn)在或未來的樣點值,即一個語音信號的抽樣值可以用過去若干個取樣值得線性組合來逼近。通過使實際語音抽樣和線性預測抽樣之間的誤差在某個準則下達到最小值來決定唯一的一組預測系數(shù)。3.3.1 LPC譜估計 根據(jù)語音信號產(chǎn)生的模型,語音的功率譜等于激勵源功率譜與各極點線性濾波器頻率特性的模的平方的乘積。由于激勵源是準周期沖擊序列或白噪聲,其功率是平坦的,因此,語音的功率譜主要由全極

41、點線性濾波器頻率特性決定。所以,LPC可以看作是對語音信號的短時譜進行估計的一種有效方法。3.3.2 LPC倒譜估計語音信號的倒譜分析就是求取語音倒譜特征系數(shù)的過程,它可以通過同態(tài)處理來實現(xiàn)。同態(tài)信號處理也稱為同態(tài)濾波,它實現(xiàn)了將卷積關系變換為求和關系的分離處理,即解卷。對語音信號進行解卷,可將語音信號的聲門激勵信息及聲道響應信息分離出來,從而求得聲道共振特征和基音周期。當預測階數(shù)很大時,語音信號的短時譜滿足,因此可以認為包含了語音信號譜的包絡信息,即可近似認為等價于原始信號x(n)的短時譜,通過對倒譜的分析,可以分別估計語音信號短時譜包絡和聲門激勵參數(shù),實現(xiàn)方法如下:直接從LPC系數(shù)估計(g

42、j)語音信號的短時譜包絡先通過信號做FFT、對數(shù)變換運算(yn sun),然后再求得逆FFT以及選用(xunyng)適當?shù)妮o助因子獲得倒譜,并用低時窗取出譜包絡信息經(jīng)線性預測分析取得H(z),然后遞推出LPC倒譜,從而求得短時譜包絡。3.3.2 MFCC參數(shù)MFCC參數(shù)的提取過程如下:對語音信號進行分幀、加窗,然后作離散時間傅里葉變換,獲得頻譜分布信息。設語音信號為,其中,x(n)為語音信號,N為傅里葉變換的點數(shù)。求頻譜幅度的平方,得到能量譜將能量譜通過一組Mel尺度的三角形濾波器組。定義一個有M個濾波器的濾波器組(濾波器的個數(shù)和臨界帶的個數(shù)相近),采用的濾波器為三角濾波器,中心頻率為f(m)

43、,m=1,2,3,M(本系統(tǒng)取M=100)計算每個濾波器組輸出的對數(shù)能量 ,其中,為三角濾波器的頻率響應經(jīng)過離散弦變換(DCT)得到MFCC系數(shù) ,MFCC系數(shù)個數(shù)通常取20-30,一般不用0階倒譜系數(shù),所以,在一般識別系統(tǒng)中,將其稱為能量系數(shù),并不作為倒譜系數(shù),本系統(tǒng)選取20階倒譜系數(shù)。3.4 用矢量量化聚類法生成碼本將每個待識別的說話人看作是一個信源,用一個碼本來表征。碼本是從該說話人的訓練序列中提取的MFCC特征矢量聚類而生成。只要訓練的序列足夠長,可認為這個碼本有效地包含了說話人的個人特征,而與講話的內(nèi)容無關。本系統(tǒng)采用基于分裂的LBG算法設計VQ碼本,為訓練序列,B為碼本。具體實現(xiàn)過

44、程如下:取提取出來的所有幀的特征矢量的均值(jn zh)作為第一個碼字矢量B1;將當前的碼本Bm根據(jù)以下規(guī)則(guz)分裂,形成2m個碼字,其中(qzhng),m從1變化到當前碼本的碼字數(shù),為分裂時的參數(shù),(3)根據(jù)得到的碼本把所有的訓練序列(特征矢量)進行分類,然后按照下面兩個公式計算訓練矢量量化失真量的總和D以及相對失真(n為迭代次數(shù),初始n=0,B為當前的碼書),若相對失真小于某一閾值,迭代結(jié)束,當前的碼書就是設計好的2m個碼字的碼書,轉(zhuǎn)到(5),否則,轉(zhuǎn)到下一步(4)重新計算各個區(qū)域的新型心,得到新的碼書,轉(zhuǎn)到(3)(5)重復(2)、(3)和(4)步,直到形成有M個碼字的碼書,其中D0

45、=100003.5 VQ的說話人識別 設未知的說話人的特征矢量,共有T幀是訓練階段形成的碼書,表示第i個碼書第m個碼字,共有N個碼書(即N個說話人),每個碼書有M個碼字。則對于說話人識別用來計算第i個說話人的平均量化失真Di,然后用同樣的方法求出,則最終的識別結(jié)果就是Di最小者所對應的那個i,即是所識別的那個人。4.實驗設計4.1 實驗(shyn)一 先讀入原始語音信號,顯示其波形,然后通過預加重濾波器,即可得到預加重語音信號,之后就可以(ky)對語音信號進行短時平均幅度和平均過零率分析,同時,也可以通過相應的計算得到語音信號的部分特征參數(shù)(LPC譜和LPC倒譜)4.2 實驗(shyn)二主程

46、序:MFCC函數(shù)(hnsh):分幀函數(shù)(hnsh)blockFrames:LBG算法的具體實現(xiàn)(shxin)過程詳見3.3用矢量量化聚類法生成碼本訓練函數(shù)train:識別函數(shù)test:4.3 實驗(shyn)三 本次實驗用到的錄音為5個不同男聲,均為男歌手,各截取一段10秒鐘的音頻,實驗過程(guchng)如下:打開matlab,使當前工作目錄(ml)為錄音及程序所在的文件夾(F:C盤文件DocumentsMATLAB)進行訓練:在命令行窗口中輸入:train:(F:C盤文件DocumentsMATLAB,5),回車進行測試:在命令行窗口中輸入:test:(F:C盤文件DocumentsMAT

47、LAB,5,ans),回車由運行結(jié)果可知,5個人的識別中,全部都識別正確,成功率達到(d do)了100%,所以,可以認為是實現(xiàn)了語音識別的功能。5.實驗(shyn)結(jié)果5.1 實驗(shyn)一原始語音信號及其預加重處理后的波形如下圖所示不同(b tn)矩形窗長對應的短時平均幅度如下圖所示原始語音信號(xnho)及其短時平均過零率如下圖所示語音信號(xnho)的短時譜和LPC譜估計如下圖所示語音(yyn)信號的短時譜和LPC倒譜估計如下圖所示5.2 實驗(shyn)二運行(ynxng)主函數(shù)后,命令行窗口截圖如下原始(yunsh)語音信號s1的波形如下圖所示線性能量(nngling)譜及其對

48、數(shù)能量譜如下圖所示不同幀長的對數(shù)能量譜如下圖所示Mel尺度(chd)濾波器組如下圖所示原始信號能量譜和Mel倒譜修正(xizhng)后的能量譜如下圖所示說話人1和說話人2的二維聲學(shngxu)向量圖如下圖所示說話人1和說話人2的二維聲學向量(xingling)圖及其碼本如下圖所示5.3 實驗(shyn)三命令行窗口輸入訓練(xnlin)命令train后的截圖如下圖所示命令(mng lng)行窗口輸入識別命令test后的截圖如下圖所示由運行結(jié)果可知,5個人的識別中,全部都識別正確,成功率達到了100%,所以,可以認為是實現(xiàn)(shxin)了語音識別的功能。6.總結(jié)經(jīng)過(jnggu)本次課程(k

49、chng)論文學習(xux),我已對語音識別有了一定的研究,并對matlab軟件更加熟悉。本次設計中主要涉及到了語音識別的基本原理、MFCC系數(shù)的算法、矢量量化聚類法、VQ的說話人識別技術以及matlab編程知識。本實驗在matlab平臺上基本實現(xiàn)了說話人的語音識別,從實驗結(jié)果來看,基本上實現(xiàn)了預定的目的。本實驗的程序代碼參考了部分參考書籍和網(wǎng)上資料,但它們的代碼在matlab上運行均會出現(xiàn)一些錯誤,無法正常運行,本人通過多次修改調(diào)試并改進,終于使程序成功運行,并得到較為理想的結(jié)果。當然,在這個過程中也碰到過很多各種各樣的問題,一開始語音錄入的時候,打算叫幾個人來錄音,但是后來覺得太麻煩了,直

50、接用一段音頻(mp3音樂)就算了,但是問題來了,有時因為音頻時間可能太長了導致程序運行的時間很長,或者電腦直接就死機了,后來想起kugou有個制作鈴聲的工具,然后就用這個工具將比較長的音頻截成一段時間很短的音頻,大概就是10秒鐘,這樣的話,我就只需找?guī)讉€不同的歌手就可以達到不同說話人的目的了,還挺方便的。用matlab程序?qū)崿F(xiàn)相應的功能其實難度還是挺大的,語音識別的大概流程和理論算法我都有一定的了解,但是用matlab語言描述出來,用matlab實現(xiàn)的話很多時候都是無從下手,尤其是涉及比較多的函數(shù)的時候,不過經(jīng)過這次實驗,我的matlab編程實現(xiàn)能力又得到了一定的提高。調(diào)程序的時候也真的很需要

51、耐心,因為這個問題解決了,再運行的時候,也繼續(xù)會有下一個問題的出現(xiàn),最怕的就是要驗證問題是否解決的時候,程序需要運行很長的時間,程序運行完了,問題還沒有解決,不斷地修改,不斷的等待,可能有時候真的會不耐煩,所以調(diào)程序需要耐心,我在調(diào)試生成碼本那個程序的時候就是這樣的,還好最終都能實現(xiàn)了。雖然本次實驗的結(jié)果比較理想,但是語音識別還有很多的模型、方法和技術。本次實驗只是模擬了說話人的識別,但是語音識別其實還有其它方面的任務,仍然有很大的空間值得去學習和提高。7.程序代碼7.1 實驗(shyn)一原始語音(yyn)信號及其預加重處理:clear all; %清空(qn kn)內(nèi)容signal,fs,

52、bits=wavread(s1.wav); %讀入語音x=double(signal); x=filter(1,-0.9375,1,x); %預加重濾波器subplot(211);plot(signal); %顯示原始語音信號波形title(原始語音信號,fontsize,18);subplot(212);plot(x); %顯示預加重語音信號波形title(預加重語音信號,fontsize,18);不同矩形窗長對應的短時平均幅度:clear all;signal,fs,bits=wavread(s1.wav); %讀入語音framelength=50; %設定幀長framenumber=fi

53、x(length(signal)/framelength); %獲取語音幀數(shù)for i=1:framenumber; %分幀處理 framesignal=signal(i-1)*framelength+1:i*framelength);%獲取每幀的數(shù)據(jù) M(i)=0; %每幀短時平均幅度置零 for j=1:framelength; M(i)=M(i)+abs(framesignal(j); %計算每幀信號的短時平均幅度 end;end;subplot(221);plot(M);xlabel(幀數(shù),fontsize,18);ylabel(短時平均幅度,fontsize,18);legend(N

54、=50);clear M;framelength=100;framenumber=fix(length(signal)/framelength);for i=1:framenumber; framesignal=signal(i-1)*framelength+1:i*framelength); M(i)=0; for j=1:framelength; M(i)=M(i)+abs(framesignal(j); end;end;subplot(222);plot(M);xlabel(幀數(shù),fontsize,18);ylabel(短時平均(pngjn)幅度,fontsize,18);legend(

55、N=200);clear M;framelength=200;framenumber=fix(length(signal)/framelength);for i=1:framenumber; framesignal=signal(i-1)*framelength+1:i*framelength); M(i)=0; for j=1:framelength; M(i)=M(i)+abs(framesignal(j); end;end;subplot(223);plot(M);xlabel(幀數(shù),fontsize,18);ylabel(短時平均(pngjn)幅度,fontsize,18);legen

56、d(N=200);clear M;framelength=400;framenumber=fix(length(signal)/framelength);for i=1:framenumber; framesignal=signal(i-1)*framelength+1:i*framelength); M(i)=0; for j=1:framelength; M(i)=M(i)+abs(framesignal(j); end;end;subplot(224);plot(M);xlabel(幀數(shù),fontsize,18);ylabel(短時平均(pngjn)幅度,fontsize,18);leg

57、end(N=400);語音信號的短時譜和LPC譜估計:clear all; %清空內(nèi)容signal,fs,bits=wavread(s1.wav); %讀入語音framelength=200; %設定幀長frameshift=80; %設定幀交疊部分的長度xn=enframe(signal,framelength,frameshift);%按照指定的要求分幀data=xn(:,70); %取第70幀語音進行分析rank=40; %設定(sh dn)階數(shù)num=512; %設定(sh dn)頻譜的點數(shù)a=lpc_coefficients(data,rank); %求預測(yc)系數(shù)b=1,-a,

58、zeros(1,num-rank-1); %對1-a1-a2,.,-ap進行補0處理Hw=abs(ones(1,num)./fft(b);Hw=abs(Hw); %取模求幅值Sw=abs(fft(data,num); %求語音信號的短時譜plot(Sw/max(Sw);axis(0,256,0,1);hold on;plot(Hw/max(Hw),r);title(語音信號的短時譜和LPC譜估計,fontsize,18);legend(語音信號的短時譜,lpc譜估計);enframe函數(shù):function f=enframe(x,win,inc)%F = ENFRAME(X,LEN) spli

59、ts the vector X(:) up into frames. %Each frame is of length LEN and occupies one row of the output matrix. %The last few frames of X will be ignored if its length is not divisible by %LEN.It is an error if X is shorter than LEN.nx=length(x(:);nwin=length(win);if (nwin = 1) len = win;else len = nwin;

60、endif (nargin 1) w = win(:); f = f .* w(ones(nf,1),:);Endlpc_coefficients函數(shù):function c=lpc_coefficients(s,p)%此函數(shù)的功能是用自相關法求信號s使均方預測誤差為最小的預測系數(shù)%算法(sun f)為Durbin快速遞推算法%注:s必須是一維向量(xingling) p為聲道模型的階數(shù)n=length(s); %獲得(hud)信號長度 for i=1:p %測試向量 Rp(i)=sum(s(i+1:n).*s(1:n-i); %求向量的自相關函數(shù) endRp_0=s*s; %即Rn(0)Ep=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論