① 語音識別中的ASR技術通識 2019-12-06
ASR(Automatic speech recognition),自動語言識別,自動將語言轉化成文字的過程,作用類似於人類的耳朵。
流程:輸入-編碼-解碼-輸出
語言識別輸入的是聲音,屬於計算機無法識別的模擬信號,所以需要通過模型將其轉化成數字信號,並對其中的特徵進行提取,編碼時,會將聲音切成很小的片段,成為 幀 ,類似於視頻中最小時間單位的幀。幀和幀之間會有一定的重疊。
對於得到的每一幀,按照人耳聽聲的特定的MCFF規則,提取其中的特徵,轉成 多維向量 。向量中的每一個維度可以看做是這一幀中的特徵。
解碼過程是將得到的向量變成文字的過程,其中用到兩個模型 聲學模型 和 語言模型 。聲學模型是將特徵向量轉化成單個字母(中文的拼音聲母和韻母),成為音素。語言模型是將音素拼接起來成為單詞或者漢字。兩種模型都需要大量的語言數據進行訓練。
傳統識別方式:隱馬爾可夫模型(HMM)
端到端識別方式:神經網路(DNN,deep neural network)
兩種識別方式主要的差異在聲學模型上。
目前中文的識別率在97%以上,距離理想的99%還有很大的差距。
「遠場」。下面主要說3個概念:
語音激活檢測、語音喚醒、以及麥克風陣列。
1)語音激活檢測(voice active detection,VAD)
A)需求背景:在近場識別場旁態消景,比如使用語音輸入法時,用戶可以用手按著語音按鍵說話,結束之後松開,由於近場情況下信噪比(signal to noise ratio, SNR))比較高,信號清晰,簡單演算法也能做到有效可靠。
但遠場識別場景下,用戶不能用手接觸設備,這時雜訊比較大,SNR下降劇烈,必閉李須使用VAD了。
B)定義:判斷什麼時候有語音什麼時候沒有語音(靜音)。
後續的語音信號處理或是語音識別都是在VAD截取出來的有效語音片段上進行的。
2)語音喚醒 (voice trigger,VT)
A)需求背景:在近場識別時,用戶可以點擊按鈕後直接說話,但是遠場識別時,需要在VAD檢測到人聲之後,進行語音喚醒,相當於叫這個AI(機器人)的名字,引起ta的注意,比如蘋果的「Hey Siri」,Google的「OK Google」,亞馬遜Echo的「Alexa」等。
B)定義:可以理解為喊名字,引起聽者的注意。
VT判斷是喚醒(激活)詞,那後續的語音就應該進行識別了;否則,不進行識別。
C) 難點 :語音識別,不論遠場還是進場,都是在雲端進行,但是語音喚醒基本是在(設備)本地進行的,要求更高——
C.1)喚醒響應時間。據傅盛說,世界上所有的音箱,除了Echo和他們做的小雅智能音箱能達到1.5秒之外,其他的都在3秒以上。
C.2)功耗要低。iphone 4s出現Siri,但直到iphone 6s之後才允許不接電源的情況下直接喊「hey Siri」進行語音喚醒。這是因為有6s上有一顆專門進行語音激活的低功耗晶元,當然演算法和硬體要進行配合,演算法也要進行優化。
C.3)喚醒效果。喊它的時候它不答應這叫做漏報,沒喊它的時候它跳出來講話叫做誤報。漏報和誤報運知這2個指標,是此消彼長的,比如,如果喚醒詞的字數很長,當然誤報少,但是漏報會多;如果喚醒詞的字數很短,漏報少了,但誤報會多,特別如果大半夜的突然唱歌或講故事,會特別嚇人的……
C.4)喚醒詞。技術上要求,一般最少3個音節。比如「OK google」和「Alexa」有四個音節,「hey Siri」有三個音節;國內的智能音箱,比如小雅,喚醒詞是「小雅小雅」,而不能用「小雅」。
註:一般產品經理或行業交流時,直接說漢語「語音喚醒」,而英文縮寫「VT」,技術人員可能用得多些。
3)麥克風陣列(Microphone Array)
A)需求背景:在會議室、戶外、商場等各種復雜環境下,會有噪音、混響、人聲干擾、回聲等各種問題。特別是遠場環境,要求拾音麥克風的靈敏度高,這樣才能在較遠的距離下獲得有效的音頻振幅,同時近場環境下又不能爆音(振幅超過最大量化精度)。另外,家庭環境中的牆壁反射形成的混響對語音質量也有不可忽視的影響。
B)定義:由一定數目的聲學感測器(一般是麥克風)組成,用來對聲場的空間特性進行采樣並處理的系統。
c)雲端為主。
比如地圖功能,由於POI(Point of Interest,興趣點,指地理位置數據)數據量太大,直接到雲端搜索可能更方便(除非是「家」、「公司」等個性化場景)。比如,用戶說「從武漢火車站到東福」,可以被糾正為「從武漢火車站到東湖」。
各家公司在宣傳時,會說語音識別率達到了97%,甚至98%,但那一般是需要用戶在安靜環境下,近距離、慢慢的、認真清晰發音;而在一些實際場景,很可能還不夠好的,比如——
1、比如在大家都認為相對容易做的翻譯場景,其實也還沒完全可用,台上演示是一回事,普通用戶使用是另一回事;特別是在一些垂直行業,領域知識很容易出錯;另外,還可詳見 《懟一懟那些假機器同傳》
2、車載
大概3、4年前,我們內部做過針對車載場景的語言助手demo,拿到真實場景內去驗證,結果發現,車內語音識別效果非常不理想。而且直到今年,我曾經面試過一位做車內語音交互系統的產品經理,發現他們的驗收方其實也沒有特別嚴格的測試,因為大家都知道,那樣怎麼也通過不了。。。
車內語音識別的難點很多,除了多人說話的干擾,還有胎噪、風噪,以及經常處於離線情況。
據說有的公司專門在做車內降噪,還有些公司想通過智能硬體來解決,至少目前好像還沒有哪個產品解決好了這個問題,並且獲得了用戶的口碑稱贊的。
3、家庭場景,由於相對安靜和可控,如果遠場做好了,還是有希望的。
4、中英文混合。
特別在聽歌場景,用戶說想聽某首英文歌時,很容易識別錯誤的。這方面,只有傅盛的小雅音箱據說做了很多優化,有待用戶檢驗。
總之,ASR是目前AI領域,相對最接近商用成熟的技術,但還是需要用戶可以配合AI在特定場景下使用。這是不是問題呢?是問題,但其實不影響我們做產品demo和初步的產品化工作,所以反而是我們AI產品經理的發揮機會。
1、遠場語音識別,是最近2年的重要競爭領域。因為家庭(音箱)等場景有可能做好、在被催熟。
2、更好的機會在垂直細分領域,比如方言(方言識別能夠支持40多種,而網路有20多種)、特定人群的聲學匹配方案(兒童)
最後,用一張圖總結語音識別用於人機交互中的幾個難點。