首先列出困難,然后依次分析。
語音激活檢測(voiceactive detection,VAD)
語音喚醒(voice trigger,VT)
回聲消除(Echo Cancelling)
低信噪比(signal to noise ratio,SNR)和混響(Reverberation)
雞尾酒會問題(cocktail-partyproblem)
關于語音識別的未來
1、語音激活檢測(VAD)
顧名思義,指的就是判斷什么時候有語音什么時候沒有語音(靜音)。后續的語音信號處理或是語音識別都是在VAD截取出來的有效語音片段上進行的,這樣可以極大的減少計算量,同時也能減少噪聲誤識別等情況。
在近場識別的時候,這個算法可有可無:比如語音輸入法中可以用手按著說話按鍵說話,結束之后松開。即便有,也可以做的比較簡單:例如可以用能量、音高、過零率等方式進行判斷。因為近場情況下信噪比(SNR)比較高,信號清晰,簡單算法也可以做到有效可靠。
遠場識別情況下不能用手接觸設備,必須使用VAD。這時噪聲比較大,SNR下降劇烈,這種情況下傳統的方法效果不理想。近幾年深度神經網絡(deepneural network,DNN)火熱,基于DNN(包括DNN,CNN,RNN)的語音系統成為標配,因此VAD使用DNN來做也合情合理。但即便是這樣,仍然有很大的挑戰,簡單的如:開關門的聲音、鼓掌、跺腳、寵物叫聲,困難的如:電視的聲音、多人的交談聲等等。所以VAD仍然是遠場語音識別的一個研究話題。
2、語音喚醒(VT)
可以理解為喊名字,引起聽者的注意。比如蘋果的“heySiri”,Google的“OK Google”,以及亞馬遜echo系列產品的“Alexa”等。VT的目的是告訴機器人(或手機),接下來的話是對你講的哦,認真聽好了。VT通常是在VAD檢測到人聲之后進行工作,他要判斷人說的話是不是激活詞(激活詞就是上面的“heySiri”、“OK google”以及“Alexa”等),如果是激活詞,那么后續的語音就進行識別,否則后續的語音不進行處理。
語音識別,不論是遠場還是近場,基本都是在云端的,這樣可以使用大模型,服務器的高速計算等優勢獲得好的識別結果。而VT基本是在本地設備上,因此它的要求更高。技術難點具體體現在以下幾個方面:
功耗要低。iphone4s出現Siri,但直到iphone6s之后才允許不接電源的情況下直接喊“hey Siri”進行語音喚醒,在此之前都需要接入電源的情況下進行語音喚醒。這是因為有6s上有一顆專門進行語音激活的低功耗芯片,當然算法和硬件要進行配合,算法也要進行優化。
計算量要小。計算量小一方面是低功耗的要求,另一方面要是實時率的要求。即1s的語音至少要在1s之內計算完畢,這樣才能保障可實用。
喚醒效果。理想狀況下的效果是喊它的時候它立馬就能相應,不喊它的時候它乖乖的不要插話。但人生不如意十之八九,喊它的時候它不答應這叫做漏報,沒喊它的時候它跳出來講話叫做誤報。漏報和誤報這倆老兄是此消彼長的關系:比如喚醒詞很長有10個字,那么誤報肯定小,但同時漏報也就多了,喊了好幾次都不理你是不是很氣人?!
再比如喚醒詞很短只有一個字,這個時候漏報是少了,每次喊都很快回應你,但是誤報也多了呀,大半夜突然跳出來說幾句話那也是相當驚悚的。因此起名字也很關鍵,通常名字越短,越困難。比如“OK Google”和“Alexa”有四個音節,“hey Siri”有三個音節。因此,起一個朗朗上口,百喊不厭的名字也能從側面體現出算法水平。
3、回聲消除(Echo Cancelling)
這是全雙工通信中的一個名詞,即在播放的同時可以拾音。近場環境下,播放音樂或是語音播報的時候可以按鍵停止這些,但遠場環境下想要通過語音控制,必須得實現回聲消除。
回聲消除的難點在于它要和智能設備的音響效果之間有一個平衡和折中。如果音響設備重低音比較好,振動就會加劇,這樣麥克風的拾音效果就要大打折扣。另外音響離麥克風的距離也會對拾音有影響。Amazon的echo長的很高,音響在最下面,麥克風在頂上的設計也是為了更好的實現回聲消除。想google home這樣設計成矮個子,對算法的要求就很高了。
總之,硬件的設計對回聲消除或者說對拾音有較大的影響。Amazon今年相繼開放了算法的SDK和硬件的7mic設計,也印證了算法和硬件是高度耦合的。如果想要自己從頭設計,反復的對比和驗證是避免不了的。
4、低信噪比(signal to noise ratio,SNR)和混響(Reverberation)
遠場環境要求拾音麥克風的靈敏度高,這樣才能在較遠的距離下獲得有效的音頻振幅,同時近場環境下又不能爆音(振幅超過最大量化精度)。這樣的環境下,噪音必然會很大,從而使得語音質量變差,即SNR降低。
另外作為家庭助手,家庭環境中的墻壁反射形成的混響對語音質量也有不可忽視的影響。為了對語音信號進行增強,提高語音的SNR,遠場語音識別通常都會采用麥克風陣列。Amazon的echo采用了6+1的設計(環形對稱分布6顆,圓心中間有1顆),Google home目前采用的是2mic的設計。
在算法方面,基于麥克風陣列的波束形成(beamforming)技術已經有很多年的發展,最新的一些論文里有提到使用使用DNN來替代波束形成,實現語音增強。但效果仍然還有很大的提升空間,尤其是背景噪聲很大的環境里,如家里開電視、開空調、開電扇,或者是在汽車里面等等。
5、雞尾酒會問題(cocktail-party problem)
這是指有多個說話人情況下的語音識別問題,比如雞尾酒會上很多人講話。這種情況下人是有可能聽清楚你關注的人在說什么的,當然手勢、口型、表情以及聊天話題都會提供幫助。這種環境下的語音識別是相當有挑戰的。波束形成技術是解決這個問題的一個有效手段。但是當幾個說話人距離比較接近的時候,波束形成也無能為力。
這個問題其實在很早以前就有相關的研究,叫做語音分離(speech separation)。有一個接近的名詞叫做語音分割(speech segmentation),是指語音沒有重疊,一個人說完另外一個人說,需要把語音切分成片段,然后每個片段只包含一個說話人,然后把同一個說話人的語音片段聚類到一起就行了。
語音分離相對來說更難一些,是指多個說話人同時說話,語音有重疊,這種情況下將每個人的原始語音恢復出來相當有難度。典型的應用場景有多人會議的語音識別,party中的語音識別等。傳統的做法多是在單通道的情況下嘗試解決這個問題,為的是避開波束形成帶來的場景分類。典型的算法有computation alauditory sceneanalysis(CASA),Non -negative matrix factorization(NMF),deepclustering(DPCL),deepattractor network(DANet)等。2016年微軟的俞棟博士發表的論文(Morten Kolb?k,etc,2016)巧妙的利用DNN獲得了一個不錯的結果,他們團隊在2017年的ICASSP上發表的論文(DongYu,etc,2017)更是講分離和識別做到了一個模型里面。但是從結果來看,性能還有提升的空間。另外如果把單通道的語音分離技術和麥克風陣列想結合,效果應該能夠再提升一個檔次。
6、關于語音識別的未來
我們就要聊聊遠場語音識別是否會成為主要戰場。個人觀點是未來的3年左右遠場語音識別會是語音識別主要的戰場。人工智能(AI)是近年的投資熱潮,或許可以把deepmind的AlphaGO看做是起點。但目前AI遠遠沒有達到人們對他們的預期那么智能。
家庭語音助手作為一個切入點,可以讓我們體驗AI帶來的優質生活。家庭語音助手的下一個階段是智能家居,當然智能家居的概念已經提出很多年了。就目前的市場情況來看,仍然是各自為戰。這個狀況大概還會持續一段時間。在此之前,家庭語音助手,或者說遠場語音識別仍然會是主要的語音識別場景。語音作為一種重要的交互方式,它是不可或缺的,但并非所有的情況下它都是最便利的。
《鋼鐵俠》中的智能助手賈維斯是家庭智能助手的目標,顯然除了語音之外,顯示屏和手勢控制也是非常高效的交互手段。而語音助手,除了家庭助手之外,就像電影《Her》中想象的一樣,將來可能會成為真正的助手,與你形影不離,這時或許又多了室外這樣的一個場景。
來源:億歐網 轉自:CIO時代