欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Android本地語(yǔ)音識別
本帖最后由 xi4y0z 于 2014-1-2 14:14 編輯

這幾天研究Android本地語(yǔ)音識別,我們先了解一下基礎知識
語(yǔ)音識別技術(shù)就是讓機器通過(guò)識別和理解過(guò)程把語(yǔ)音信號轉變?yōu)橄鄳奈谋净蛎畹募夹g(shù)。
       基于語(yǔ)音識別芯片的嵌入式產(chǎn)品也越來(lái)越多,如Sensory公司的RSC系列語(yǔ)音識別芯片、Infineon公司的Unispeech和Unilite語(yǔ)音芯片等,這些芯片在嵌入式硬件開(kāi)發(fā)中得到了廣泛的應用。在軟件上,目前比較成功的語(yǔ)音識別軟件有:Nuance、IBM的Viavoice和Microsoft的SAPI以及開(kāi)源軟件HTK,這些軟件都是面向非特定人、大詞匯量的連續語(yǔ)音識別系統。
        語(yǔ)音識別本質(zhì)上是一種模式識別的過(guò)程,未知語(yǔ)音的模式與已知語(yǔ)音的參考模式逐一進(jìn)行比較,最佳匹配的參考模式被作為識別結果。
        語(yǔ)音識別的目的就是讓機器賦予人的聽(tīng)覺(jué)特性,聽(tīng)懂人說(shuō)什么,并作出相應的動(dòng)作。目前大多數語(yǔ)音識別技術(shù)是基于統計模式的,從語(yǔ)音產(chǎn)生機理來(lái)看,語(yǔ)音識別可以分為語(yǔ)音層和語(yǔ)言層兩部分。
        當今語(yǔ)音識別技術(shù)的主流算法,主要有基于動(dòng)態(tài)時(shí)間規整(DTW)算法、基于非參數模型的矢量量化(VQ)方法、基于參數模型的隱馬爾可夫模型(HMM)的方法、基于人工神經(jīng)網(wǎng)絡(luò )(ANN)和支持向量機等語(yǔ)音識別方法。
語(yǔ)音識別分類(lèi):
根據對說(shuō)話(huà)人的依賴(lài)程度,分為:
(1)特定人語(yǔ)音識別(SD):只能辨認特定使用者的語(yǔ)音,訓練→使用。
(2)非特定人語(yǔ)音識別(SI):可辨認任何人的語(yǔ)音,無(wú)須訓練。
根據對說(shuō)話(huà)方式的要求,分為:
(1)孤立詞識別:每次只能識別單個(gè)詞匯。
(2)連續語(yǔ)音識別:用者以正常語(yǔ)速說(shuō)話(huà),即可識別其中的語(yǔ)句。
        語(yǔ)音識別系統的模型通常由聲學(xué)模型和語(yǔ)言模型兩部分組成,分別對應于語(yǔ)音到音節概率的計算和音節到字概率的計算。
[size=14.44444465637207px]

Sphinx是由美國卡內基梅隆大學(xué)開(kāi)發(fā)的大詞匯量、非特定人、連續英語(yǔ)語(yǔ)音識別系統。一個(gè)連續語(yǔ)音識別系統大致可分為四個(gè)部分:特征提取,聲學(xué)模型訓練,語(yǔ)言模型訓練和解碼器。
(1)預處理模塊:
       對輸入的原始語(yǔ)音信號進(jìn)行處理,濾除掉其中的不重要的信息以及背景噪聲,并進(jìn)行語(yǔ)音信號的端點(diǎn)檢測(找出語(yǔ)音信號的始末)、語(yǔ)音分幀(近似認為在10-30ms內是語(yǔ)音信號是短時(shí)平穩的,將語(yǔ)音信號分割為一段一段進(jìn)行分析)以及預加重(提升高頻部分)等處理。
(2)特征提?。?/font>
        去除語(yǔ)音信號中對于語(yǔ)音識別無(wú)用的冗余信息,保留能夠反映語(yǔ)音本質(zhì)特征的信息,并用一定的形式表示出來(lái)。也就是提取出反映語(yǔ)音信號特征的關(guān)鍵特征參數形成特征矢量序列,以便用于后續處理。
        目前的較常用的提取特征的方法還是比較多的,不過(guò)這些提取方法都是由頻譜衍生出來(lái)的。Mel頻率倒譜系數(MFCC)參數因其良好的抗噪性和魯棒性而應用廣泛。在sphinx中也是用MFCC特征的。MFCC的計算首先用FFT將時(shí)域信號轉化成頻域,之后對其對數能量譜用依照Mel刻度分布的三角濾波器組進(jìn)行卷積,最后對各個(gè)濾波器的輸出構成的向量進(jìn)行離散余弦變換DCT,取前N個(gè)系數。
       在sphinx中,用幀frames去分割語(yǔ)音波形,每幀大概10ms,然后每幀提取可以代表該幀語(yǔ)音的39個(gè)數字,這39個(gè)數字也就是該幀語(yǔ)音的MFCC特征,用特征向量來(lái)表示。
(3)聲學(xué)模型訓練:
      根據訓練語(yǔ)音庫的特征參數訓練出聲學(xué)模型參數。在識別時(shí)可以將待識別的語(yǔ)音的特征參數同聲學(xué)模型進(jìn)行匹配,得到識別結果。
      目前的主流語(yǔ)音識別系統多采用隱馬爾可夫模型HMM進(jìn)行聲學(xué)模型建模。聲學(xué)模型的建模單元,可以是音素,音節,詞等各個(gè)層次。對于小詞匯量的語(yǔ)音識別系統,可以直接采用音節進(jìn)行建模。而對于詞匯量偏大的識別系統,一般選取音素,即聲母,韻母進(jìn)行建模。識別規模越大,識別單元選取的越小。(關(guān)于HMM,網(wǎng)上有很多經(jīng)典的解說(shuō),例如《HMM學(xué)習最佳范例》和《隱馬爾科夫模型(hmm)簡(jiǎn)介》等,不了解的可以去看看)
         HMM是對語(yǔ)音信號的時(shí)間序列結構建立統計模型,將其看作一個(gè)數學(xué)上的雙重隨機過(guò)程:一個(gè)是用具有有限狀態(tài)數的Markov鏈來(lái)模擬語(yǔ)音信號統計特性變化的隱含(馬爾可夫模型的內部狀態(tài)外界不可見(jiàn))的隨機過(guò)程,另一個(gè)是與Markov鏈的每一個(gè)狀態(tài)相關(guān)聯(lián)的外界可見(jiàn)的觀(guān)測序列(通常就是從各個(gè)幀計算而得的聲學(xué)特征)的隨機過(guò)程。
        人的言語(yǔ)過(guò)程實(shí)際上就是一個(gè)雙重隨機過(guò)程,語(yǔ)音信號本身是一個(gè)可觀(guān)測的時(shí)變序列,是由大腦根據語(yǔ)法知識和言語(yǔ)需要(不可觀(guān)測的狀態(tài))發(fā)出的音素的參數流(發(fā)出的聲音)。HMM合理地模仿了這一過(guò)程,是較為理想的一種語(yǔ)音模型。用HMM刻畫(huà)語(yǔ)音信號需作出兩個(gè)假設,一是內部狀態(tài)的轉移只與上一狀態(tài)有關(guān),另一是輸出值只與當前狀態(tài)(或當前的狀態(tài)轉移)有關(guān),這兩個(gè)假設大大降低了模型的復雜度。
       語(yǔ)音識別中使用HMM通常是用從左向右單向、帶自環(huán)、帶跨越的拓撲結構來(lái)對識別基元建模,一個(gè)音素就是一個(gè)三至五狀態(tài)的HMM,一個(gè)詞就是構成詞的多個(gè)音素的HMM串行起來(lái)構成的HMM,而連續語(yǔ)音識別的整個(gè)模型就是詞和靜音組合起來(lái)的HMM。
[size=14.44444465637207px]

(4)語(yǔ)言模型訓練:
       語(yǔ)言模型是用來(lái)計算一個(gè)句子出現概率的概率模型。它主要用于決定哪個(gè)詞序列的可能性更大,或者在出現了幾個(gè)詞的情況下預測下一個(gè)即將出現的詞語(yǔ)的內容。換一個(gè)說(shuō)法說(shuō),語(yǔ)言模型是用來(lái)約束單詞搜索的。它定義了哪些詞能跟在上一個(gè)已經(jīng)識別的詞的后面(匹配是一個(gè)順序的處理過(guò)程),這樣就可以為匹配過(guò)程排除一些不可能的單詞。
       語(yǔ)言建模能夠有效的結合漢語(yǔ)語(yǔ)法和語(yǔ)義的知識,描述詞之間的內在關(guān)系,從而提高識別率,減少搜索范圍。語(yǔ)言模型分為三個(gè)層次:字典知識,語(yǔ)法知識,句法知識。
         對訓練文本數據庫進(jìn)行語(yǔ)法、語(yǔ)義分析,經(jīng)過(guò)基于統計模型訓練得到語(yǔ)言模型。語(yǔ)言建模方法主要有基于規則模型和基于統計模型兩種方法。統計語(yǔ)言模型是用概率統計的方法來(lái)揭示語(yǔ)言單位內在的統計規律,其中N-Gram模型簡(jiǎn)單有效,被廣泛使用。它包含了單詞序列的統計。
          N-Gram模型基于這樣一種假設,第n個(gè)詞的出現只與前面N-1個(gè)詞相關(guān),而與其它任何詞都不相關(guān),整句的概率就是各個(gè)詞出現概率的乘積。這些概率可以通過(guò)直接從語(yǔ)料中統計N個(gè)詞同時(shí)出現的次數得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
         Sphinx中是采用二元語(yǔ)法和三元語(yǔ)法的統計語(yǔ)言概率模型,也就是通過(guò)前一個(gè)或兩個(gè)單詞來(lái)判定當前單詞出現的概率P(w2| w1),P(w3| w2, w1)。
(5)語(yǔ)音解碼和搜索算法:
       解碼器:即指語(yǔ)音技術(shù)中的識別過(guò)程。針對輸入的語(yǔ)音信號,根據己經(jīng)訓練好的HMM聲學(xué)模型、語(yǔ)言模型及字典建立一個(gè)識別網(wǎng)絡(luò ),根據搜索算法在該網(wǎng)絡(luò )中尋找最佳的一條路徑,這個(gè)路徑就是能夠以最大概率輸出該語(yǔ)音信號的詞串,這樣就確定這個(gè)語(yǔ)音樣本所包含的文字了。所以解碼操作即指搜索算法:是指在解碼端通過(guò)搜索技術(shù)尋找最優(yōu)詞串的方法。
        連續語(yǔ)音識別中的搜索,就是尋找一個(gè)詞模型序列以描述輸入語(yǔ)音信號,從而得到詞解碼序列。搜索所依據的是對公式中的聲學(xué)模型打分和語(yǔ)言模型打分。在實(shí)際使用中,往往要依據經(jīng)驗給語(yǔ)言模型加上一個(gè)高權重,并設置一個(gè)長(cháng)詞懲罰分數。當今的主流解碼技術(shù)都是基于Viterbi搜索算法的,Sphinx也是。
       基于動(dòng)態(tài)規劃的Viterbi算法[url=]在每個(gè)時(shí)間點(diǎn)上的各個(gè)狀態(tài),計算解碼狀態(tài)序列對觀(guān)察序列的后驗概率,保留概率最大的路徑[/url],并在每個(gè)節點(diǎn)記錄下相應的狀態(tài)信息以便最后反向獲取詞解碼序列。Viterbi算法本質(zhì)上是一種動(dòng)態(tài)規劃算法,該算法遍歷HMM狀態(tài)網(wǎng)絡(luò )并保留每一幀語(yǔ)音在某個(gè)狀態(tài)的最優(yōu)路徑得分。
        連續語(yǔ)音識別系統的識別結果是一個(gè)詞序列。解碼實(shí)際上是對詞表的所有詞反復搜索。詞表中詞的排列方式會(huì )影響搜索的速度,而詞的排列方式就是字典的表示形式。Sphinx系統中采用音素作為聲學(xué)訓練單元,通常字典就用來(lái)記錄每個(gè)單詞由哪些個(gè)音素組成,也可以理解為對每個(gè)詞的發(fā)音進(jìn)行標注。
         N-best搜索和多遍搜索:為在搜索中利用各種知識源,通常要進(jìn)行多遍搜索,第一遍使用代價(jià)低的知識源(如聲學(xué)模型、語(yǔ)言模型和音標詞典),產(chǎn)生一個(gè)候選列表或詞候選網(wǎng)格,在此基礎上進(jìn)行使用代價(jià)高的知識源(如4階或5階的N-Gram、4階或更高的上下文相關(guān)模型)的第二遍搜索得到最佳路徑。
對于語(yǔ)音識別過(guò)程個(gè)人的理解:
      例如我對電腦說(shuō):“幫我打開(kāi)“我的電腦”!”然后電腦得理解我說(shuō)了什么,然后再執行打開(kāi)“我的電腦”的操作,那怎么實(shí)現呢?
       這個(gè)得預先有一個(gè)工作,就是電腦得先學(xué)會(huì )“幫我打開(kāi)“我的電腦”!”這句語(yǔ)音(實(shí)際上是一個(gè)波形)所代表的文字就是“幫我打開(kāi)“我的電腦”!”這句詞串。那么如何讓它學(xué)會(huì )呢?
       如果以音節(對漢語(yǔ)來(lái)說(shuō)就是一個(gè)字的發(fā)音)為語(yǔ)音基元的話(huà),那么電腦就是一個(gè)字一個(gè)字地學(xué)習,例如“幫”字、“我”字等等,那么“幫”字怎么學(xué)習呢?也就是說(shuō)電腦接收到一個(gè)“幫”字的語(yǔ)音波形,怎么分析理解才知道它代表的是“幫”字呢?首先我們需要建立一個(gè)數學(xué)模型來(lái)表示這個(gè)語(yǔ)音。因為語(yǔ)音是連續的不平穩的信號,但是在短的時(shí)間內可以認為是平穩的,所以我們需要分割語(yǔ)音信號為一幀一幀,假如大概25ms一幀,然后為了讓每一幀平穩過(guò)渡,我們就讓每幀見(jiàn)存在重疊,假如重疊10ms。這樣每幀的語(yǔ)言信號就是平穩的了,再從每幀語(yǔ)音信號中提取反映語(yǔ)音本質(zhì)特征的信息(去除語(yǔ)音信號中對于語(yǔ)音識別無(wú)用的冗余信息,同時(shí)達到降維)。那么采用什么特征最能表達每一幀的語(yǔ)音呢?MFCC是用的比較多的一種,這里不介紹了。然后我們就提取每一幀語(yǔ)音的MFCC特征,得到了是一系列的系數,大概四五十個(gè)這樣,sphinx中是39個(gè)數字,組成了特征向量。好,那么我們就通過(guò)39個(gè)數字來(lái)描述每一幀的語(yǔ)音了,那不同的語(yǔ)音幀就會(huì )有不同的39個(gè)數字的組合,那我們用什么數學(xué)模型去描述這39個(gè)數字的分布情況呢?這里我們可以用一個(gè)混合高斯模型來(lái)表示著(zhù)39個(gè)數字的分布,而混合高斯模型就存在著(zhù)兩個(gè)參數:均值和方差;那么實(shí)際上每一幀的語(yǔ)音就對應著(zhù)這么一組均值和方差的參數了。呵呵,挺啰嗦的啊。
       好了,這樣“幫”字的語(yǔ)音波形中的一幀就對應了一組均值和方差(HMM模型中的觀(guān)察序列),那么我們只需要確定“幫”字(HMM模型中的隱含序列)也對應于這一組均值和方差就可以了。那么后者是怎么對應的呢?這就是訓練的作用了!我們知道描述一個(gè)HMM模型需要三個(gè)參數:初始狀態(tài)概率分布π、隱含狀態(tài)序列的轉移矩陣A(就是某個(gè)狀態(tài)轉移到另一個(gè)狀態(tài)的概率觀(guān)察序列中的這個(gè)均值或者方差的概率)和某個(gè)隱含狀態(tài)下輸出觀(guān)察值的概率分布B(也就是某個(gè)隱含狀態(tài)下對應于);而聲學(xué)模型可以用HMM模型來(lái)建模,也就是對于每一個(gè)建模的語(yǔ)音單元,我們需要找到一組HMM模型參數(π,A,B)就可以代表這個(gè)語(yǔ)音單元了。那么這三個(gè)參數怎么確定呢?訓練!我們給出一個(gè)語(yǔ)音的數據庫,指明說(shuō)這個(gè)語(yǔ)音代表這個(gè)詞,然后讓電腦去學(xué)習,也就是對數據庫進(jìn)行統計,得到(π,A,B)這三個(gè)參數。
         好了,一個(gè)字(建模單元)的聲學(xué)模型建立了。那漢語(yǔ)是不是有很多個(gè)字啊,那我們就得對每一個(gè)建立聲學(xué)模型了。假設就有幾千個(gè)模型,然后每個(gè)模型就有了三個(gè)或者5個(gè)HMM狀態(tài),那么如果你說(shuō)的句子有10個(gè)字,那我們就得搜索這所有可能的模型去匹配你的語(yǔ)音,那是多么大的搜索空間了,這非常耗時(shí)。那我們就需要采用一個(gè)比較優(yōu)的搜索算法了(這里是Viterbi-Beam算法),它每搜索到一個(gè)狀態(tài)點(diǎn),就保留概率最大的,然后舍棄之前的狀態(tài)點(diǎn),這樣就裁剪了很多的搜索路徑,但因為忽略了之前的路徑,所以它就只能得到一個(gè)局部的最優(yōu)解。
        那假如出現以下情況呢?例如,It’s a nice day,從語(yǔ)音上可能會(huì )被識別為:It sun niced A,或者是It son ice day。從聲學(xué)模型來(lái)看它是無(wú)法區別這些結果,因為其不同之處只是在于每個(gè)單詞的邊界劃分位置不同造成的。這時(shí)候語(yǔ)言模型就該閃亮登場(chǎng)了,從語(yǔ)義上判斷那個(gè)結果出現的概率最大,即為搜索結果。語(yǔ)言模型N-Gram基于這樣一種假設,第n個(gè)詞的出現只與前面N-1個(gè)詞相關(guān),而與其它任何詞都不相關(guān),整句的概率就是各個(gè)詞出現概率的乘積。這些概率可以通過(guò)直接從語(yǔ)料中統計N個(gè)詞同時(shí)出現的次數得到。這樣就可以約束搜索,增加識別的準確率了。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久