人工智慧之語音識別(ASR)

dicksonjyl560101發表於2019-08-07

人工智慧之語音識別(ASR),AI產品經理必須知道的語音識別技術原理!

人工智慧之語音識別(ASR)

語音識別(Automatic Speech Recognition,簡稱ASR) ,是語音互動中最基礎的一個AI技術環節,常見的如siri,智慧音響等。

一、核心概念

1、 語音識別 (Automatic Speech Recognition)

簡稱 ASR ;是 將聲音轉化為文字 的過程。

1) 語音識別原理流程 :“輸入——編碼——解碼——輸出”

人工智慧之語音識別(ASR)

語音識別,大體可分為“ 傳統 ”識別方式與“ 端到端 ”識別方式,其 主要差異體現在聲學模型 上。“傳統”方式的聲學模型一般採用 隱馬爾可夫模型(HMM) ,而“端到端”方式一般採用 深度神經網路(DNN)

實際場景 ,有很多種 異常情況 ,都會導致語音識別的 效果大打折扣 ,比如距離太遠了,發音不標準,環境嘈雜,打斷等等。所以,還需要有各種解決方案來配合。

2)語音識別的 評價指標 —— 識別率

純引擎的識別率 ,以及 不同訊雜比狀態下的識別率 (訊雜比模擬不同車速、車窗、空調狀態等),還有 線上/離線識別 的區別。

實際工作中,一般識別率的直接指標是“WER (詞錯誤率,Word Error Rate)”

定義:為了使識別出來的詞序列和標準的詞序列之間保持一致,需要進行替換、刪除或者插入某些詞,這些插入、替換或刪除的詞的總個數,除以標準的詞序列中詞的總個數的百分比,即為WER。

公式為:

人工智慧之語音識別(ASR)
  • Substitution——替換
  • Deletion——刪除
  • Insertion——插入
  • N——單詞數目

3點說明

A)WER可以分男女、快慢、口音、數字/英文/中文等情況,分別來看。

B)因為有插入詞,所以理論上WER有可能大於100%,但實際中、特別是大樣本量的時候,是不可能的,否則就太差了,不可能被商用。

C)站在純產品體驗角度,很多人會以為識別率應該等於“句子識別正確的個數/總的句子個數”,即“識別(正確)率等於96%”這種,實際工作中,這個應該指向 “SER (句錯誤率,Sentence Error Rate)”,即“ 句子識別錯誤的個數/總的句子個數 ”。

2、遠場語音識別(Farfield Voice Recognition)

遠場語音識別,簡稱 遠場識別 ,口語中可更簡化為“ 遠場 ”。主要3個概念:語音啟用檢測、語音喚醒、以及麥克風陣列。

1) 語音啟用檢測 (voice active detection, VAD

A)需求背景:

在近場識別場景,比如使用語音輸入法時,使用者可以用手按著語音按鍵說話,結束之後鬆開,由於近場情況下訊雜比(signal to noise ratio, SNR)比較高,訊號清晰,簡單演算法也能做到有效可靠。但遠場識別場景下,使用者不能用手接觸裝置,這時受噪聲影響比較大,SNR較低,必須使用VAD了。

B)定義:

判斷什麼時候有語音/什麼時候沒有語音 (靜音)。

後續的語音訊號處理或是語音識別,都是通過“VAD 檢測的語音起始點幀位置”擷取出來的有效語音片段上進行的。

2) 語音喚醒  (keyword spotting,簡稱 KWS ;或voice trigger, VT

A)需求背景:

在近場識別時,使用者可以點選按鈕後直接說話,但是遠場識別時,需要 在VAD檢測到人聲之後,進行語音喚醒 ,相當於叫這個AI(機器人)的名字,引起ta的注意,比如蘋果的“Hey Siri”,Google的“OK Google”,亞馬遜Echo的“Alexa”等。

B)定義:

可以理解為 喊名字,引起聽者的注意

VT判斷是喚醒(啟用)詞,那後續的語音就應該進行識別了;否則,不進行識別。

C)語音喚醒的 應用互動模式

  • 傳統模式 :先喚醒裝置,等裝置反饋後(提示音或亮燈),使用者認為裝置被喚醒了,再發出語音控制命令,缺點在於互動時間長;
  • One-shot :直接將喚醒詞和工作命令一同說出,如“小雅小雅,我想聽周杰倫的歌”;
  • Zero-shot :將常用使用者指令設定為喚醒詞,達到使用者無感知喚醒,例如直接對車機說“導航到XX大廈”。
  • 多喚醒 :主要滿足使用者個性化的需求,給裝置起多個名字。

D)語音喚醒的 評價指標 (也是 難點

a) 喚醒率 。叫AI的時候,ta成功被喚醒的比率(注:喊ta的時候,ta不答應,叫做 漏報)。

b) 誤喚醒率(誤報) 。沒叫AI的時候,ta自己跳出來講話的比率;有時會按照“天”來算,比如要求“一天內不超過一次”。如果誤喚醒比較多,特別比如半夜時,智慧音響突然開始唱歌或講故事,會特別嚇人的……

  • 注1:喚醒率=喚醒中真實喚醒的數量/嘗試喚醒的總數。這裡特意強調“真實喚醒的數量”,是因為喚醒的總資料中,還會包含誤喚醒的資料。
  • 注2:關於準確率precision、召回率Recall等概念的辨析。

c) 喚醒詞的音節長度 。一般技術上要求,最少3個音節,如果音節太短,一般誤喚醒率會比較高。比如“OK Google”和“Alexa”有四個音節,“Hey Siri”有三個音節;國內的小雅智慧音響,喚醒詞是“小雅小雅”。不過,Rokid的喚醒詞“若琪”,做到了只有兩個音節,據說是全球唯一。

d) 喚醒響應時間

據說,除了Echo和小雅智慧音響能達到1.5秒,其他的都在3秒以上。

e) 功耗(要低)

看過報導,說iPhone 4s出現Siri,但直到iPhone 6s之後才允許不接電源的情況下直接喊“Hey Siri”進行語音喚醒;這是因為有6s上有一顆專門進行語音啟用的低功耗晶片,當然演算法和硬體要進行配合,演算法也要進行優化。

E)語音識別和語音喚醒的 本地/雲端策略

  • 語音識別
  • 通用的ASR一般在 雲端 ,不過目前很多裝置採用 離線上融合 的方式,一是解決無網狀態下的語音識別,二是一些常用指令,靠離線引擎的更快,體驗更好,三是有些廠商提供的個性化識別服務依賴本地模型。
  • 語音喚醒
  • 雖然很多具體產品的方案是 離線 方案,但目前亞馬遜、蘋果都明確在技術文件中表示,其使用了 雲端喚醒的方案(一級喚醒在本地,二級喚醒在雲端)

3) 麥克風陣列(Microphone Array)

A)需求背景:

在會議室、戶外、商場等各種複雜環境下,會有噪音、混響、人聲干擾、回聲等各種問題。特別是遠場環境,要求拾音麥克風的靈敏度高,這樣才能在較遠的距離下獲得有效的音訊振幅,同時近場環境下又不能爆音(振幅超過最大量化精度)。另外,家庭環境中的牆壁反射形成的混響對語音質量也有不可忽視的影響。

B)定義:

由一定數目的聲學感測器(一般是麥克風)組成,用來對聲場的空間特性進行取樣並處理的系統。

人工智慧之語音識別(ASR)

C)能幹什麼

  • 語音增強(Speech Enhancement)
  • 當語音訊號被各種各樣的噪聲(包括語音)干擾甚至淹沒後,從含噪聲的語音訊號中提取出純淨語音的過程。
  • 聲源定位(Source Localization)
  • 使用麥克風陣列來計算目標說話人的角度和距離,從而實現對目標說話人的跟蹤以及後續的語音定向拾取。
  • 去混響(Dereverberation)
  • 聲波在室內傳播時,要被牆壁、天花板、地板等障礙物形成反射聲,並和直達聲形成疊加,這種現象稱為混響。
人工智慧之語音識別(ASR)
人工智慧之語音識別(ASR)
  • 聲源訊號提取/分離
  • 聲源訊號的提取就是從多個聲音訊號中提取出目標訊號,聲源訊號分離技術則是將需要將多個混合聲音全部提取出來。
人工智慧之語音識別(ASR)
人工智慧之語音識別(ASR)

D)分類

  • 按陣列形狀分:線性、環形、球形麥克風

在原理上,三者並無太大區別,只是由於空間構型不同,導致它們可分辨的空間範圍也不同。比如,在聲源定位上,線性陣列只有一維資訊,只能分辨180度;環形陣列是平面陣列,有兩維資訊,能分辨360度;球性陣列是立體三維空間陣列,有三維資訊,能區分360度方位角和180度俯仰角。

  • 按麥克風個數分:單麥、雙麥、多麥。

麥克風的個數越多,對說話人的定位精度越高,在嘈雜環境下的拾音質量越高;但如果互動距離不是很遠,或者在一般室內的安靜環境下,5麥和8麥的定位效果差異不是很大。

據說,全行業能做“6+1”麥克風陣列(環形對稱分佈6顆,圓心中間有1顆)的公司可能不超過兩三家,包括獵戶星空在內。而Google Home目前採用的是2mic的設計。

E)問題

  • 距離太遠時(比如10m、20m),錄製訊號的訊雜比會很低,演算法處理難度很大;
  • 對於便攜裝置來說,受裝置尺寸以及功耗的限制,麥克風的個數不能太多,陣列尺寸也不能太大。——分散式麥克風陣列技術則是解決當前問題的一個可能途徑。
  • 麥克風陣列技術仍然還有很大的提升空間,尤其是背景噪聲很大的環境裡,如家裡開電視、開空調、開電扇,或者是在汽車裡面等等。

整體來說,遠場語音識別時,需要前後端結合去完成。一方面在前端使用麥克風陣列硬體,對聲源定位並通過自適應波束進行語音增強,在前端完成遠場拾音,並解決噪聲、混響、回聲等帶來的影響。另一方面,由於近場、遠場的語音訊號,在聲學上有一定的規律差異,所以在後端的語音識別上,還需要結合基於大資料訓練、針對遠場環境的聲學模型,才能較好解決識別率的問題。

4) 全雙工(Full-Duplex)

A)需求背景:

在傳統的語音喚醒方案中,是一次喚醒後,進行語音識別和互動,互動完成再進入待喚醒狀態。但是在實際人與人的交流中,人是可以 與多人對話的,而且支援被其他人插入和打斷。

B)定義:

  • 單工 :a和b說話,b只能聽a說
  • 半雙工 :參考對講機,A:能不能聽到我說話,over;B:可以可以,over
  • 全雙工 :參考打電話,A:哎,老王啊!balabala……;B:balabala……

C)包含feature

人聲檢測、智慧斷句、拒識(無效的語音和無關說話內容)和回聲消除(Automatic Echo Cancellation ,簡稱AEC,在播放的同時可以拾音)。

特別說下回聲消除的需求背景:

近場環境下,播放音樂或是語音播報的時候可以按鍵停止這些,但遠場環境下,遠端揚聲器播放的音樂會回傳給近端麥克風,此時就需要有效的回聲消除演算法來抑制遠端訊號的干擾。

5) 糾錯

A)需求背景:

做了以上硬體、演算法優化後,語音識別就會OK了嗎?還不夠。因為還會 因為同音字(詞)等各種異常情況,導致識別出來的文字有偏差,這時,就需要做“糾錯”了。

B) 使用者主動糾錯

比如使用者語音說“我們今天,不對,明天晚上吃啥?”,經過雲端的自然語言理解過程,可以直接顯示使用者真正希望的結果“我們明天晚上吃啥”

人工智慧之語音識別(ASR)

C)根據場景/功能領域不同, AI來主動糾錯 。這裡,根據糾錯目標資料的來源,可以進一步劃分為3種:

a) 本地為主

比如, 打電話 功能。有位很好的朋友叫郭家,如果說“打電話給guo jia時”,一般語音識別預設出現的肯定是“國家”,但(手機)本地會有通訊錄,所以可以根據拼音,優先在通訊錄中尋找更匹配(相似度較高)的名字——郭家。就顯示為“打電話給郭家”。

b) 本地+雲端

比如, 音樂 功能。使用者說,“我想聽XX(歌曲名稱)”時,可以優先在本地的音樂庫中去找相似度較高的歌曲名稱,然後到雲端曲庫去找,最後再合在一起(排序)。

例如,實際工作中,遇到過的“糾錯例子”包括:

  • 夜半小夜曲—>月半小夜曲
  • 讓我輕輕地告訴你—>讓我輕輕的告訴你
  • 他說—>她說
  • 望凝眉—>枉凝眉
  • 一聽要幸福—>一定要幸福
  • 苦啥—>哭砂
  • 鴿子是個傳說—>哥只是個傳說

c) 雲端為主

比如 地圖 功能,由於POI(Point of Interest,興趣點,指地理位置資料)資料量太大,直接到雲端搜尋可能更方便(除非是“家”、“公司”等個性化場景)。比如,使用者說“從武漢火車站到東福”,可以被糾正為“從武漢火車站到東湖”。

當前技術邊界

各家公司在宣傳時,會說語音識別率達到了97%,甚至98%,但那一般是需要使用者在 安靜環境下,近距離、原地不動、慢慢的、認真清晰發音 ;而在一些 實際場景,很可能還不夠好的 ,比如——

1、比如在大家都認為相對容易做的 翻譯 場景,其實也還沒完全可用,臺上演示是一回事,普通使用者使用是另一回事;特別是在一些 垂直行業,領域知識很容易出錯。

2、 車載

車內語音識別的難點很多,除了 多人說話的干擾 ,還有 胎噪 風噪 ,以及經常處於 離線 情況。

據說有的公司專門在做 車內降噪 ,還有些公司想通過 智慧硬體 來解決,至少目前好像還沒有哪個產品解決好了這個問題,並且獲得了使用者的口碑稱讚。

3、 家庭場景

由於相對安靜和可控,如果遠場做好了,還是有希望的。

4、 中英文混合

特別在聽歌場景,使用者說想聽某首英文歌時,很容易識別錯誤的。這方面,只有小雅音響曾說自己做了很多優化工作。

人工智慧之語音識別(ASR)

目前AI領域內, ASR已經是相對成熟(商用)的技術了,但還是需要使用者配合AI在特定場景下使用。

https://www.toutiao.com/a6721479023446196750/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2652896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章