基于CNN的口音識(shí)別分類算法_第1頁(yè)
基于CNN的口音識(shí)別分類算法_第2頁(yè)
基于CNN的口音識(shí)別分類算法_第3頁(yè)
基于CNN的口音識(shí)別分類算法_第4頁(yè)
基于CNN的口音識(shí)別分類算法_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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)介

摘要PAGE122摘要鑒于聲學(xué)特征的唯一性、穩(wěn)定性,依托人工智能、大數(shù)據(jù)和云計(jì)算技術(shù)的助推,聲紋識(shí)別和語(yǔ)音識(shí)別技術(shù)在對(duì)于不同人的口音識(shí)別發(fā)揮了重要作用。人類發(fā)聲是一個(gè)復(fù)雜的生理和物理過(guò)程,由語(yǔ)言中心和多個(gè)發(fā)聲器官的互動(dòng)控制。由于發(fā)聲器官的大小和形狀以及大腦的神經(jīng)結(jié)構(gòu)不同,每個(gè)人都有獨(dú)特的發(fā)聲模式,使得個(gè)人的發(fā)聲模式是獨(dú)一無(wú)二的,個(gè)人的聲學(xué)特征在一段時(shí)間內(nèi)是穩(wěn)定而獨(dú)特的。隨著人工智能、大數(shù)據(jù)、云計(jì)算等技術(shù)的快速發(fā)展,語(yǔ)音識(shí)別和語(yǔ)言識(shí)別技術(shù)的準(zhǔn)確性、智能性和速度都有很大提高。這些技術(shù)被廣泛應(yīng)用于公共安全和司法、智能家居、醫(yī)療服務(wù)監(jiān)控、遠(yuǎn)程辦公和金融領(lǐng)域的身份確認(rèn)等領(lǐng)域。特別是在非實(shí)體案件中,如電信領(lǐng)域的欺詐,語(yǔ)音識(shí)別和語(yǔ)音識(shí)別技術(shù)的發(fā)展確保了證據(jù)的真實(shí)性和有效性。如今,中國(guó)的語(yǔ)音識(shí)別技術(shù)發(fā)展迅速,已達(dá)到世界領(lǐng)先水平。關(guān)鍵詞:聲紋識(shí)別技術(shù);語(yǔ)音識(shí)別技術(shù);口音識(shí)別ABSTRACTInviewoftheuniquenessandstabilityofacousticfeatures,andwiththehelpofartificialintelligence,bigdataandcloudcomputingtechnologies,vocalrecognitionandspeechrecognitiontechnologiesplayanimportantroleintherecognitionofaccentsfordifferentpeople.Humanvocalisationisacomplexphysiologicalandphysicalprocess,controlledbytheinteractionofthespeechcentreandmultiplevocalorgans.Duetothedifferentsizeandshapeofthevocalorgansandtheneuralstructureofthebrain,eachpersonhasauniquevocalpattern,makingindividualvocalpatternsuniqueandindividualacousticcharacteristicsstableanddistinctovertime.Withtherapiddevelopmentoftechnologiessuchasartificialintelligence,bigdataandcloudcomputing,theaccuracy,intelligenceandspeedofspeechrecognitionandlanguagerecognitiontechnologieshaveimprovedsignificantly.Thesetechnologiesarewidelyusedinareassuchaspublicsafetyandjustice,smarthomes,healthcareservicemonitoring,telecommutingandidentityconfirmationinthefinancialsector.Particularlyinnon-substantivecases,suchasfraudintelecommunications,developmentsinspeechrecognitionandvoicerecognitiontechnologyhaveensuredtheauthenticityandvalidityofevidence.Today,China'sspeechrecognitiontechnologyisdevelopingrapidlyandhasreachedaworldleadinglevel.Keywords:voiceprintrecognitiontechnology;speechrecognitiontechnology;accentrecognition;第1章緒論1.1語(yǔ)音識(shí)別發(fā)展歷史和基礎(chǔ)1.1.1國(guó)外研究

語(yǔ)音識(shí)別技術(shù)可以追溯到上世紀(jì)50年代,最初推出的Audry系統(tǒng)雖然只能識(shí)別部分字母,但這卻是技術(shù)創(chuàng)新的第一步。通過(guò)對(duì)語(yǔ)音信號(hào)建模問(wèn)題的解決,動(dòng)態(tài)線性編程和預(yù)測(cè)分析技術(shù)的應(yīng)用,從70年代開始的動(dòng)態(tài)時(shí)間正則化技術(shù)(DTW)、向量量化(VQ)和隱馬爾科夫模型(HMM)等理論也相繼出現(xiàn)和發(fā)展。80年代起,人工神經(jīng)網(wǎng)絡(luò)(ANN)和HMM模型成為了重要算法,為語(yǔ)音識(shí)別技術(shù)的進(jìn)一步發(fā)展提供了巨大支持。90年代,隨著語(yǔ)音識(shí)別技術(shù)在全球范圍內(nèi)得到廣泛部署與應(yīng)用,許多互聯(lián)網(wǎng)技術(shù)公司也開始加入研究和開發(fā)戰(zhàn)線。而進(jìn)入21世紀(jì),基于語(yǔ)音識(shí)別技術(shù)的應(yīng)用已經(jīng)逐漸擴(kuò)展到即興口語(yǔ)、自然對(duì)話和多語(yǔ)言同步翻譯等領(lǐng)域。這個(gè)漫長(zhǎng)的技術(shù)發(fā)展過(guò)程表明,技術(shù)的突破和創(chuàng)新需要長(zhǎng)時(shí)間的積累與更新?lián)Q代,并且仍然面臨著許多挑戰(zhàn)和問(wèn)題。1.1.2國(guó)內(nèi)研究語(yǔ)音識(shí)別技術(shù)在中國(guó)已經(jīng)擁有數(shù)十年的發(fā)展歷程,清華大學(xué)和中科院等機(jī)構(gòu)設(shè)計(jì)出的語(yǔ)音識(shí)別技術(shù)已經(jīng)達(dá)到了98%以上的準(zhǔn)確率,并且整體識(shí)別率也可以控制在10%以下。近年來(lái),隨著深度學(xué)習(xí)、注意力機(jī)制等新方法和算法的引入,語(yǔ)音識(shí)別技術(shù)不斷提高,應(yīng)用范圍也不斷擴(kuò)展。這些技術(shù)正在智能音箱、智能客服和智能交通等領(lǐng)域提供更加高效和便捷的服務(wù)體驗(yàn)。從最初以隱馬爾可夫模型(HMM)為基礎(chǔ)的語(yǔ)音識(shí)別技術(shù),到如今應(yīng)用神經(jīng)網(wǎng)絡(luò)(NN)和深度神經(jīng)網(wǎng)絡(luò)(DNN)等新算法的流行,語(yǔ)音識(shí)別技術(shù)已經(jīng)得到廣泛運(yùn)用。隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的快速發(fā)展,語(yǔ)音交互技術(shù)受到了廣泛的關(guān)注和應(yīng)用。特別是在智能語(yǔ)音助手、智能家居、智能汽車、智能醫(yī)療和智能金融系統(tǒng)等領(lǐng)域,這些技術(shù)的應(yīng)用取得了顯著的成果。未來(lái),隨著技術(shù)的發(fā)展和應(yīng)用場(chǎng)景的不斷拓展,語(yǔ)音識(shí)別技術(shù)將成為人們與計(jì)算機(jī)互動(dòng)的最自然、最便捷的方式之一。自動(dòng)語(yǔ)音識(shí)別技術(shù)將為人們提供更加智能、高效和人性化的服務(wù),成為實(shí)現(xiàn)數(shù)字化生活的重要手段。1.2語(yǔ)音識(shí)別簡(jiǎn)介語(yǔ)音識(shí)別技術(shù)作為一種基于人工智能的技術(shù),經(jīng)歷了數(shù)十年的發(fā)展歷程。在深度學(xué)習(xí)和注意力機(jī)制等新算法的引入下,該技術(shù)已經(jīng)達(dá)到了98%以上的高準(zhǔn)確度。如今,語(yǔ)音識(shí)別技術(shù)已經(jīng)廣泛應(yīng)用于智能音箱、智能客服、智能交通等領(lǐng)域,進(jìn)一步提高了服務(wù)效率。未來(lái),隨著技術(shù)的進(jìn)一步發(fā)展和應(yīng)用場(chǎng)景的不斷拓展,語(yǔ)音識(shí)別技術(shù)將成為數(shù)字化生活中不可或缺的一部分,為人們提供更加智能、高效、人性化的服務(wù)。例如,在家庭、手表和智能手機(jī)等設(shè)備上,通過(guò)語(yǔ)音識(shí)別技術(shù)可以實(shí)現(xiàn)語(yǔ)音搜索、語(yǔ)音撥號(hào)和語(yǔ)音導(dǎo)航等功能,大大方便了用戶的控制和使用體驗(yàn)。此外,在醫(yī)療領(lǐng)域和智能交通領(lǐng)域,語(yǔ)音識(shí)別技術(shù)也可以通過(guò)電子病歷、醫(yī)療轉(zhuǎn)錄以及車載娛樂(lè)、導(dǎo)航等功能,提高工作效率和駕駛體驗(yàn)。這一技術(shù)未來(lái)還將在教育、廣告、金融和安防等領(lǐng)域繼續(xù)拓展應(yīng)用,為這些領(lǐng)域帶來(lái)更多的便利和效率。總之,語(yǔ)音識(shí)別技術(shù)將成為實(shí)現(xiàn)智能和自然交互的主要方向之一,推動(dòng)數(shù)字化時(shí)代的進(jìn)一步發(fā)展,為人們的生活和工作帶來(lái)更多的便捷和智能體驗(yàn)。1.3論文構(gòu)成第1部分主要介紹了聲紋識(shí)別和對(duì)于口音的分類,以及在國(guó)內(nèi)外的發(fā)展情況,以及這一次的設(shè)計(jì)任務(wù)和要求。第2部分為介紹如何進(jìn)行數(shù)據(jù)的預(yù)處理,對(duì)聲紋識(shí)別和語(yǔ)音識(shí)別技術(shù)進(jìn)行了詳細(xì)的闡述。第3章為數(shù)據(jù)預(yù)處理第4章為如何運(yùn)用CNN來(lái)構(gòu)建模型第5章為數(shù)據(jù)如何進(jìn)行預(yù)測(cè)第6部分對(duì)本次設(shè)計(jì)進(jìn)行了概括和總結(jié)。第2章總體設(shè)計(jì)2.1數(shù)據(jù)預(yù)處理過(guò)程Librosa是一款開源的Python包,提供了一系列用于分析音頻信號(hào)的工具,包括讀取、處理、轉(zhuǎn)換和可視化等功能。它主要支持的音頻格式包括Wave、mp3、OggVorbis等常見格式,可以方便地進(jìn)行音頻文件讀取、處理和分析。Librosa依賴于NumPy和SciPy等科學(xué)計(jì)算庫(kù),可以與matplotlib進(jìn)行集成,提供了許多可視化函數(shù),便于用戶將分析結(jié)果可視化展示出來(lái)。除了音頻文件讀取,Librosa還提供了其他強(qiáng)大的功能讀取音頻,讀取音頻時(shí)長(zhǎng):語(yǔ)句librosa.get_duration(y=None,sr=8000,S=None,n_fft=2048,hop_length=512,center=True,filename=None)來(lái)計(jì)算時(shí)間序列的持續(xù)時(shí)間(單位為秒)。其中:y:音頻時(shí)間序列sr:y的音頻采樣率S:STFT矩陣或任何STFT衍生的矩陣(例如,色譜圖或梅爾頻譜圖)n_fft:S的FFT窗口大小hop_length:S列之間的音頻樣本數(shù)center:布爾值,如果為True,則S[:,t]的中心為y[t*hop_length];如果為False,則S[:,t]從y[t*hop_length]開始filename:如果提供,則所有其他參數(shù)都將被忽略,并且持續(xù)時(shí)間是直接從音頻文件中計(jì)算得出的,返回的是持續(xù)時(shí)間(單位為秒)(librosa.get_duration(filename=’path’))2.2聲紋識(shí)別和語(yǔ)音識(shí)別技術(shù)語(yǔ)音識(shí)別技術(shù)是一種依靠個(gè)人語(yǔ)音特征進(jìn)行身份驗(yàn)證和識(shí)別的生物識(shí)別技術(shù)。與其他生物識(shí)別技術(shù)相比,如指紋、虹膜、面部等,語(yǔ)音識(shí)別技術(shù)具備更為靈活的捕捉方式和更高的處理速度。只要設(shè)備配備了麥克風(fēng)功能,例如監(jiān)控?cái)z像頭或執(zhí)法記錄儀等,就可以輕松地捕獲語(yǔ)音數(shù)據(jù),從而明顯提升遠(yuǎn)程識(shí)別的準(zhǔn)確性和可信度。語(yǔ)音識(shí)別技術(shù)的發(fā)展經(jīng)歷了三個(gè)重要的階段,分別是語(yǔ)音預(yù)處理、語(yǔ)音特征提取以及識(shí)別算法。在語(yǔ)音預(yù)處理階段,主要致力于提高語(yǔ)音質(zhì)量、去除噪聲和干擾;語(yǔ)音特征提取則是從語(yǔ)音信號(hào)中提取具有描述人類語(yǔ)音特征的向量;識(shí)別算法涵蓋多種不同的方法和算法,旨在進(jìn)一步提高語(yǔ)音識(shí)別的精度和準(zhǔn)確性。2.2.1聲紋預(yù)處理語(yǔ)音識(shí)別是一種利用人的聲音進(jìn)行生物識(shí)別的技術(shù)。該技術(shù)通過(guò)對(duì)人的語(yǔ)音進(jìn)行分析,識(shí)別并確認(rèn)其身份真實(shí)性。與指紋識(shí)別、虹膜識(shí)別和人臉識(shí)別等其他識(shí)別技術(shù)相比,聲紋識(shí)別無(wú)需任何特殊設(shè)備,只需使用帶有麥克風(fēng)的普通設(shè)備就可以方便地進(jìn)行識(shí)別,從而實(shí)現(xiàn)了遠(yuǎn)程識(shí)別的高效性和準(zhǔn)確性。聲紋識(shí)別技術(shù)的開發(fā)和應(yīng)用主要分為三個(gè)步驟,即聲紋預(yù)處理、聲紋特征提取和識(shí)別方法。聲紋預(yù)處理的目的在于提高語(yǔ)音質(zhì)量,降低干擾噪音的影響。聲紋特征提取則是從語(yǔ)音信號(hào)中提取可以識(shí)別人的特征向量,進(jìn)一步增強(qiáng)辨識(shí)度。識(shí)別方法采用多種技術(shù)手段來(lái)提高識(shí)別的精度和速度。2.2.2聲紋特征提取在電信詐騙、毒品制販等案件中,語(yǔ)音識(shí)別技術(shù)得到廣泛應(yīng)用,以翻譯和識(shí)別嫌疑人的通話內(nèi)容,從而更好地了解通話主題。語(yǔ)音識(shí)別技術(shù)包含三個(gè)重要步驟:語(yǔ)音合成、語(yǔ)音識(shí)別和語(yǔ)義理解。其中,語(yǔ)音合成是用來(lái)生成相應(yīng)文本的語(yǔ)音輸出,語(yǔ)音識(shí)別則將語(yǔ)音轉(zhuǎn)換成文本,而語(yǔ)義理解則致力于理解語(yǔ)音信號(hào)的意義并進(jìn)行推理分析。這些技術(shù)在案件調(diào)查、犯罪預(yù)防和打擊犯罪方面發(fā)揮著重要作用。2.2.3聲紋識(shí)別作為聲紋識(shí)別技術(shù)的最后一環(huán),聲紋識(shí)別是通過(guò)使用不同的模型來(lái)辨別說(shuō)話人的身份。目前常用的聲紋識(shí)別方法有:高斯混合通用背景模型(GMM-UBM)、聯(lián)合因子分析(JFA)和神經(jīng)網(wǎng)絡(luò)等。這些方法旨在使用聲音信號(hào)的特征,如聲音頻率和語(yǔ)音速度等,以確定說(shuō)話人的身份。其中,高斯混合通用背景模型使用多個(gè)高斯分布來(lái)建模聲音信號(hào)的屬性,而聯(lián)合因子分析則使用統(tǒng)計(jì)方法來(lái)分析聲音信號(hào)的特征。神經(jīng)網(wǎng)絡(luò)則通過(guò)訓(xùn)練模型來(lái)識(shí)別聲音信號(hào)的獨(dú)特特征并判定說(shuō)話人的身份。這些方法不僅在聲紋識(shí)別領(lǐng)域有應(yīng)用,也可以在其他領(lǐng)域,如安全、生物識(shí)別和人機(jī)交互等方面得到廣泛應(yīng)用。2.3語(yǔ)音識(shí)別技術(shù)除了語(yǔ)音識(shí)別技術(shù)外,語(yǔ)音識(shí)別技術(shù)還被用于電信詐騙、販毒等案件中,對(duì)嫌疑人的通話內(nèi)容進(jìn)行翻譯和理解,以確定通話對(duì)象。語(yǔ)音識(shí)別技術(shù)包括語(yǔ)音合成、語(yǔ)音識(shí)別、語(yǔ)義理解等。2.3.1語(yǔ)音合成語(yǔ)音合成方法主要有拼接法[13]和參數(shù)法[14]。拼接法最大限度保留了說(shuō)話人的原始音色,保留了語(yǔ)義的自然度與清晰度。參數(shù)法通過(guò)數(shù)據(jù)構(gòu)建模型,將文本特征轉(zhuǎn)換為聲學(xué)特征,聲碼器根據(jù)聲學(xué)模型的輸出重構(gòu)語(yǔ)音波形[15]。數(shù)據(jù)預(yù)處理3.1梅爾倒譜系數(shù)(Mel-scaleFrequencyCepstralCoefficients,簡(jiǎn)稱MFCC)。頻譜的語(yǔ)音分析由實(shí)驗(yàn)結(jié)果決定。MFCC分析依據(jù)的聽覺(jué)機(jī)理有兩個(gè):第一梅爾刻度(Melscale):人耳感知的聲音頻率和聲音的實(shí)際頻率并不是線性的,有下面公式從頻率轉(zhuǎn)換為梅爾刻度的公式為:=從梅爾回到頻率:式中是以梅爾(Mel)為單位的感知頻域(簡(jiǎn)稱梅爾頻域),f是以Hz為單位的實(shí)際語(yǔ)音頻率。與f的關(guān)系曲線如下圖所示,若能將語(yǔ)音信號(hào)的頻域變換為感知頻域中,能更好的模擬聽覺(jué)過(guò)程的處理。圖3-1第二臨界帶第二臨界帶(CriticalBand):人耳對(duì)不同頻率的聲波有不同的敏感性反應(yīng)。為了更好地模擬人耳的聽覺(jué)特性,可以用頻組分析法將聲音分為一系列的頻組。根據(jù)頻率組的大小,從密到疏,設(shè)計(jì)一系列的帶通濾波器,將輸入信號(hào)從低頻到高頻進(jìn)行過(guò)濾。每個(gè)帶通濾波器輸出的信號(hào)的能量是語(yǔ)音的基本特征,可作為進(jìn)一步處理的輸入特征。這個(gè)參數(shù)不依賴于聲音特性,更對(duì)應(yīng)于人耳的聽覺(jué)特性。它具有更大的魯棒性和更好的識(shí)別性能,盡管信噪比較低。3.2分幀、加窗對(duì)于每個(gè)語(yǔ)音幀,需要進(jìn)行以下處理:首先,計(jì)算功率譜并估計(jì)周期圖;然后,將融合濾波器組應(yīng)用于功率譜,確定每個(gè)濾波器的能量,將其相加并形成所有濾波器組能量的對(duì)數(shù);最后,使用離散余弦變換(DCT)對(duì)濾波器組的能量進(jìn)行處理。這些程序有利于提取語(yǔ)音特征,并能更好地模擬人耳的聽覺(jué)特性。通過(guò)保留DCT系數(shù)2-13,丟棄其余的,通??梢宰龅酶?,有時(shí)可以給每個(gè)特征向量分配幀能量。Delta和delta-delta特征也經(jīng)常被加入。提升法通常也被應(yīng)用于最終的特征。圖3-2MFCC的提取過(guò)程3.2.1預(yù)處理預(yù)處理包括預(yù)加重、成幀和開窗等功能。假設(shè)我們的語(yǔ)音信號(hào)是以8千赫茲采樣的,語(yǔ)音數(shù)據(jù)在這里被捕獲。importnumpyimportscipy.io.wavfilefromscipy.fftpackimportdctsample_rate,signal=scipy.io.wavfile.read('OSR_us_000_0010_8k.wav')signal=signal[0:int(3.5*sample_rate)]#我們只取前3.5s圖3-3

時(shí)域中的語(yǔ)音信號(hào)1、預(yù)加重

(Pre-Emphasis)預(yù)失幀濾波器在人聲信號(hào)處理中很有用,可以提升高頻信號(hào),平衡頻譜,提高信噪比,并消除發(fā)聲過(guò)程中強(qiáng)調(diào)高頻共振峰的影響。預(yù)失真是通過(guò)高通濾波器來(lái)實(shí)現(xiàn)的,可以用來(lái)對(duì)人聲信號(hào)進(jìn)行預(yù)處理。其中濾波器系數(shù)通常為0.95或0.97,這里取pre_emphasis=0.97:emphasized_signal=numpy.append(signal[0],signal[1:]-pre_emphasis*signal[:-1])圖3-4

預(yù)加重后的時(shí)域信號(hào)題外話:預(yù)加重在現(xiàn)代系統(tǒng)中的影響不大,主要是因?yàn)槌苊庠诂F(xiàn)代FFT實(shí)現(xiàn)中不應(yīng)成為問(wèn)題的FFT數(shù)值問(wèn)題,大多數(shù)預(yù)加重濾波器的動(dòng)機(jī)都可以通過(guò)均值歸一化來(lái)實(shí)現(xiàn)(在本文后面討論)。在現(xiàn)代FFT實(shí)現(xiàn)中。2、分幀

(Framing)在預(yù)加重之后,我們需要將信號(hào)分成短時(shí)幀。由于語(yǔ)音信號(hào)不是同質(zhì)的,對(duì)整個(gè)信號(hào)進(jìn)行傅里葉變換是沒(méi)有意義的。因此,我們把語(yǔ)音信號(hào)分成短的幀,通常是20-40毫秒長(zhǎng),例如,通常是25毫秒。我們通常使用8千赫茲的采樣率,因此每一幀的長(zhǎng)度為200個(gè)樣本。為了避免相鄰幀之間過(guò)度不匹配,我們使用幀移來(lái)控制幀之間的重疊程度,通常設(shè)置為每幀語(yǔ)音的1/2、1/3或50%(+/-10%)。在實(shí)踐中,幀移通常被設(shè)置為10毫秒。重疊范圍的長(zhǎng)度大約是每個(gè)語(yǔ)音幀長(zhǎng)度的一半,由于采樣率是8kHz,重疊范圍的長(zhǎng)度是120個(gè)樣本。第一個(gè)語(yǔ)音幀從0開始,隨后的幀從80個(gè)樣本開始,直到語(yǔ)音文件的結(jié)束。如果語(yǔ)音文件的長(zhǎng)度不能分成偶數(shù)幀,則用零填充,使之成為一個(gè)完整的幀。frame_length,frame_step=frame_size*sample_rate,frame_stride*sample_rate#從秒轉(zhuǎn)換為采樣點(diǎn)signal_length=len(emphasized_signal)frame_length=int(round(frame_length))frame_step=int(round(frame_step))#確保我們至少有1幀num_frames=int(numpy.ceil(float(numpy.abs(signal_length-frame_length))/frame_step))pad_signal_length=num_frames*frame_step+frame_lengthz=numpy.zeros((pad_signal_length-signal_length))pad_signal=numpy.append(emphasized_signal,z)indices=numpy.tile(numpy.arange(0,frame_length),(num_frames,1))+numpy.tile(numpy.arange(0,num_frames*frame_step,frame_step),(frame_length,1)).Tframes=pad_signal[indices.astype(32,copy=False)]3、加窗

(Window)將信號(hào)分成多個(gè)短時(shí)幀后,我們會(huì)對(duì)每一幀進(jìn)行窗函數(shù)處理。常用的窗函數(shù)是Hamming窗。這個(gè)窗函數(shù)能夠增加幀左右兩端的連續(xù)性,避免出現(xiàn)不連續(xù)的問(wèn)題,同時(shí)也能夠減少頻譜泄漏問(wèn)題。我們?cè)谶M(jìn)行傅里葉變換之前對(duì)每一幀信號(hào)進(jìn)行窗函數(shù)處理,以消除傅里葉變換的假設(shè)(即數(shù)據(jù)是無(wú)限大的情況),同時(shí)也減少頻譜泄漏,使得我們得到的頻譜更加準(zhǔn)確。Hamming窗的具體形式可以根據(jù)需要進(jìn)行設(shè)計(jì),通常包含一個(gè)阻尼部分和一個(gè)上升部分,具體形式為一個(gè)帶有邊緣存在的窗口函數(shù):式0≤n≤N?1,N是窗口長(zhǎng)度,我們這里假設(shè),是窗口長(zhǎng)度,我們這里假設(shè),N是窗口長(zhǎng)度,我們這里假設(shè)a=0.46$圖3-5加窗內(nèi)部實(shí)現(xiàn)frames*=numpy.hamming(frame_length)#frames*=0.54-0.46*numpy.cos((2*numpy.pi*n)/(frame_length-1))#內(nèi)部實(shí)現(xiàn)二、FFT

(Fourier-Transform)為了更好地觀察信號(hào)的特性,我們需要將其從時(shí)域轉(zhuǎn)換到頻域上,以此獲取其不同頻率上的能量分布情況。為了實(shí)現(xiàn)這一轉(zhuǎn)換,我們需要對(duì)分幀加窗后的信號(hào)進(jìn)行N點(diǎn)FFT計(jì)算,也稱為短時(shí)傅立葉變換(STFT)。通過(guò)STFT,我們能夠獲取到每一幀信號(hào)在不同頻率上的能量分布情況,這些能量分布能夠代表不同語(yǔ)音的特性,幫助我們更好地進(jìn)行語(yǔ)音分析和處理,其中N通常為256或512,NFFT=512;mag_frames=numpy.absolute(numpy.fft.rfft(frames,NFFT))#fft的幅度(magnitude)三、功率譜

(PowerSpectrum)為了計(jì)算語(yǔ)音信號(hào)的頻譜能量,通常采用計(jì)算功率譜(即周期圖)的方法。具體來(lái)說(shuō),對(duì)語(yǔ)音信號(hào)的頻譜進(jìn)行二次模式計(jì)算,使用對(duì)數(shù)或去括號(hào)操作,因?yàn)樵诠β首V中,頻率不可能有負(fù)值。獲得的頻譜能量代表每個(gè)頻率的信號(hào)強(qiáng)度,可用于聲音特征提取和信號(hào)處理等方面。其中,Xi是信號(hào)X的第i幀,這可以用以下幾行來(lái)實(shí)現(xiàn):pow_frames=((1.0/NFFT)*((mag_frames)**2))四、濾波器組

(FilterBanks)計(jì)算Mel濾波器組,將功率譜通過(guò)一組Mel刻度(通常取40個(gè)濾波器,nfilt=40)的三角濾波器(triangularfilters)來(lái)提取頻帶(frequencybands)。梅爾濾波器組與人耳的聽覺(jué)感知系統(tǒng)相似,它們的作用是選擇某些頻率成分而忽略其他頻率的信號(hào)。梅爾濾波器組在頻率軸上的分布是不均勻的,低頻段的濾波器較多,高頻段的濾波器較少。梅爾濾波器組通常由22-40個(gè)三角形濾波器組成,每個(gè)都有自己的中心頻率(f(m))和振幅響應(yīng)。從FFT得到的振幅頻譜與每個(gè)濾波器相乘并相加,得到每個(gè)濾波器對(duì)應(yīng)的頻段的幀能量值。如果濾波器的數(shù)量是22個(gè),你就可以得到22個(gè)能量值。nfilt=40low_freq_mel=0high_freq_mel=(2595*np.log10(1+(sample_rate/2)/700))mel_points=np.linspace(low_freq_mel,high_freq_mel,nfilt+2)hz_points=(700*(10**(mel_points/2595)-1))#將mel頻率再轉(zhuǎn)到hz頻率#bin=sample_rate/2/NFFT/2=sample_rate/NFFT

#每個(gè)頻點(diǎn)的頻率數(shù)#bins=hz_points/bin=hz_points*NFFT/sample_rate#hz_points對(duì)應(yīng)第幾個(gè)fft頻點(diǎn)bins=np.floor((NFFT+1)*hz_points/sample_rate)fbank=np.zeros((nfilt,int(np.floor(NFFT/2+1))))forminrange(1,nfilt+1):f_m_minus=int(bins[m-1])f_m=int(bins[m])f_m_plus=int(bins[m+1])forkinrange(f_m_minus,f_m):fbank[m-1,k]=(k-bins[m-1])/(bins[m]-bins[m-1])forkinrange(f_m,f_m_plus):fbank[m-1,k]=(bins[m+1]-k)/(bins[m+1]-bins[m])filter_banks=np.dot(pow_frames,fbank.T)filter_banks=np.where(filter_banks==0,np.finfo(float).eps,filter_banks)filter_banks=20*np.log10(filter_banks)#dB五、梅爾頻率倒譜系數(shù)(MFCCs)在計(jì)算濾波器組系數(shù)時(shí),這些系數(shù)之間存在著高度的相關(guān)性。這可能會(huì)給一些機(jī)器學(xué)習(xí)算法帶來(lái)問(wèn)題。為了解決這個(gè)問(wèn)題,可以使用離散余弦變換(DCT)來(lái)變換濾波器組系數(shù)。通過(guò)這種方式,高度相關(guān)的濾波器組系數(shù)被轉(zhuǎn)換為相互獨(dú)立的系數(shù),因此更適合用于一些機(jī)器學(xué)習(xí)算法。圖3-6

信號(hào)的頻譜圖語(yǔ)音識(shí)別需要對(duì)濾波器組系數(shù)進(jìn)行處理并生成壓縮表示。一般而言,我們只保留2-13個(gè)倒頻譜系數(shù),而將其他部分剔除。這是因?yàn)楸惶蕹南禂?shù)所代表的微小差異對(duì)自動(dòng)語(yǔ)音識(shí)別沒(méi)有實(shí)際作用,反而可能會(huì)引入噪聲干擾,從而影響準(zhǔn)確性。因此,只保留2-13個(gè)倒頻譜系數(shù)可以更好地處理語(yǔ)音信號(hào),并提高自動(dòng)語(yǔ)音識(shí)別的準(zhǔn)確度。mfcc=dct(filter_banks,type=2,axis=1,norm='ortho')[:,1:(num_ceps+1)]#保持在2-13為了提高在噪聲環(huán)境下的語(yǔ)音識(shí)別準(zhǔn)確性,可以使用MFCC正弦提升器(Liftering)進(jìn)行濾波。該濾波是在倒譜域中實(shí)現(xiàn)的,可去除高頻部分的MFCC,增強(qiáng)低頻部分的信息。實(shí)踐證明,采用Liftering可以有效改善在噪聲信號(hào)中的語(yǔ)音識(shí)別效果。需要注意,在譜圖和倒譜圖中應(yīng)分別使用filtering和liftering兩種方法來(lái)完成這種濾波。(nframes,ncoeff)=mfcc.shapen=numpy.arange(ncoeff)lift=1+(cep_lifter/2)*numpy.sin(numpy.pi*n/cep_lifter)mfcc*=lift生成的MFCC:圖3-7

MFCCs六、均值歸一化(MeanNormalization)filter_banks-=(numpy.mean(filter_banks,axis=0)+1e-8)均值歸一化濾波器組:圖3-6

歸一化濾波器數(shù)組同樣對(duì)于MFCC:mfcc-=(numpy.mean(mfcc,axis=0)+1e-8)均值歸一化MFCC:圖3-7標(biāo)準(zhǔn)的MFCC

3.3總結(jié)本文探討了計(jì)算Mel刻度濾波器組和Mel頻率倒譜系數(shù)(MFCC)的過(guò)程。在計(jì)算FilterBanks和MFCCs時(shí),所有步驟都是基于語(yǔ)音信號(hào)的特性和人類感知原理。然而,在計(jì)算MFCC時(shí)需要進(jìn)行離散余弦變換(DCT),以去除濾波器組系數(shù)間的相關(guān)性,這一步驟也稱為白化。這是由于某些機(jī)器學(xué)習(xí)算法的限制所導(dǎo)致,它們需要對(duì)數(shù)據(jù)進(jìn)行降維和壓縮,以簡(jiǎn)化輸入并減少計(jì)算成本。尤其是在高斯混合模型-隱馬爾可夫模型(GMMs-HMMs)非常流行時(shí),MFCC與GMM-HMM共同演進(jìn)成為自動(dòng)語(yǔ)音識(shí)別(ASR)的標(biāo)準(zhǔn)方式。但在深度神經(jīng)網(wǎng)絡(luò)應(yīng)用中,使用FilterBanks和MFCC兩種特征提取方法都有其優(yōu)劣之處。雖然DCT可能會(huì)導(dǎo)致信息損失,但從計(jì)算量、特征區(qū)分度和信息量等方面來(lái)看,MFCC比FilterBanks更具優(yōu)勢(shì)。因此,在大多數(shù)語(yǔ)音識(shí)別算法中使用MFCC比較流行。然而需要注意的是,在使用對(duì)角協(xié)方差矩陣的高斯混合模型時(shí),由于忽略了不同特征維度的相關(guān)性,MFCC比較適合用來(lái)做特征。而深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)則可以更好地利用FilterBanks特征的相關(guān)性,并降低損失。隨著神經(jīng)網(wǎng)絡(luò)不斷發(fā)展,在當(dāng)前趨勢(shì)下,F(xiàn)ilterBanks特征越來(lái)越受到關(guān)注和使用。在語(yǔ)音信號(hào)處理中,F(xiàn)ilterBanks和MFCC是兩種常用的特征提取方法。它們?cè)谏疃壬窠?jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用中都有優(yōu)缺點(diǎn)。盡管MFCC具有信息多、特征區(qū)分度高等優(yōu)勢(shì),但使用高斯混合模型時(shí)可能會(huì)丟失信息。相較之下,F(xiàn)ilterBanks能更好地利用特征之間的相關(guān)性,以降低信息損失。這也使得FilterBanks特征在神經(jīng)網(wǎng)絡(luò)的發(fā)展和應(yīng)用中不斷受到關(guān)注和應(yīng)用。因此,在將來(lái)的語(yǔ)音識(shí)別算法中,F(xiàn)ilterBanks可能會(huì)成為更受歡迎的特征提取方法。需要注意的是,在使用對(duì)角協(xié)方差矩陣的高斯混合模型時(shí),MFCC更適合用作特征。第四章模型的構(gòu)建4.1CNN的優(yōu)點(diǎn)為了應(yīng)對(duì)語(yǔ)音信號(hào)中多樣性的挑戰(zhàn),包括說(shuō)話人和環(huán)境的變化,卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以成為解決方案之一。CNN利用時(shí)間和空間上的平移不變性,能夠?qū)φZ(yǔ)音時(shí)頻譜圖像進(jìn)行處理,提高識(shí)別準(zhǔn)確性。與傳統(tǒng)模型相比,CNN具有并行計(jì)算和加速技術(shù),可以有效實(shí)現(xiàn)大規(guī)模運(yùn)算。目前通用框架,如Tensorflow和Caffe,都支持CNN的并行加速,為語(yǔ)音識(shí)別中的CNN應(yīng)用提供了良好的支持。在使用CNN進(jìn)行語(yǔ)音識(shí)別時(shí),常見的方法是從淺到深逐漸構(gòu)建深層卷積網(wǎng)絡(luò),可以更好地優(yōu)化模型。4.1.1CLDNNCLDNN是一種使用廣泛的神經(jīng)網(wǎng)絡(luò)模型,它將卷積神經(jīng)網(wǎng)絡(luò)(CNN)、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)和全連接深度神經(jīng)網(wǎng)絡(luò)(DNN)相結(jié)合。CLDNN采用CNN來(lái)降低語(yǔ)音信號(hào)的頻域變化,并使用LSTM提供長(zhǎng)時(shí)記憶,同時(shí)通過(guò)DNN將特征映射到輸出空間。實(shí)驗(yàn)表明,將CNN提取的更好特征傳遞給LSTM可以提高LSTM的性能,而增加DNN的深度可以提高其預(yù)測(cè)能力。因此,CLDNN是一種有效的神經(jīng)網(wǎng)絡(luò)模型,可用于解決語(yǔ)音識(shí)別任務(wù)中的模式變化問(wèn)題。4.1.2CLDNN網(wǎng)絡(luò)結(jié)構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)圖,假設(shè)中心幀為,考慮到內(nèi)容相關(guān)性,向左擴(kuò)展L幀,向右擴(kuò)展R幀,則輸入特征序列為[,...,],特征向量使用的是40維的log梅爾特征。CLDNN(ConvolutionalLSTMDeepNeuralNetwork)是一種用于語(yǔ)音識(shí)別的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它由兩層CNN、2層LSTM和幾層全連接DNN組成。其中,兩層CNN負(fù)責(zé)對(duì)時(shí)域和頻域進(jìn)行建模,而2層LSTM通過(guò)長(zhǎng)時(shí)記憶來(lái)提供更好的特征。CNN的輸出特征經(jīng)過(guò)線性層降維后作為L(zhǎng)STM的輸入,同時(shí)也作為全連接DNN的一部分輸入。這種神經(jīng)網(wǎng)絡(luò)適用于處理語(yǔ)音識(shí)別任務(wù)中的模式變化。作者還嘗試了將CNN的輸入特征作為短時(shí)特征直接輸入給LSTM和DNN來(lái)提高性能。4.1.3實(shí)驗(yàn)結(jié)果我們對(duì)中文有噪聲語(yǔ)音數(shù)據(jù)集進(jìn)行了大量實(shí)驗(yàn),旨在評(píng)估CLDNN結(jié)構(gòu)的效果。所有模型的輸入特征都是由40維fbank特征組成的向量,每10ms一幀。我們使用交叉熵CE準(zhǔn)則進(jìn)行訓(xùn)練,并設(shè)置網(wǎng)絡(luò)輸出的狀態(tài)總數(shù)超過(guò)2萬(wàn)個(gè)。對(duì)于CNN的輸入,我們?cè)O(shè)定了兩個(gè)參數(shù):l和r。我們將r設(shè)為0,并通過(guò)實(shí)驗(yàn)確定最佳的l值為10。LSTM層共有3層,每層有1024個(gè)cell,project層有512個(gè)節(jié)點(diǎn)?;趯?shí)驗(yàn)結(jié)果,我們微調(diào)了一些CNN+LSTM和CNN+LSTM+DNN的網(wǎng)絡(luò)參數(shù)。此外,我們還進(jìn)行了一組實(shí)驗(yàn),采用兩層CNN和三層LSTM的組合。實(shí)驗(yàn)結(jié)果表明,增加一層LSTM可以提高性能,但繼續(xù)增加LSTM的層數(shù)則對(duì)結(jié)果沒(méi)有提升作用。表SEQ表\*ARABIC1CLDNN實(shí)驗(yàn)結(jié)構(gòu)methodWERLSTM13.8CNN+2層LSTM14.1CNN+3層LSTM13.6CNN+LSTM+DNN13.0LSTM+DNN13.2表SEQ表\*ARABIC2測(cè)試集1結(jié)果methodWERLSTM21.6CNN+2層LSTM21.8CNN+3層LSTM21.5CNN+LSTM+DNN20.6LSTM+DNNdeepCNN語(yǔ)音識(shí)別領(lǐng)域在過(guò)去一年中取得了巨大進(jìn)步,其中深度卷積神經(jīng)網(wǎng)絡(luò)是主要的技術(shù)趨勢(shì)之一。IBM、微軟、百度等多家機(jī)構(gòu)都在這方面做出了積極的探索和研究,并在實(shí)驗(yàn)中獲得了相當(dāng)顯著的提高。同時(shí),Residual/Highway網(wǎng)絡(luò)的出現(xiàn)使得我們能夠訓(xùn)練更深層的神經(jīng)網(wǎng)絡(luò),這為深度學(xué)習(xí)在語(yǔ)音識(shí)別領(lǐng)域的應(yīng)用提供了強(qiáng)有力的支持。在采用深度CNN的過(guò)程中,有兩種主要的策略。一種是在傳統(tǒng)的HMM框架下,通過(guò)基于VGG、Residual連接的CNN或CLDNN結(jié)構(gòu)進(jìn)行聲學(xué)模型設(shè)計(jì),以實(shí)現(xiàn)更加高效準(zhǔn)確的建模;另一種是采用端到端結(jié)構(gòu),在CTC框架中使用CNN或CLDNN來(lái)實(shí)現(xiàn)建模,或者是使用最近流行的LowFrameRate和Chain模型等技術(shù)來(lái)實(shí)現(xiàn)粗粒度建模單元,從而進(jìn)一步提高識(shí)別效果。總之,這些技術(shù)的不斷發(fā)展和創(chuàng)新,為語(yǔ)音識(shí)別的實(shí)際應(yīng)用帶來(lái)了更多的可能性和希望。4.1.5總結(jié)近兩年來(lái),深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)已成為語(yǔ)音識(shí)別領(lǐng)域的焦點(diǎn)之一。這一技術(shù)的應(yīng)用已從最初的2-3層淺層網(wǎng)絡(luò)發(fā)展到10層以上的深層網(wǎng)絡(luò),證明了該技術(shù)在語(yǔ)音識(shí)別中的高效性和可行性。同時(shí),CNN的使用范圍也得到了擴(kuò)充,從傳統(tǒng)的HMM-CNN框架到現(xiàn)在的端到端CTC框架,極大地提升了語(yǔ)音識(shí)別的準(zhǔn)確性和魯棒性。各大公司在CNN的應(yīng)用上都取得了令人矚目的成功,集中體現(xiàn)在推出的多個(gè)語(yǔ)音識(shí)別系統(tǒng)中。這些系統(tǒng)不僅在學(xué)術(shù)上取得了很大突破,而且在實(shí)際應(yīng)用中也表現(xiàn)得非常優(yōu)秀,其中包括語(yǔ)音助手、智能客服等方面。總之,深度CNN技術(shù)的不斷更新和創(chuàng)新,已經(jīng)成為語(yǔ)音識(shí)別領(lǐng)域的重要突破方向之一,并為相關(guān)行業(yè)的發(fā)展帶來(lái)了更多的機(jī)會(huì)與挑戰(zhàn)。總結(jié)一下,CNN發(fā)展的趨勢(shì)大體為:1更加深和復(fù)雜的網(wǎng)絡(luò),CNN一般作為網(wǎng)絡(luò)的前幾層,可以理解為用CNN提取特征,后面接LSTM或DNN。同時(shí)結(jié)合多種機(jī)制,如attentionmodel、ResNet的技術(shù)等。2EndtoEnd的識(shí)別系統(tǒng),采用端到端技術(shù)CTC,LFR等。3粗粒度的建模單元,趨勢(shì)為從state到phone到character,建模單元越來(lái)越大。但CNN也有局限性,[2,3]研究表明,卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練集或者數(shù)據(jù)差異性較小的任務(wù)上幫助最大,對(duì)于其他大多數(shù)任務(wù),相對(duì)詞錯(cuò)誤率的下降一般只在2%到3%的范圍內(nèi)。不管怎么說(shuō),CNN作為語(yǔ)音識(shí)別重要的分支之一,都有著極大的研究?jī)r(jià)值。4.2模型的構(gòu)建MFCC的概述在語(yǔ)音識(shí)別和話者識(shí)別領(lǐng)域,MFCC是最常用的一種語(yǔ)音特征。這是因?yàn)槿硕鷮?duì)聲音的不同頻段有不同的敏感度,尤其是低頻信號(hào)可能會(huì)掩蓋高頻信號(hào),這對(duì)于精確的語(yǔ)音識(shí)別非常關(guān)鍵?;谌祟惵犛X(jué)模型進(jìn)行頻譜分析,可以獲得更符合人耳聽覺(jué)特性的特征。這是通過(guò)使用一組帶通濾波器來(lái)濾波輸入信號(hào),并將每個(gè)濾波器輸出的能量作為基本特征來(lái)實(shí)現(xiàn)的。這樣的特征參數(shù)不受信號(hào)性質(zhì)影響,不考慮任何假設(shè)或限制,并且即使在低信噪比環(huán)境下也具有較好的識(shí)別能力。在深度學(xué)習(xí)系統(tǒng)中,性能的優(yōu)劣主要取決于訓(xùn)練數(shù)據(jù)、網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)和超參數(shù)等四個(gè)因素。為了達(dá)到最佳性能,需要在這些方面進(jìn)行合理的選擇和調(diào)整,以充分利用各種資源,提高模型的準(zhǔn)確性和魯棒性,從而獲得更加準(zhǔn)確和穩(wěn)定的語(yǔ)音識(shí)別結(jié)果。1、訓(xùn)練數(shù)據(jù)深度學(xué)習(xí)中的數(shù)據(jù)是提高模型性能的決定性因素,它的重要性不言而喻。不過(guò),光有大量數(shù)據(jù)是不夠的,還必須確保數(shù)據(jù)的多樣性和可靠性。因此,在選擇訓(xùn)練數(shù)據(jù)時(shí)必須根據(jù)最終應(yīng)用場(chǎng)景進(jìn)行精挑細(xì)選,這樣才能保證數(shù)據(jù)集能真正反映出實(shí)際情境的特征。如果數(shù)據(jù)集樣本過(guò)于單一或數(shù)量不足,可能導(dǎo)致模型欠擬合問(wèn)題。那么怎么辦呢?我們可以采用Boost思想,通過(guò)尋找難例來(lái)增加數(shù)據(jù)的多樣性,從而提高模型的性能。此外,針對(duì)特定場(chǎng)景的應(yīng)用,專屬的數(shù)據(jù)也變得尤為重要,這些數(shù)據(jù)可以用來(lái)進(jìn)行場(chǎng)景適配、麥克風(fēng)適配等操作,從而讓模型更貼近實(shí)際應(yīng)用,發(fā)揮更好的效果。2、網(wǎng)絡(luò)結(jié)構(gòu)在深度學(xué)習(xí)中,模型的網(wǎng)絡(luò)結(jié)構(gòu)是一項(xiàng)關(guān)鍵因素,它直接影響著模型的性能。有些網(wǎng)絡(luò)結(jié)構(gòu)如DNN、CLNN、Deepspeech和transformer旨在提高模型的準(zhǔn)確性和穩(wěn)健性。然而,這些復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練起來(lái)非常困難,需要更多的數(shù)據(jù)和計(jì)算資源以及更高級(jí)的技巧。對(duì)于大多數(shù)人來(lái)說(shuō),訓(xùn)練一個(gè)最優(yōu)的模型是一項(xiàng)十分艱巨的工作。在這種情況下,預(yù)訓(xùn)練模型則成為了一種非常重要的解決方案,因?yàn)樗鼈兡軌蚬?jié)省大量的訓(xùn)練時(shí)間。預(yù)訓(xùn)練模型是在大規(guī)模數(shù)據(jù)集上進(jìn)行訓(xùn)練而得到的,這些模型可以作為起點(diǎn),經(jīng)過(guò)微調(diào)之后就可以用于特定的任務(wù),從而提高模型的性能。此外,如果用戶需要限制模型的推理速度或參數(shù)數(shù)量,可以采用一些策略如量化、蒸餾、剪枝等來(lái)縮小模型規(guī)模,從而不影響模型的性能,并提高模型的可用性。綜上所述,通過(guò)使用預(yù)訓(xùn)練模型和一些有效的策略,我們就可以在不犧牲模型的性能和準(zhǔn)確性的前提下,有效地提高模型的可用性和縮小模型規(guī)模。3、3、損失函數(shù)在語(yǔ)音識(shí)別任務(wù)中,網(wǎng)絡(luò)結(jié)構(gòu)類比為一輛車的硬件配置,而損失函數(shù)則類似于導(dǎo)航系統(tǒng)。它指引模型前進(jìn)的方向,以及選擇最佳路徑以實(shí)現(xiàn)目標(biāo)。交叉熵、CTCloss和RNN-Tloss是常用的損失函數(shù),并且有多種優(yōu)化版本可供選擇。因此,在訓(xùn)練模型以獲取高準(zhǔn)確度和魯棒性的語(yǔ)音識(shí)別結(jié)果時(shí),精心選擇適合的損失函數(shù)至關(guān)重要。4、超參數(shù)超參數(shù)的設(shè)置,就是煉丹術(shù)最重要的環(huán)節(jié)了。模型的深度/寬度、優(yōu)化器選擇、學(xué)習(xí)率衰減策略等等。不同的訓(xùn)練策略不僅僅是影響網(wǎng)絡(luò)收斂的速度,也會(huì)影響到最后訓(xùn)練的精度。4.4常用的損失函數(shù)1、交叉熵——crossentropy語(yǔ)音識(shí)別算法中,最開始使用的幀級(jí)別的標(biāo)簽,即獲取到FFT后,每一列(25ms)對(duì)應(yīng)的標(biāo)簽。假設(shè)輸入的維度為100x128,在語(yǔ)音識(shí)別中,通常會(huì)對(duì)輸入的聲音數(shù)據(jù)進(jìn)行FFT,將其轉(zhuǎn)化為一個(gè)100x128的矩陣。這個(gè)矩陣會(huì)分別通過(guò)CNN或LSTM模型進(jìn)行處理,最終輸出的是一個(gè)100x39的矩陣,其中每一列分別代表了當(dāng)前時(shí)間幀下,每個(gè)音素的得分。接著,我們對(duì)每一列的39個(gè)得分值進(jìn)行softmax操作,以獲得每一個(gè)音素在當(dāng)前幀下的概率值。這些概率值組成了新的矩陣y',代表了整段語(yǔ)音中每一幀對(duì)每一個(gè)音素出現(xiàn)的可能性的預(yù)測(cè)結(jié)果。softmax表達(dá)式CEloss的表達(dá)式如下所示,其中y的尺寸為batch*T*clsnum,為one-hot的表達(dá)形式;y'為前面提到的概率矩陣,其尺寸為batchsize*T*cls_num。CEloss的思想是:y'的值范圍是0~1,所以log(y')的值是負(fù)無(wú)窮~0,當(dāng)取負(fù)號(hào)后,取值范圍就是0~正無(wú)窮在語(yǔ)音識(shí)別中,用于評(píng)估模型預(yù)測(cè)準(zhǔn)確度的常用損失函數(shù)是交叉熵(CEloss)。而CEloss存在一個(gè)缺陷,當(dāng)訓(xùn)練集包含大量簡(jiǎn)單樣本時(shí),難以訓(xùn)練到復(fù)雜的樣本,因?yàn)槿菀妆桓嗾_分類的樣本所掩蓋。為了解決這一問(wèn)題,改進(jìn)的focalloss成為一種選擇。focalloss將原先表示真實(shí)標(biāo)簽的y替換為(1-y'),即當(dāng)某個(gè)音素得分越高,則其權(quán)重越低,其占比也越低。每個(gè)樣本對(duì)損失函數(shù)的貢獻(xiàn)也不再是固定的1,而是動(dòng)態(tài)的(1-y')。這使得得分較低的樣本占比更大,更難訓(xùn)練的樣本也更易被納入訓(xùn)練中,因此可以更好地訓(xùn)練這些難以訓(xùn)練的樣本。2、CTCloss在語(yǔ)音識(shí)別中,交叉熵?fù)p失函數(shù)(CEloss)和focalloss都是常用的損失函數(shù),它們的主要優(yōu)點(diǎn)是能幫助網(wǎng)絡(luò)更容易地收斂,因此通常用于預(yù)訓(xùn)練模型。然而,這兩種損失函數(shù)需要準(zhǔn)確的幀級(jí)別標(biāo)簽,而獲得準(zhǔn)確標(biāo)簽通常需要使用聚類算法等方法,此過(guò)程存在精度誤差和較為復(fù)雜的操作。然而,由于聚類算法本身存在誤差,因此標(biāo)簽的精確度可能存在一定程度的誤差,并且獲取幀級(jí)別標(biāo)簽的過(guò)程也相對(duì)繁瑣。CTCloss就是為了解決這個(gè)問(wèn)題所提出的,其只需要文本形式的標(biāo)簽即可完成模型訓(xùn)練。其將時(shí)間幀跟音素的對(duì)應(yīng)操作融合在了搜索過(guò)程中,通過(guò)在解碼空間中訓(xùn)練最優(yōu)的解碼路徑,實(shí)現(xiàn)音素結(jié)果的預(yù)測(cè)。CTCloss的思想是:引入blank符號(hào),用于分割相鄰音素。不需要幀級(jí)別的標(biāo)簽,只需要字符串形式的標(biāo)簽,比如“thesoundof...”。網(wǎng)絡(luò)輸出尺寸為batchsize*T*(clsnum+1),加的這個(gè)1就是blank符號(hào),每一列代表每個(gè)類別的概率。當(dāng)前音素的下一個(gè)預(yù)測(cè)結(jié)果,只可能是{當(dāng)前音素、空白符、下一個(gè)音素}三個(gè)中的一個(gè)。所有可能路徑構(gòu)成的空間,即為解碼空間。實(shí)際搜索過(guò)程中,往往使用beamsearch算法來(lái)減小搜索空間,降低時(shí)耗。通過(guò)搜索算法,尋找概率最大的一條或幾條路徑(路徑每個(gè)節(jié)點(diǎn)概率的乘積),即為最終預(yù)測(cè)的結(jié)果。上圖為CTCloss的表達(dá)式,其中(1)式表示某一條路徑的概率積;(2)式表示某一條輸出文字對(duì)應(yīng)所有可能路徑的概率之和;(3)式是CTCloss的表達(dá)式,希望對(duì)于給定的某一條輸出文字,其所有路徑的概率之和是最大的。所以具體哪個(gè)時(shí)刻應(yīng)該對(duì)應(yīng)哪個(gè)音素,就是通過(guò)優(yōu)化損失函數(shù)讓路徑概率最大來(lái)實(shí)現(xiàn)的。CTCloss和CEloss的區(qū)別CEloss的標(biāo)簽是幀級(jí)別的標(biāo)簽,需要知道每一幀對(duì)應(yīng)的音素是什么;CTCloss的標(biāo)簽是文字需要,不需要知道每一幀對(duì)應(yīng)的音素是什么,訓(xùn)練得到的輸出矩陣也不是幀級(jí)別對(duì)齊的矩陣,而是最大化概率得分的矩陣CTCloss有一個(gè)條件假設(shè),即標(biāo)簽之間是相互獨(dú)立的。實(shí)際情況中這是不可能的,因?yàn)橛猩舷挛牡恼Z(yǔ)義信息。解決方法是在后面跟一個(gè)語(yǔ)言模型或者使用RNN-Tloss。4.4構(gòu)建模型代碼defcnn():

input_layer=layer.Input((mfcc_shape[0],mfcc_shape[1],1))

conv1=layer.Conv2D(64,(3,3),padding="same",strides=(1,1))(input_layer)

act1=layer.Activation('relu')(conv1)

pool1=layer.MaxPool2D((2,2))(act1)

conv3=layer.Conv2D(128,(3,3),padding="same",strides=(1,1))(pool1)

act3=layer.Activation('relu')(conv3)

conv4=layer.Conv2D(128,(3,3),padding="same",strides=(1,1))(act3)

act4=layer.Activation('relu')(conv4)

pool2=layer.MaxPool2D((2,2))(act4)

conv5=layer.Conv2D(256,(3,3),padding="same",strides=(1,1))(pool2)

act5=layer.Activation('relu')(conv5)

conv6=layer.Conv2D(256,(3,3),padding="same",strides=(1,1))(act5)

act6=layer.Activation('relu')(conv6)

pool3=layer.MaxPool2D((2,2))(act6)

conv7=layer.Conv2D(512,(3,3),padding="same",strides=(1,1))(pool3)

act7=layer.Activation('relu')(conv7)

pool4=layer.MaxPool2D((2,2))(act7)

flat=layer.Flatten()(pool4)

dense1=layer.Dense(2000)(flat)

dense2=layer.Dense(800)(dense1)

dense3=layer.Dense(label_num)(dense2)

out=layer.Activation('softmax')(dense3)

model=Model(input_layer,out)

returnmodel

x=np.load("data_x.npy")

y=np.load("data_label.npy")

test_num=30

train_x=np.zeros((label_num*(file_num-test_num),mfcc_shape[0],mfcc_shape[1],1))

test_x=np.zeros((label_num*test_num,mfcc_shape[0],mfcc_shape[1],1))

train_label=np.zeros((label_num*(file_num-test_num),label_num))

test_label=np.zeros((label_num*test_num,label_num))

foriinrange(label_num):train_x[i*(file_num-test_num):(i+1)*(file_num-test_num),:,:,:]=x[i,:file_num-test_num,:,:,:]

test_x[i*test_num:(i+1)*test_num,:,:,:]=x[i,file_num-test_num:file_num,:,:,:]

train_label[i*(file_num-test_num):(i+1)*(file_num-test_num),:]=y[i*file_num:(i+1)*file_num-test_num,:]

test_label[i*test_num:(i+1)*test_num,:]=y[(i+1)*file_num-test_num:(i+1)*file_num,:]

state=np.random.get_state()

np.random.shuffle(train_x)

np.random.set_state(state)

np.random.shuffle(train_label)

state=np.random.get_state()

np.random.shuffle(test_x)

np.random.set_state(state)

np.random.shuffle(test_label)

model=cnn()

model.summary()

opt1=keras

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論