语音识别现状与工程师必备技能
作者 | 陳孝良
責(zé)編 | 胡永波
目前來看,語音識別的精度和速度比較取決于實際應(yīng)用環(huán)境,在安靜環(huán)境、標準口音、常見詞匯上的語音識別率已經(jīng)超過95%,完全達到了可用狀態(tài),這也是當(dāng)前語音識別比較火熱的原因。
隨著技術(shù)的發(fā)展,現(xiàn)在口音、方言、噪聲等場景下的語音識別也達到了可用狀態(tài),但是對于強噪聲、超遠場、強干擾、多語種、大詞匯等場景下的語音識別還需要很大的提升。當(dāng)然,多人語音識別和離線語音識別也是當(dāng)前需要重點解決的問題。
?
學(xué)術(shù)界探討了很多語音識別的技術(shù)趨勢,有兩個思路是非常值得關(guān)注的,一個是就是端到端的語音識別系統(tǒng),另外一個就是G.E. Hinton最近提出的膠囊理論,Hinton的膠囊理論學(xué)術(shù)上爭議還比較大,能否在語音識別領(lǐng)域體現(xiàn)出來優(yōu)勢還值得探討。
?
端到端的語音識別系統(tǒng)當(dāng)前也沒有大規(guī)模應(yīng)用,從理論上來看,由于語音識別本質(zhì)上是一個序列識別問題,如果語音識別中的所有模型都能夠聯(lián)合優(yōu)化,應(yīng)該會獲取更好的語音識別準確度,這也是端到端語音識別系統(tǒng)的優(yōu)勢。
但是從語音采集、信號處理、特征提取、聲學(xué)模型、語音模型、解碼搜索整個鏈條都做到端到端的建模處理,難度非常大,因此現(xiàn)在常說的端到端的模型基本還是局限于聲學(xué)模型范疇,比如將DNN-HMM或者CNN/RNN-HMM模型進行端到端的優(yōu)化,比如CTC準則和Attention-based模型等方法。
事實上,端到端的訓(xùn)練,可以把真實場景的噪聲、混響等也作為新特征來進行學(xué)習(xí),這樣可以減少對于信號處理的依賴,只是這種方法還存在訓(xùn)練性能、收斂速度、網(wǎng)絡(luò)帶寬等諸多問題,相對于主流的語音識別方法還沒有取得明顯的優(yōu)勢。
?
本文以科普為主,將知識縱橫連接,并能結(jié)合實踐深入淺出的文章,對于全面了解語音識別很有幫助。非常感謝國內(nèi)語音識別領(lǐng)域各位伙伴的支持,文中若有不足之處,期待大家的指正!
語音識別基礎(chǔ)知識
數(shù)學(xué)與統(tǒng)計學(xué)
數(shù)學(xué)是所有學(xué)科的基礎(chǔ),其中的高等數(shù)學(xué)、數(shù)理方程、泛函分析等課程是必要的基礎(chǔ)知識,概率論與數(shù)理統(tǒng)計也是語音識別的基礎(chǔ)學(xué)科。
?
聲學(xué)與語言學(xué)
聲學(xué)基礎(chǔ)、理論聲學(xué)、聲學(xué)測量等是聲學(xué)方面的基礎(chǔ)課程,有助于了解更多聲學(xué)領(lǐng)域的知識。語言學(xué)概論、語言哲學(xué)、語義最小論與語用多元論、語法化與語義圖等知識對于理解語言模型和語音交互UI設(shè)計非常有幫助。
?
計算機學(xué)
信號系統(tǒng)、數(shù)字信號處理、語音信號處理、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)、算法導(dǎo)論、并行計算、C語言概論、Python語言、語音識別、深度學(xué)習(xí)等課程也是必備的基礎(chǔ)知識。
?
語音識別專業(yè)知識
語音識別的知識體系可以劃分為三個大的部分:專業(yè)基礎(chǔ)、支撐技能和應(yīng)用技能。語音識別的專業(yè)基礎(chǔ)又包括了算法基礎(chǔ)、數(shù)據(jù)知識和開源平臺,其中算法基礎(chǔ)是語音識別系統(tǒng)的核心知識,包括了聲學(xué)機理、信號處理、聲學(xué)模型、語言模型和解碼搜索等。
專業(yè)基礎(chǔ)
?
算法基礎(chǔ)
聲學(xué)機理:包括發(fā)音機理、聽覺機理和語言機理,發(fā)音機理主要探討人類發(fā)聲器官和這些器官在發(fā)聲過程中的作用,而聽覺機理主要探討人類聽覺器官、聽覺神經(jīng)及其辨別處理聲音的方式,語言機理主要探究人類語言的分布和組織方式。這些知識對于理論突破和模型生成具有重要意義。
?
信號處理:包括語音增強、噪聲抑制、回聲抵消、混響抑制、波束形成、聲源定位、聲源分離、聲源追蹤等。具體如下:
?
語音增強:這里是狹義定義,指自動增益或者陣列增益,主要是解決拾音距離的問題,自動增益一般會增加所有信號能量,而語音增強只增加有效語音信號的能量。
噪聲抑制:語音識別不需要完全去除噪聲,相對來說通話系統(tǒng)中則必須完全去除噪聲。這里說的噪聲一般指環(huán)境噪聲,比如空調(diào)噪聲,這類噪聲通常不具有空間指向性,能量也不是特別大,不會掩蓋正常的語音,只是影響了語音的清晰度和可懂度。這種方法不適合強噪聲環(huán)境下的處理,但是足以應(yīng)付日常場景的語音交互。
混響消除:混響消除的效果很大程度影響了語音識別的效果。一般來說,當(dāng)聲源停止發(fā)聲后,聲波在房間內(nèi)要經(jīng)過多次反射和吸收,似乎若干個聲波混合持續(xù)一段時間,這種現(xiàn)象叫做混響。混響會嚴重影響語音信號處理,并且降低測向精度。
回聲抵消:嚴格來說,這里不應(yīng)該叫回聲,應(yīng)該叫“自噪聲”。回聲是混響的延伸概念,這兩者的區(qū)別就是回聲的時延更長。一般來說,超過100毫秒時延的混響,人類能夠明顯區(qū)分出,似乎一個聲音同時出現(xiàn)了兩次,就叫做回聲。實際上,這里所指的是語音交互設(shè)備自己發(fā)出的聲音,比如Echo音箱,當(dāng)播放歌曲的時候若叫Alexa,這時候麥克風(fēng)陣列實際上采集了正在播放的音樂和用戶所叫的Alexa聲音,顯然語音識別無法識別這兩類聲音。回聲抵消就是要去掉其中的音樂信息而只保留用戶的人聲,之所以叫回聲抵消,只是延續(xù)大家的習(xí)慣,其實是不恰當(dāng)?shù)摹?/span>
聲源測向:這里沒有用聲源定位,測向和定位是不太一樣的,而消費級麥克風(fēng)陣列做到測向就可以,定位則需要更多的成本投入。聲源測向的主要作用就是偵測到與之對話人類的聲音以便后續(xù)的波束形成。聲源測向可以基于能量方法,也可以基于譜估計,陣列也常用TDOA技術(shù)。聲源測向一般在語音喚醒階段實現(xiàn),VAD技術(shù)其實就可以包含到這個范疇,也是未來功耗降低的關(guān)鍵因素。
波束形成:波束形成是通用的信號處理方法,這里是指將一定幾何結(jié)構(gòu)排列的麥克風(fēng)陣列的各麥克風(fēng)輸出信號經(jīng)過處理(例如加權(quán)、時延、求和等)形成空間指向性的方法。波束形成主要是抑制主瓣以外的聲音干擾,這里也包括人聲,比如幾個人圍繞Echo談話的時候,Echo只會識別其中一個人的聲音。
?
端點檢測:端點檢測,英語是Voice ActivityDetection,簡稱VAD,主要作用是區(qū)分一段聲音是有效的語音信號還是非語音信號。VAD是語音識別中檢測句子之間停頓的主要方法,同時也是低功耗所需要考慮的重要因素。VAD通常都用信號處理的方法來做,之所以這里單獨劃分,因為現(xiàn)在VAD的作用其實更加重要,而且通常VAD也會基于機器學(xué)習(xí)的方法來做。
?
特征提取:聲學(xué)模型通常不能直接處理聲音的原始數(shù)據(jù),這就需要把時域的聲音原始信號通過某類方法提取出固定的特征序列,然后將這些序列輸入到聲學(xué)模型。事實上深度學(xué)習(xí)訓(xùn)練的模型不會脫離物理的規(guī)律,只是把幅度、相位、頻率以及各個維度的相關(guān)性進行了更多的特征提取。
?
聲學(xué)模型:聲學(xué)模型是語音識別中最為關(guān)鍵的部分,是將聲學(xué)和計算機學(xué)的知識進行整合,以特征提取部分生成的特征作為輸入,并為可變長的特征序列生成聲學(xué)模型分數(shù)。聲學(xué)模型核心要解決特征向量的可變長問題和聲音信號的多變性問題。事實上,每次所提到的語音識別進展,基本上都是指聲學(xué)模型的進展。聲學(xué)模型迭代這么多年,已經(jīng)有很多模型,我們把每個階段應(yīng)用最為廣泛的模型介紹一下,其實現(xiàn)在很多模型都是在混用,這樣可以利用各個模型的優(yōu)勢,對于場景的適配更加魯棒。
?
GMM,Gaussian Mixture Model,即高斯混合模型,是基于傅立葉頻譜語音特征的統(tǒng)計模型,可以通過不斷迭代優(yōu)化求取GMM中的加權(quán)系數(shù)及各個高斯函數(shù)的均值與方差。GMM模型訓(xùn)練速度較快,聲學(xué)模型參數(shù)量小,適合離線終端應(yīng)用。深度學(xué)習(xí)應(yīng)用到語音識別之前,GMM-HMM混合模型一直都是優(yōu)秀的語音識別模型。但是GMM不能有效對非線性或近似非線性的數(shù)據(jù)進行建模,很難利用語境的信息,擴展模型比較困難。
HMM,Hidden Markov Model,即隱馬爾可夫模型,用來描述一個含有隱含未知參數(shù)的馬爾可夫過程,從可觀察的參數(shù)中確定該過程的隱含參數(shù),然后利用這些參數(shù)來進一步分析。HMM是一種可以估計語音聲學(xué)序列數(shù)據(jù)的統(tǒng)計學(xué)分布模型,尤其是時間特征,但是這些時間特征依賴于HMM的時間獨立性假設(shè),這樣對語速、口音等因素與聲學(xué)特征就很難關(guān)聯(lián)起來。HMM還有很多擴展的模型,但是大部分還只適應(yīng)于小詞匯量的語音識別,大規(guī)模語音識別仍然非常困難。
DNN,Deep Neural Network,即深度神經(jīng)網(wǎng)絡(luò),是較早用于聲學(xué)模型的神經(jīng)網(wǎng)絡(luò),DNN可以提高基于高斯混合模型的數(shù)據(jù)表示的效率,特別是DNN-HMM混合模型大幅度地提升了語音識別率。由于DNN-HMM只需要有限的訓(xùn)練成本便可得到較高的語音識別率,目前仍然是語音識別工業(yè)領(lǐng)域常用的聲學(xué)模型。
RNN,Recurrent Neural Networks,即循環(huán)神經(jīng)網(wǎng)絡(luò),CNN,Convolutional NeuralNetworks,即卷積神經(jīng)網(wǎng)絡(luò),這兩種神經(jīng)網(wǎng)絡(luò)在語音識別領(lǐng)域的應(yīng)用,主要是解決如何利用可變長度語境信息的問題,CNN/RNN比DNN在語速魯棒性方面表現(xiàn)的更好一些。其中,RNN模型主要包括LSTM(多隱層長短時記憶網(wǎng)絡(luò))、highway LSTM、Residual LSTM、雙向LSTM等。CNN模型包括了時延神經(jīng)網(wǎng)絡(luò)(TDNN)、CNN-DNN、CNN-LSTM-DNN(CLDNN)、CNN-DNN-LSTM、Deep CNN等。其中有些模型性能相近,但是應(yīng)用方式不同,比如雙向LSTM和Deep CNN性能接近,但是雙向LSTM需要等一句話結(jié)束才能識別,而Deep CNN則沒有時延更適合實時語音識別。
語言模型:通過訓(xùn)練語料學(xué)習(xí)詞之間的關(guān)系來估計詞序列的可能性,最常見的語言模型是N-Gram模型。近年,深度神經(jīng)網(wǎng)絡(luò)的建模方式也被應(yīng)用到語言模型中,比如基于CNN及RNN的語言模型。
?
解碼搜索:解碼是決定語音識別速度的關(guān)鍵因素,解碼過程通常是將聲學(xué)模型、詞典以及語言模型編譯成一個網(wǎng)絡(luò),基于最大后驗概率的方法,選擇一條或多條最優(yōu)路徑作為語音識別結(jié)果。解碼過程一般可以劃分動態(tài)編譯和靜態(tài)編譯,或者同步與異步的兩種模式。目前比較流行的解碼方法是基于樹拷貝的幀同步解碼方法。
?
語音識別數(shù)據(jù)知識
?
數(shù)據(jù)采集:主要是將用戶與機器對話的聲音信息收集起來,一般分為近場和遠場兩個部分,近場采集一般基于手機就可完成,遠場采集一般需要麥克風(fēng)陣列。數(shù)據(jù)采集同時還有關(guān)注采集環(huán)境,針對不同數(shù)據(jù)用途,語音采集的要求也很不一樣,比如人群的年齡分布、性別分布和地域分布等。
?
數(shù)據(jù)清洗:主要是將采集的數(shù)據(jù)進行預(yù)處理,剔除不合要求的語音甚至是失效的語音,為后面的數(shù)據(jù)標注提供精確的數(shù)據(jù)。
?
數(shù)據(jù)標注:主要是將聲音的信息翻譯成對應(yīng)的文字,訓(xùn)練一個聲學(xué)模型,通常要標注數(shù)萬個小時,而語音是時序信號,所以需要的人力工時相對很多,同時由于人員疲憊等因素導(dǎo)致標注的錯誤率也比較高。如何提高數(shù)據(jù)標注的成功率也是語音識別的關(guān)鍵問題。
?
數(shù)據(jù)管理:主要是對標注數(shù)據(jù)的分類管理和整理,這樣更利于數(shù)據(jù)的有效管理和重復(fù)利用。
?
數(shù)據(jù)安全:主要是對聲音數(shù)據(jù)進行安全方便的處理,比如加密等,以避免敏感信息泄露。
?
語音識別開源平臺
目前主流的開源平臺包括CMU Sphinx、HTK、Kaldi、Julius、iATROS、CNTK、TensorFlow等,CMU Sphinx是離線的語音識別工具,支持DSP等低功耗的離線應(yīng)用場景。由于深度學(xué)習(xí)對于語音識別WER的下降具有明顯的作用,所以Kaldi、CNTK、TensorFlow等支持深度學(xué)習(xí)的工具目前比較流行,Kaldi的優(yōu)勢就是集成了很多語音識別的工具,包括解碼搜索等。具體的開源平臺匯總?cè)绫?所示。
支撐技能
?
聲學(xué)器件
-
傳聲器,通常稱為麥克風(fēng),是一種將聲音轉(zhuǎn)換成電子信號的換能器,即把聲信號轉(zhuǎn)成電信號,其核心參數(shù)是靈敏度、指向性、頻率響應(yīng)、阻抗、動態(tài)范圍、信噪比、最大聲壓級(或AOP,聲學(xué)過載點)、一致性等。傳聲器是語音識別的核心器件,決定了語音數(shù)據(jù)的基本質(zhì)量。
-
揚聲器,通常稱為喇叭,是一種把電信號轉(zhuǎn)變?yōu)槁曅盘柕膿Q能器件,揚聲器的性能優(yōu)劣對音質(zhì)的影響很大,其核心指標是TS參數(shù)。語音識別中由于涉及到回聲抵消,對揚聲器的總諧波失真要求稍高。
-
激光拾聲,這是主動拾聲的一種方式,可以通過激光的反射等方法拾取遠處的振動信息,從而還原成為聲音,這種方法以前主要應(yīng)用在竊聽領(lǐng)域,但是目前來看這種方法應(yīng)用到語音識別還比較困難。
-
微波拾聲,微波是指波長介于紅外線和無線電波之間的電磁波,頻率范圍大約在 300MHz至300GHz之間,同激光拾聲的原理類似,只是微波對于玻璃、塑料和瓷器幾乎是穿越而不被吸收。
-
高速攝像頭拾聲,這是利用高速攝像機來拾取振動從而還原聲音,這種方式需要可視范圍和高速攝像機,只在一些特定場景里面應(yīng)用。
?
計算芯片
-
DSP,Digital Signal Processor,數(shù)字信號處理器,一般采用哈佛架構(gòu),具有低功耗運算快等優(yōu)點,主要應(yīng)用在低功耗語音識別領(lǐng)域。
-
ARM,Acorn RISC Machine,是英國公司設(shè)計的一種RISC處理器架構(gòu),具有低功耗高性能的特點,在移動互聯(lián)網(wǎng)領(lǐng)域廣泛應(yīng)用,目前IOT領(lǐng)域,比如智能音箱也是以ARM處理器為主。
-
FPGA,Field-Programmable Gate Array,現(xiàn)場可編程門陣列,是ASIC領(lǐng)域中的一種半定制電路,既解決了固定定制電路的不足,又克服了可編程器件門電路有限的缺點。FPGA在并行計算領(lǐng)域也非常重要,大規(guī)模的深度學(xué)習(xí)也可以基于FPGA計算實現(xiàn)。
-
GPU,Graphics Processing Unit,圖形處理器,是當(dāng)前深度學(xué)習(xí)領(lǐng)域最火的計算架構(gòu),事實上深度學(xué)習(xí)領(lǐng)域用到的是GPGPU,主要是進行大規(guī)模計算的加速,GPU通常的問題就是功耗過大,所以一般應(yīng)用到云端的服務(wù)器集群。
-
另外,還有NPU、TPU等新興的處理器架構(gòu),主要為深度學(xué)習(xí)算法進行專門的優(yōu)化,由于還沒有大規(guī)模使用,這里先不詳敘。
?
聲學(xué)結(jié)構(gòu)
陣列設(shè)計,主要是指麥克風(fēng)陣列的結(jié)構(gòu)設(shè)計,麥克風(fēng)陣列一般來說有線形、環(huán)形和球形之分,嚴謹?shù)膽?yīng)該說成一字、十字、平面、螺旋、球形及無規(guī)則陣列等。至于麥克風(fēng)陣列的陣元數(shù)量,也就是麥克風(fēng)數(shù)量,可以從2個到上千不等,因此陣列設(shè)計就要解決場景中的麥克風(fēng)陣列陣型和陣元數(shù)量的問題,既保證效果,又控制成本。
聲學(xué)設(shè)計,主要是指揚聲器的腔體設(shè)計,語音交互系統(tǒng)不僅需要收聲,還需要發(fā)聲,發(fā)聲的質(zhì)量也特別重要,比如播放音樂或者視頻的時候,音質(zhì)也是非常重要的參考指標,同時,音質(zhì)的設(shè)計也將影響語音識別的效果,因此聲學(xué)設(shè)計在智能語音交互系統(tǒng)也是關(guān)鍵因素。
?
應(yīng)用技能
?
-
語音識別的應(yīng)用將是語音交互時代最值得期待的創(chuàng)新,可以類比移動互聯(lián)時代,最終黏住用戶的還是語音應(yīng)用程序,而當(dāng)前的人工智能主要是基礎(chǔ)建設(shè),AI的應(yīng)用普及還是需要一段時間。雖然Amazon的Alexa已經(jīng)有上萬個應(yīng)用,但是從用戶反饋來看,目前主要還是以下幾個核心技術(shù)點的應(yīng)用。
-
語音控制,事實上是當(dāng)前最主要的應(yīng)用,包括了鬧鐘、音樂、地圖、購物、智能家電控制等等功能,語音控制的難度相對也比較大,因為語音控制要求語音識別更加精準、速度更快。
-
語音轉(zhuǎn)錄,這在比如會議系統(tǒng)、智能法院、智能醫(yī)療等領(lǐng)域具有特殊應(yīng)用,主要是實時將用戶說話的聲音轉(zhuǎn)錄成文字,以便形成會議紀要、審判記錄和電子病歷等。
-
語言翻譯,主要是在不同語言之間進行切換,這在語音轉(zhuǎn)錄的基礎(chǔ)上增加了實時翻譯,對于語音識別的要求更高。
?
下面這三種識別,可以歸為語音識別的范疇,也可以單獨列成一類,這里我們還是廣義歸納到語音識別的大體系,作為語音識別的功能點更容易理解。
?
-
聲紋識別,聲紋識別的理論基礎(chǔ)是每一個聲音都具有獨特的特征,通過該特征能將不同人的聲音進行有效的區(qū)分。聲紋的特征主要由兩個因素決定,第一個是聲腔的尺寸,具體包括咽喉、鼻腔和口腔等,這些器官的形狀、尺寸和位置決定了聲帶張力的大小和聲音頻率的范圍。第二個決定聲紋特征的因素是發(fā)聲器官被操縱的方式,發(fā)聲器官包括唇、齒、舌、軟腭及腭肌肉等,他們之間相互作用就會產(chǎn)生清晰的語音。而他們之間的協(xié)作方式是人通過后天與周圍人的交流中隨機學(xué)習(xí)到的。聲紋識別常用的方法包括模板匹配法、最近鄰方法、神經(jīng)元網(wǎng)絡(luò)方法、VQ聚類法等。
?
-
情感識別,主要是從采集到的語音信號中提取表達情感的聲學(xué)特征,并找出這些聲學(xué)特征與人類情感的映射關(guān)系。情感識別當(dāng)前也主要采用深度學(xué)習(xí)的方法,這就需要建立對情感空間的描述以及形成足夠多的情感語料庫。情感識別是人機交互中體現(xiàn)智能的應(yīng)用,但是到目前為止,技術(shù)水平還沒有達到產(chǎn)品應(yīng)用的程度。
?
-
哼唱識別,主要是通過用戶哼唱歌曲的曲調(diào),然后通過其中的旋律同音樂庫中的數(shù)據(jù)進行詳細分析和比對,最后將符合這個旋律的歌曲信息提供給用戶。目前這項技術(shù)在音樂搜索中已經(jīng)使用,識別率可以達到80%左右。
參考文獻
1.Deep Learning:Methods andApplications,Li Deng and Dong Yu
2.Automaitic Speechand Speaker Recognition: Large Margin and Kernel Methods, Joseph Keshet andSamy Bengio
3.Xuedong Huang, Alex Acero, Hsiao-wuenHon, Spoken Language Processing
4.Lawrence Rabiner,Biing-Hwang Juang, Fundamentals of Speech Recognition
5.Dan jurafsky andJames H. Martin, Speech and Language Processing
6.Dynamic RoutingBetween Capsules,Sara Sabour,Nicholas Frosst,Geoffrey E. Hinton
7.https://en.wikipedia.org/wiki/Speech_perception
8.http://www.speech.cs.cmu.edu
9.http://htk.eng.cam.ac.uk/
10.http://kaldi-語音識別.org/
11.https://www.microsoft.com/en-us/cognitive-toolkit/
12.http://www.soundpi.org/
作者簡介:陳孝良,博士,聲智科技創(chuàng)始人,專注聲學(xué)前沿技術(shù)和人工智能交互,曾任中國科學(xué)院聲學(xué)研究所副研究員。
總結(jié)
以上是生活随笔為你收集整理的语音识别现状与工程师必备技能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朝阳至昌吉回族自治州车师古道线路推荐
- 下一篇: CSDN云计算是什么?云计算可以应用在哪