-- 原創(chuàng)侥祭,未經(jīng)授權(quán)怪得,禁止轉(zhuǎn)載 --
語音交互將會成為新的入口,也是各大公司務(wù)必爭奪的資源之一卑硫,資源是指數(shù)據(jù)徒恋,不是技術(shù),因為技術(shù)會開放欢伏,而有價值的有標注的數(shù)據(jù)才是制勝法寶入挣。
所以,pm們需要了解語音識別技術(shù)的基礎(chǔ)硝拧,總有一天你會用到径筏,并且這一天不會太遠。
我會從以下幾個方面介紹語音識別:
一障陶、 語音識別的基礎(chǔ)概念
1. 概念
自動語音識別(Automatic Speech Recognition滋恬,ASR)技術(shù)是一種將人的語音轉(zhuǎn)換為文本的技術(shù)。
這項技術(shù)被當做是可以使人與人抱究、人與機器更順暢交流的橋梁恢氯,已經(jīng)在研究領(lǐng)域活躍了50多年。
2. 發(fā)展
ASR在近幾年的流行,與以下幾個關(guān)鍵領(lǐng)域的進步有關(guān):
- 摩爾定律持續(xù)有效
使得多核處理器勋拟、通用計算圖形處理器GPGPU勋磕、CPU/GPU集群等技術(shù),為訓(xùn)練復(fù)雜模型提供了可能敢靡,顯著降低了ASR系統(tǒng)的錯誤率挂滓。 - 大數(shù)據(jù)時代
借助互聯(lián)網(wǎng)和云計算,獲得了真實使用場景的大數(shù)據(jù)訓(xùn)練模型啸胧,使得ASR系統(tǒng)更具魯棒性(健壯性赶站、穩(wěn)定性)。 - 移動智能時代
移動設(shè)備纺念、可穿戴設(shè)備贝椿、智能家居設(shè)備、車載信息娛樂系統(tǒng)柠辞,變得越來越流行团秽,語音交互成為新的入口。
3. 研究領(lǐng)域分類
根據(jù)在不同限制條件下的研究任務(wù)叭首,產(chǎn)生了不同的研究領(lǐng)域习勤。如圖:
4. 語音識別任務(wù)分類
根據(jù)不同任務(wù),語音識別可分為4類:
5. 應(yīng)用
語音交互作為新的入口焙格,主要應(yīng)用于上圖中的兩大類:幫助人與人的交流和人與機器的交流图毕。
-
幫助人與人的交流 HHC
應(yīng)用場景如,如翻譯系統(tǒng)眷唉,微信溝通中的語音轉(zhuǎn)文字予颤,語音輸入等功能。語音到語音(speech-to-speech冬阳,S2S)翻譯系統(tǒng)蛤虐,可以整合到像Skype這樣的交流工具中,實現(xiàn)自由的遠程交流肝陪。
S2S組成模塊主要是驳庭,語音識別-->機器翻譯-->文字轉(zhuǎn)語音,可以看到氯窍,語音識別是整個流水線中的第一環(huán)饲常。
幫助人與機器的交流 HMC
應(yīng)用場景如,語音搜索VS狼讨,個人數(shù)碼助理PDA贝淤,游戲,車載信息娛樂系統(tǒng)等政供。
6. 對話系統(tǒng)
要注意的是播聪,我們上面所說的應(yīng)用場景和系統(tǒng)討論朽基,都是基于【語音對話系統(tǒng)】的舉例。
語音識別技術(shù)只是其中關(guān)鍵的一環(huán)犬耻,想要組建一個完整的語音對話系統(tǒng)踩晶,還需要其他技術(shù)执泰。
語音對話系統(tǒng):(包含以下系統(tǒng)的一個或多個)
1)語音識別系統(tǒng): 語音-->文字
2)語義理解系統(tǒng):提取用戶說話的語音信息
3)文字轉(zhuǎn)語音系統(tǒng):文字-->語音
4)對話管理系統(tǒng):1)+ 2)+3)完成實際應(yīng)用場景的溝通
二枕磁、語音識別系統(tǒng)
語音識別問題,其實是一個模式識別的問題术吝。給你一段聲波计济,機器判別是a還是b。
這個過程有兩大塊排苍,一個是生成機器能理解的聲音向量沦寂。第二個是通過模型算法識別這些聲音向量,最終給出識別結(jié)果淘衙。
每一塊中間都有很多細小的步驟传藏,我們后面會提到。
1. 系統(tǒng)架構(gòu)概述
下圖是語音識別系統(tǒng)的組成結(jié)構(gòu)彤守,主要分4部分:
信號處理和特征提取毯侦、聲學(xué)模型(AM)、語言模型(LM)和解碼搜索部分具垫。
左半部分可以看做是前端侈离,用于處理音頻流,從而分隔可能發(fā)聲的聲音片段筝蚕,并將它們轉(zhuǎn)換成一系列數(shù)值卦碾。
聲學(xué)模型就是識別這些數(shù)值,給出識別結(jié)果起宽。后面我們會詳細解釋洲胖。
右半邊看做是后端,是一個專用的搜索引擎坯沪,它獲取前端產(chǎn)生的輸出绿映,在以下三個數(shù)據(jù)庫進行搜索:一個發(fā)音模型,一個語言模型屏箍,一個詞典绘梦。
【發(fā)音模型】表示一種語言的發(fā)音聲音 ,可通過訓(xùn)練來識別某個特定用戶的語音模式和發(fā)音環(huán)境的特征。
【語言模型】表示一種語言的單詞如何合并 赴魁。
【詞典】列出該語言的大量單詞 卸奉,以及關(guān)于每個單詞如何發(fā)音的信息。
a)信號處理和特征提扔庇:
以音頻信號為輸入榄棵,通過消除噪聲和信道失真對語音進行增強凝颇,將信號從時域轉(zhuǎn)化到頻域,并為后面的聲學(xué)模型提取合適的有代表性的特征向量疹鳄。
b)聲學(xué)模型:
將聲學(xué)和發(fā)音學(xué)的知識進行整合拧略,以特征提取部分生成的特征為輸入,并為可變長特征序列生成聲學(xué)模型分數(shù)瘪弓。
c)語言模型:
語言模型估計通過訓(xùn)練語料學(xué)習(xí)詞與詞之間的相互關(guān)系垫蛆,來估計假設(shè)詞序列的可能性,又叫語言模型分數(shù)腺怯。如果了解領(lǐng)域或任務(wù)相關(guān)的先驗知識袱饭,語言模型的分數(shù)通常可以估計的更準確呛占。
d)解碼搜索:
綜合聲學(xué)模型分數(shù)與語言模型分數(shù)的結(jié)果虑乖,將總體輸出分數(shù)最高的詞序列當做識別結(jié)果。
2. 語音識別技術(shù)詳解
看完上面的架構(gòu)圖晾虑,你應(yīng)該有個大致的印象疹味,知道整個語音識別是怎么回事兒了。下面我們詳細說一些重要的過程帜篇。
2.1 語音識別單元
我們的語音內(nèi)容糙捺,由基本的語音單元組成。選擇要識別的語音單元是語音識別研究的第一步坠狡。
就是說继找,你要識別的結(jié)果是以什么為基礎(chǔ)單位的?是單詞還是元音字母逃沿?
語音識別單元有單詞 (句) 婴渡、音節(jié)和音素三種,具體選擇哪一種凯亮,根據(jù)具體任務(wù)來定边臼,如詞匯量大小、訓(xùn)練語音數(shù)據(jù)的多少假消。
【音素】:在漢語里柠并,最小的語音單位是音素,是從音色的角度分出來的富拗。
【音節(jié)】:一個音素單獨存在或幾個音素結(jié)合起來臼予,叫做音節(jié)】谢Γ可以從聽覺上區(qū)分粘拾,漢語一般是一字一音節(jié),少數(shù)的有兩字一音節(jié)(如“花兒”)和兩音節(jié)一字创千。
2.2 信號的數(shù)字化和預(yù)處理
接下來就要將收集到的語音轉(zhuǎn)化為一系列的數(shù)值缰雇,這樣機器才可以理解入偷。
1)數(shù)字化
聲音是作為波的形式傳播的。將聲波轉(zhuǎn)換成數(shù)字包括兩個步驟:采樣和量化械哟。
為了將聲波轉(zhuǎn)換成數(shù)字疏之,我們只記錄聲波在等距點的高度,這被稱為采樣(sampling)暇咆。
采樣定理(Nyquist theorem)規(guī)定锋爪,從間隔的采樣中完美重建原始聲波——只要我們的采樣頻率比期望得到的最高頻率快至少兩倍就行。
經(jīng)過采樣糯崎,我們獲取了一系列的數(shù)字几缭,這些數(shù)字才可以在機器上進行建暮佑荆或計算沃呢。
我們每秒讀取數(shù)千次,并把聲波在該時間點的高度用一個數(shù)字記錄下來拆挥。把每一秒鐘所采樣的數(shù)目稱為采樣頻率或采率薄霜,單位為HZ(赫茲)。
「CD 音質(zhì)」的音頻是以 44.1khz(每秒 44100 個讀數(shù))進行采樣的纸兔。但對于語音識別惰瓜,16khz(每秒 16000 個采樣)的采樣率就足以覆蓋人類語音的頻率范圍了。
2)采樣信號預(yù)處理
這里的預(yù)處理主要指汉矿,分幀處理崎坊。
因為語音信號是不平穩(wěn)的、時長變化的洲拇,如下圖:
我們把它分隔為一小段一小段(10毫秒-40毫秒)的短語音奈揍,我們認為這樣的小片段是平穩(wěn)的,稱之為【幀】赋续。
在每個幀上進行信號分析男翰,稱為語音的短時分析。
圖中纽乱,每幀的長度為25毫秒蛾绎,每兩幀之間有25-10=15毫秒的交疊。我們稱為幀長25ms鸦列、幀移10ms的分幀租冠。
幀移的事情就不詳細解釋了,它是為了保證語音信息的完整性薯嗤。感興趣的同學(xué)可以查一下顽爹,加窗/窗函數(shù)。
那為什么需要平緩的分幀呢应民?因為我們需要做傅里葉變化话原,它適用于分析平穩(wěn)的信號夕吻。(想弄明白傅里葉變換的,之后可以參考文章末尾的鏈接)
人類是根據(jù)振動頻率判斷聲音的繁仁,而以時間為橫軸(時域)的波形圖沒有振幅描述涉馅,我們需要做傅里葉變換,將它變成以頻率為橫軸(頻域)的振幅描述黄虱。
2.3 特征提取
特征提取就是從語音波形中提取出能反映語音特征的重要信息稚矿,去掉相對無關(guān)的信息(如背景噪聲),并把這些信息轉(zhuǎn)換為一組離散的參數(shù)矢量 捻浦。
1)特征提取
如何提取呢晤揣?我們經(jīng)過采樣,預(yù)處理朱灿,將這些數(shù)字繪制為簡單的折線圖昧识,如下所示,我們得到了 20 毫秒內(nèi)原始聲波的大致形狀:
這樣的波形圖對機器來說沒有任何描述信息盗扒。這個波形圖背后是很多不同頻率的波疊加產(chǎn)生的跪楞。(準確的講,它在時域上沒有描述能力)
我們希望一段聲紋能夠給出一個人的特性侣灶,比如什么時候高甸祭,什么時候低,什么時候頻率比較密集褥影,什么時候比較平緩等等池户。
就是我們上面所說的,用傅里葉變化來完成時域到頻域的轉(zhuǎn)換凡怎。
這就需要對每一幀做傅里葉變化校焦,用特征參數(shù)MFCC得到每一幀的頻譜(這個過程就是特征提取,結(jié)果用多維向量表示)栅贴,最后可以總結(jié)為一個頻譜圖(語譜圖)斟湃。
如下圖所示,是“hello”的頻譜圖檐薯,很酷是吧~
橫軸是時間凝赛,縱軸是頻率。顏色越亮坛缕,表示強度越大墓猎。
2)常用的特性參數(shù)
特性提取時,我們有常用的特征參數(shù)作為提取模板赚楚,主要有兩種:
-
線性預(yù)測系數(shù)(LPC)
LPC 的基本思想是毙沾,當前時刻的信號可以用若干個歷史時刻的信號的線性組合來估計。通過使實際語音的采樣值和線性預(yù)測采樣值之間達到均方差最小宠页,即可得到一組線性預(yù)測系數(shù)左胞。
求解LPC系數(shù)可以采用自相關(guān)法 (德賓 durbin 法) 寇仓、協(xié)方差法、格型法等快速算法烤宙。
-
倒譜系數(shù)
利用同態(tài)處理方法遍烦,對語音信號求離散傅立葉變換后取對數(shù),再求反變換就可得到倒譜系數(shù)躺枕。
其中服猪,LPC倒譜(LPCCEP)是建立在LPC譜上的。而梅爾倒譜系數(shù)(Mel Frequency Cepstrum Coefficient, MFCC)則是基于MEL譜的拐云。不同于LPC等通過對人的發(fā)聲機理的研究而得到的聲學(xué)特征罢猪,MFCC 是受人的聽覺系統(tǒng)研究成果推動而導(dǎo)出的聲學(xué)特征。
簡單的說叉瘩,經(jīng)過梅爾倒譜分析膳帕,得到的參數(shù)更符合人耳的聽覺特性。
3)短語音識別為單詞
有了上面的特征提取房揭,每一幀都可以表述為一個多維向量备闲,接下來就是把向量識別為文本。
這里我們需要多介紹一個概念捅暴,叫【狀態(tài)】。
你可以理解為咧纠,是比音素更細致的語音單位蓬痒。通常把一個音素劃分成3個狀態(tài)。
如上圖所示漆羔,識別過程無非是:
1)把幀識別成狀態(tài)(難點)梧奢。
2)把狀態(tài)組合成音素。
3)把音素組合成單詞演痒。
那每個音素應(yīng)該對應(yīng)哪種狀態(tài)呢亲轨?這就需要用到聲學(xué)模型了。
2.4 聲學(xué)模型
聲學(xué)模型是識別系統(tǒng)的底層模型鸟顺,其目的是提供一種計算語音的特征矢量序列和每個發(fā)音模板之間的距離的方法惦蚊。
也就是說,提取到的語音特性讯嫂,與某個發(fā)音之間的差距越小蹦锋,越有可能是這個發(fā)音。
或者說欧芽,某幀對應(yīng)哪個狀態(tài)的概率最大莉掂,那這幀就屬于哪個狀態(tài)。這個可以用GMM(混合高斯模型千扔,就是一種概率分布)或DNN(深度神經(jīng)網(wǎng)絡(luò))來識別憎妙。
但這樣識別出來的結(jié)果會比較亂库正,因為一個人講話的速度不一樣,每一幀識別出的結(jié)果可能是:....HHH_EE_LL__LLLL__OOO.....厘唾,如下圖:
這個問題可以用DTW(動態(tài)時間規(guī)整)或HMM(隱馬爾科夫模型)或CTC(改進的RNN模型)來對齊識別結(jié)果诀诊,知道單詞從哪里開始,從哪里結(jié)束阅嘶,哪些內(nèi)容是重復(fù)的沒有必要的属瓣。
1)常用的聲學(xué)建模方法包含以下三種:
- 基于模式匹配的動態(tài)時間規(guī)整法(DTW);
- 隱馬爾可夫模型法(HMM)讯柔;
- 基于人工神經(jīng)網(wǎng)絡(luò)識別法(ANN)抡蛙;
在過去,主流的語音識別系統(tǒng)通常使用梅爾倒譜系數(shù)(Mel-Frequency Cepstral Coefficient, MFCC)或者線性感知預(yù)測(Perceptual Linear Prediction, PLP)作為特征魂迄,使用混合高斯模型-隱馬爾科夫模型(GMM-HMM)作為聲學(xué)模型粗截。
近些年,分層鑒別模型比如DNN捣炬,變得可行起來熊昌,比如上下文相關(guān)的深度神經(jīng)網(wǎng)絡(luò)-隱馬爾可夫模型(context-dependent DNN-HMM,CD-DNN-HMM)就比傳統(tǒng)的GMM-HMM表現(xiàn)要好得多湿酸。
如下圖婿屹,你可以清晰的看到被替換的部分。
2)主要問題:
我們要了解的是推溃,聲學(xué)模型存在2個問題:
1. 特征向量序列的可變長昂利;
每個人說同一個單詞的時間長度都不一樣,聲學(xué)模型要能從不同的時間長度的語音信號中識別出是同一個單詞铁坎。
解決方法就是DTW(動態(tài)時間規(guī)整)蜂奸、 HMM(隱馬爾可夫模型)。
2. 音頻信號的豐富變化性硬萍;
如說話人的性別扩所,健康狀況,緊張程度朴乖,說話風(fēng)格祖屏、語速,環(huán)境噪音寒砖,周圍人聲赐劣,信道扭曲,方言差異哩都,非母語口音等魁兼。
3)HMM 聲學(xué)建模:
對語音識別系統(tǒng)而言,HMM 的輸出值通常就是各個幀的聲學(xué)特征 。 為了降低模型的復(fù)雜度咐汞,通常 HMM 模型有兩個假設(shè)前提盖呼,一是內(nèi)部狀態(tài)的轉(zhuǎn)移只與上一狀態(tài)有關(guān),一是輸出值只與當前狀態(tài)或當前狀態(tài)轉(zhuǎn)移有關(guān)化撕。除了這兩個假設(shè)外几晤,HMM 模型還存在著一些理論上的假設(shè),其中之一就是植阴,它假設(shè)語音是一個嚴格的馬爾科夫過程 蟹瘾。
2.5 語言模型
如何將識別出的單詞,組成有邏輯的句子掠手,如何識別出正確的有歧義的單詞憾朴,這些就用到語言模型了。
由于語音信號的時變性喷鸽、噪聲和其它一些不穩(wěn)定因素众雷,單純靠聲學(xué)模型無法達到較高的語音識別的準確率。在人類語言中做祝,每一句話的單詞直接有密切的聯(lián)系砾省,這些單詞層面的信息可以減少聲學(xué)模型上的搜索范圍,有效地提高識別的準確性混槐,要完成這項任務(wù)語言模型是必不可少的编兄,它提供了語言中詞之間的上下文信息以及語義信息。
隨著統(tǒng)計語言處理方法的發(fā)展纵隔,統(tǒng)計語言模型成為語音識別中語言處理的主流技術(shù)翻诉,其中統(tǒng)計語言模型有很多種,如N-Gram語言模型捌刮、馬爾可夫N元模型(Markov N-gram)、指數(shù)模型( Exponential Models)舒岸、決策樹模型(Decision Tree Models)等绅作。而N元語言模型是最常被使用的統(tǒng)計語言模型,特別是二元語言模型(bigram)蛾派、三元語言模型(trigram)俄认。
2.6 字典
字典是存放所有單詞的發(fā)音的詞典盏触,它的作用是用來連接聲學(xué)模型和語言模型的舶得。
識別出音素借嗽,利用字典隆敢,就可以查出單詞了屉佳。
例如熊锭,一個句子可以分成若干個單詞相連接拼缝,每個單詞通過查詢發(fā)音詞典得到該單詞發(fā)音的音素序列个扰。相鄰單詞的轉(zhuǎn)移概率可以通過語言模型獲得巷波,音素的概率模型可以通過聲學(xué)模型獲得萎津。從而生成了這句話的一個概率模型卸伞。
2.7 解碼器
解碼器的作用就是將上述訓(xùn)練好的模型按照一定的規(guī)則組合起來,將新輸入的語音識別出來锉屈。
三荤傲、 語音識別評估標準
在語音識別中,常用的評估標準為詞錯誤率(Word Error Rate颈渊,WER)遂黍。
我們上面講了幀向量識別為單詞,需要用聲學(xué)模型俊嗽。因為識別出來的整個詞序列是混亂的雾家,需要進行替換、刪除乌询、插入某些詞榜贴,使得次序列有序完整。
WER就是反映上述過程的標準妹田,能直接反映識別系統(tǒng)聲學(xué)模型的性能唬党,也是其他評估指標如句錯誤率SER的基礎(chǔ)。
傳統(tǒng)的詞錯誤率評估算法在語音識別中存在三種典型的詞錯誤:
1)替換錯誤(Substitution)
在識別結(jié)果中鬼佣,正確的詞被錯誤的詞代替驶拱;
2)刪除錯誤(Deletion)
在識別結(jié)果中,丟失了正確的詞晶衷;
3)插入錯誤(Insertion)
在識別結(jié)果中蓝纲,增加了一個多余的詞;
所以晌纫,詞錯誤率為:
S 為替代錯誤詞數(shù)税迷,D 為刪除錯誤詞數(shù),I 為插入錯誤詞數(shù)锹漱。T為參照句子中的所有詞數(shù)箭养。
需要注意的是,因為有插入詞哥牍,所以WER有可能大于100%毕泌。
以上。
參考文章:
《實用語音識別基礎(chǔ)》 王炳錫嗅辣,2005
《解析深度學(xué)習(xí)-語音識別實踐》鄧力撼泛,2016
http://dwz.cn/73TZx8 語音識別技術(shù)綜述,馬志欣澡谭,2006
http://blog.csdn.net/eaglex/article/details/6376826 隱馬爾科夫模型系列(國外經(jīng)典論文翻譯)
https://zhuanlan.zhihu.com/wille/19763358 傅里葉掐死教程
https://www.zhihu.com/question/20398418 知乎問答系列
最后愿题,想成為一名AI產(chǎn)品經(jīng)理,求推薦~