1. 程式人生 > >語音識別關鍵技術公開,人機互動這麼做就對了!

語音識別關鍵技術公開,人機互動這麼做就對了!

語音識別是目前應用最成熟的人機互動方式,從最初大家體驗過的有屏手持裝置這種近場的語音識別,如Siri以及各種語音助手,到現在,語音識別的應用已經完成了向智慧硬體以及機器人上延伸,不過,新的人機互動對硬體、演算法要求更加苛刻,各企業正面臨著巨大的挑戰。

那麼實現人機互動需要解決哪些問題?這其中的關鍵技術有哪些?人機互動的未來趨勢如何?

人機互動的痛點

語音作為目前人機互動的主要方式,大家如果使用過,應該都能舉出一些例子。比如說話要靠近,發音要標準,環境要安靜,不能持續對話,不能打斷等。

2016082500018

不只是語音,包括影象、障礙物檢測等技術,都會遇到這樣的問題,比如人臉的識別,對光線、角度、距離都有一定的要求。 歸結為一點就是,當前人機互動在複雜環境的自適應性方面,還有很多問題需要解決。這還只是感知層面,另外還包括認知層面,AI目前還不如我們想象的這麼聰明,目前不能完全自主學習,仍然需要人的介入,比如知識庫的匯入,機器行為的糾正等,都需要人的參與。

當前的人機互動產品,在真正面對使用者時,在面對複雜環境時,魯棒性還不夠好。今天的分享,我們一起探討如何解決這些問題,不管是通過演算法,還是工程,抑或產品,都是我們可以選擇的途徑。

大家首先要有個共識,人機互動目前所面臨的問題,不是一朝一夕,一蹴而就能解決的,需要在各個方向在核心技術上不斷進步。

科大訊飛AIUI是怎麼做的?

2016082500019

AIUI作為人機智慧互動介面,旨在實現人機之間互動無障礙,使人與機器之間的交流,像人與人一樣,可以通過語音、影象、手勢等自然互動的方式,進行持續,雙向,自然地溝通。它由一套由雲和客戶端相結合服務框架構成,包括音視訊前端訊號處理、雲+端相配合互動引擎、內容和知識平臺以及介面、使用者個性化系統等。平臺具備開放性,第三方可進行靈活配置、業務擴充套件、內容對接等。

以前的語音互動產品,包括訊飛在內,大家提供的都是單點的能力,比如語音合成、語音喚醒、語音識別、語義理解,另外還有人臉識別、聲紋識別等。大家拿到這麼多產品和能力,需要花很大的工作量,去開發人機互動功能。

這種方式問題比較明顯:

一方面是產品整合的工作量太大,造成很多中小開發者無力去承擔這部分工作量;

另外就是因為互動流程太長,細節不好處理,造成各家產品的互動體驗參差不齊。

所以AIUI互動方案首先要解決的就是這個問題。AIUI是把麥克風陣列、前端聲學處理、語音喚醒、端點檢測、語音識別、語義理解、語音合成等技術在整個互動鏈上進行深度融合的系統。

而且AIUI還支援了全雙工、多輪互動等新特性,並在單點技術上進行突破和演進,包括聲源定位與追蹤、持續線上,有效人聲智慧檢測、基於使用者意圖的動態語音端點檢測、支援上下文互動的語義理解、基於對話場景自適應的語音識別等。

科普:語音互動的過程

2016082500020

首先,人機之間的語音互動(這裡主要指智慧硬體、機器人等),區別於傳統的有屏手持裝置,在傳統的語音互動中,因為是近場,語音訊號質量相對較高,而且有觸控式螢幕輔助,所以互動鏈路可以相對簡單。通過點選螢幕觸發,再通過點選螢幕或者能量VAD檢測,來結束語音訊號採集,即可完成一次互動,整個過程通過語音識別、語義理解、語音合成即可完成。

而對於人機之間的互動,由於涉及到遠場,環境比較複雜,而且無屏互動,如果要像人與人之間的交流一樣自然、持續、雙向、可打斷,整個互動過程需要解決的問題更多,AIUI為完成類人的語音互動,是一個需要軟硬體一體、雲+端相互配合的過程。

2016082500021

我們來看下互動的整個流程,從大的方面來說,還是以語音識別、語義理解、語音合成為主線,只不過每個過程需要解決更多的問題。

首先來看下語音喚醒,喚醒是人機互動的主要觸發方式,就像你要和一個人說話,就得首先喊一下這個人的名字,才能開始進行交流。而在交流的過程中,如果有其他人喊你呢,你也是需要響應的,需要支援持續喚醒。

機器被喚醒後,就需要知道說話人的方位,這樣機器才可以做出更友好的響應,比如轉身,移動等。只有明確說話人的方位後,才可以定向的拾音,做降噪處理,同時對說話人進行語音增強。這個聲源定位和語音增強主要是用麥克風陣列的相關技術,下面會有詳細解釋。

在語音識別這個重要模組中,首先要解決的就是遠場識別,通過上面提到的麥克風陣列和聲源定位,可以較好的實現遠距離拾音,解決噪聲、混響、回聲帶來的影響。作為全雙工互動,持續的音訊流拾取,就要解決人聲檢測和斷句問題,機器需要能夠過濾無效語音,做出快速的反饋和響應。

人聲和端點的檢測不能只依賴於能量檢測的技術方案,需要解決更為複雜的環境,具體怎麼解決呢,下面再展開。

對於識別來說,首先要保障的是遠場環境下的識別率,除了前面提到的麥克風陣列解決了前端聲學的問題,還要有專門針對遠場環境下,基於大量資料訓練的聲學模型,這樣才能保證識別率滿足互動需求。

除了雲端的語音識別,端上的識別也是需要做的,需要雲+端方式進行結合,這樣才能滿足複雜網路下的使用場景。不過端上主要是去做一些命令式互動,響應一些本地操作。比如關機、打電話、動作指令等。

本地不做成無限制的響應呢,因為對於很多的使用者意圖來說,是需要基於網路去獲取內容的,所以本地只做輔助使用,是為了解決一些複雜網路環境所做的手段。這個地方的難點是需要做好雲和端的PK策略,需要基於置信度、響應時間等資訊來綜合決策。作為持續的語音互動,不可避免要吸收很多無效的語音,拒識成為必須,否則會造成對話的混亂和無意義的響應。

對於支援多輪的互動理解,語義引擎不再是無狀態的,系統更加複雜,需要有對話管理、歷史資訊儲存等模組。語義理解不只包含使用者說話意圖,還要包括內容的獲取,這樣才能在接下來的端點檢測、語音識別等互動過程中,共享資訊,做到場景自適應,以提高準確率。

完成語音識別和語義的理解後,機器需要通過語音合成,把資訊傳遞給使用者。合成這一塊沒有太多需要展開的,訊飛提供了幾十種不同的發音人,而且支援不同情感進行朗讀,至於該以何種情境、情感進行播報,這是在語義理解中需要給出的資訊。相比傳統的互動,現在的流程會看起來複雜很多。

功能:遠場識別、全雙工、多輪互動

遠場識別

2016082500022

遠場識別,需要前後端結合去完成,一方面在前端使用麥克風陣列硬體,通過聲源定位及自適應波束形成做語音增強。在前端完成遠場拾音,並解決噪聲、混響、回聲等帶來的影響。

不過這還不夠,因近場、遠場的語音訊號,在聲學上有一定的規律差異,所以在後端的語音識別上,還需要結合基於大資料訓練、針對遠場環境的聲學模型,這樣才能較好解決識別率的問題。

全雙工

2016082500023

全雙工互動,是一個全鏈路的貫穿過程,不只是持續的拾音和網路傳輸,更需要包括持續的語音喚醒、智慧有效人聲檢測、動態語音端點檢測、無效語音拒識等各個模組相互配合,才能完成。

支援連續的語音喚醒是必須。在傳統的語音喚醒方案中,是一次喚醒後,進行語音識別和互動,互動完成再進入待喚醒狀態。但是在實際人與人的交流中,人是可以與多人對話的,而且支援被其他人插入和打斷。AIUI中語音喚醒採用BN(Bottle Neck)技術方案,支援低功耗的待機。

全雙工互動作為一個持續的互動過程,語音識別和語義理解,需要能夠做出快速的響應。這就需要人聲檢測和智慧斷句。傳統的斷句是基於能量的檢測來判定,但是有兩個主要缺點,一是無法過濾噪音和無效的語音,另外就是對說話人的要求較高,中間不能有停頓。如果後端點設定的太短,容易造成截斷;後端點太長,又會造成響應不及時。

AIUI的做法是,採用基於模型的有效人聲智慧檢測和基於使用者意圖的動態語音端點檢測。基於模型的檢測可以有效解決噪音和無效語音。這塊主要是通過採集不同環境的噪音,基於深度神經網路的訓練出對應聲學模型,進行過濾,把有效的語音傳送到雲端進行互動。

動態端點檢測演算法實現從連續輸入的資料流中檢測出包含完整使用者意圖的語音送入語義理解模組,可以很好的解決使用者的停頓,因為在人機的交流過程中,在一句包含完整意圖語音中,停頓是很常見的現象,這在我們對使用者的行為分析中得到驗證。

另外在持續的語音互動過程中,必然會有無效的語音和無關說話內容被吸收進來,所以拒識是必須。在AIUI系統中,我們針對全雙工互動中的這個問題,專門構建了一套基於深度神經網路的拒識系統,從聲學訊號、語義等多個方面對接收的語音進行拒識判斷。

多輪互動

2016082500024

同樣的,對於多輪互動中的語義理解和對話管理兩個模組,我們也採用深度學習+海量資料的方式,使用使用者的實際資料,訓練魯棒的語義理解和對話管理模型。

結合基於LSTM(長短時記憶)的迴圈神經網路,使得模型具有長時記憶的能力,結合對話上下文進行準確的語義理解,相信配合科大訊飛深度神經網路+大資料+“漣漪效應”的研究思路,我們的多輪互動會越來越準確、好用。

關鍵技術:麥克風陣列

2016082500025

大家通過上圖可以看到,現實環境中噪音、混響、人聲干擾、回聲等因素,帶來的影響因素還是比較大的,我們一般是通過麥克風陣列來解決。

2016082500026

麥克風陣列是利用一定數目,一定空間構型的聲學感測器(一般是麥克風)組成,用來對聲場的空間特性進行取樣並處理的系統。麥克風陣列能做很多事情,對於環境噪聲,它可以採用自適應波束形成做語音增強,從含噪語音訊號中提取純淨語音;對於說話人說話位置的不確性,它可以通過聲源定位技術來計算目標說話人的角度,來跟蹤說話人以及後續的語音定向拾取;對於室內聲音反射,導致語音音素交疊,識別率較低的問題,它可以通過去混響技術,減小混響,提高識別率。

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

其次麥克風的個數越多,對說話人的定位精度越高,但是定位精度的差別體現在互動距離的遠近上,如果互動距離不是很遠,5麥和8麥的定位效果差異不是很大。此外,麥克風個數越多,波束能區分的空間越精細,在嘈雜環境下的拾音質量越高,但是在一般室內的安靜環境下,5麥和8麥的識別率相差不是很大。麥克風個數越多,成本也越高,具體的產品,要綜合考慮應用場景和實際的產品定位,選擇合適的麥克風個數和陣型。

方案:破解環境對語音識別的影響

2016082500027

複雜的環境,一方面是外在環境的複雜,另一方面是方言和口音。外在環境複雜包括噪聲、混響、回聲等,而且噪音又分為不同的會議室、戶外、商場等不同環境,為了解決這些問題,除了單通道語音增強技術,現在基本是採用上面提到的麥克風陣列硬體和相關演算法實現。

在方言、口音方面,大家都知道,在我們國家,幾十種方言,每個人都有自己的獨特口音,一般的解決方法的是基於各種方言資料,通過深度神經網路,訓練各種方言模型,以提高識別率,這是業內的通用做法。

為解決兩方面的問題,訊飛正通過以下的技術方案,去適應各種複雜環境的要求。包括以下方面:

1) 提供條形、環形、球形的四麥、五麥、八麥等多種不同的麥克風陣列構型,以適應不同的產品需求,比如叮咚音箱採用的就是環形8麥的方案。

麥克風陣列技術雖然已經可以達到相當的技術水平,但是總體上還是存在一些問題的,比如當麥克風和訊號源距離太遠時(比如10m、20m距離),錄製訊號的信噪比會很低,演算法處理難度很大;對於便攜裝置來說,受裝置尺寸以及功耗的限制,麥克風的個數不能太多,陣列尺寸也不能太大。而分散式麥克風陣列技術則是解決當前問題的一個可能途徑。

所謂分散式陣列就是將子陣元或子陣列布局到更大的範圍內,相互之間通過有線或者無線的方式進行資料的交換和共享,並在此基礎上進行廣義上的聲源定位、波束形成等技術實現訊號處理。

相對於目前集中式的麥克風陣列,分散式陣列的優勢也是非常明顯的。首先分散式麥克風陣列(尤其無線傳輸)的尺寸的限制就不存在了;另外,陣列的節點可以覆蓋很大的面積。總會有一個陣列的節點距離聲源很近,錄音信噪比大幅度提升,演算法處理難度也會降低,總體的訊號處理的效果也會有非常顯著的提升,目前科大訊飛已經開始了相關技術研究的佈局工作。

2)不同環境的語音識別聲學模型,如上面提到的遠場拾音,專門針對遠距離拾音的環境進行訓練;

3)在方言方面,訊飛支援普通話、粵語等20多種方言,是目前涵蓋方言範圍最廣的。積累了一定量的多方言資源庫,並基於特殊的深度神經網路結構和上線資料的半監督訓練,實現了多方言資料資訊的共享和方言的自動迭代更新。

另外方言最大的難點,在於方言的自適應,如何能夠根據使用者的語音,自動匹配模型,訊飛已經驗證完成。

4)在口音的適配方面,訊飛已經有一套完整的基於使用者的訓練系統,可以針對每個使用者,建立閉環的優化流程,為每個使用者建立自己的個性化聲學模型,目前正在訊飛輸入法試點,對於一些註冊使用者進行灰度體現;

5)基於特定人群的模型訓練,目前已經為面向兒童的玩具方案,專門訓練針對兒童的聲學匹配模型;

6)為每個應用、每個使用者,提供個性化的語言模型;

AIUI的服務

2016082500028

AIUI對外完全開放,不管是個人開發者還是公司,在我們的平臺上都可使用。因AIUI需要與硬體相結合,所以現在是以評估板的形式開放。如果評估效果滿足產品需求,我們提供模組或者軟核的方式支援產品量產。

開放平臺除了提供整體的方案和幾十個業務場景,還提供產品的個性化定製能力,主要包括喚醒詞定製、發音人定製、互動語義理解定製、語音識別資源定製、流程引數配置等,這些都是在Web平臺上開放的功能,開發者可以根據產品需求,在平臺上進行個性化的配置和編輯。

如語義開放平臺,提供私有語義編寫、自定義問答匯入,這一塊相信是大家最為關心的,每個機器人如何回答使用者的提問,主要就通過這方面來體現。

還有很重要一點,AIUI允許第三方系統接入,AIUI作為可擴充套件的伸縮服務,經過語音雲處理的識別和語義結果,只要在平臺上配置,第三方業務系統即可通過Http服務接入,以滿足更為複雜的個性化需求。

當然訊飛開放平臺還提供深度的定製服務,包括喚醒詞訓練、發音人訓練、語義及內容製作等。通過平臺開放和深度定製兩種方式,可以滿足各個產品之間的差異化。

未來:人機互動會融合?

融合必然是未來人機互動的趨勢。

以AIUI為例,在定義之初,就沒有把語音作為唯一的互動方式,而是把它設想為結合了人臉、人體追蹤、手勢、紅外等多種方式為一體的人機互動解決方案。

我們也在不斷的嘗試把語音和其他方式相結合,比如我們現在已經上線的人臉、聲紋融合身份驗證,即是最直接的例子,通過這種方式將能夠有效解決使用者的身份認證問題。

在AIUI中,也有很多的場景需要藉助於不同方式來相互配合。舉個例子,在AIUI中,為解決遠場的持續互動,使用了麥克風陣列,採用定向拾音的方式來解決這個問題,但是由於定向拾音的角度有限,造成持續互動過程中,說話人的移動成為問題,這個時候,就需要有移動的聲源定位和追蹤,簡單依靠聲音的辨識和追蹤,很難有效解決這個問題,這個時候如果能結合人體的追蹤,比如影象和紅外手段,將可以進一步降低出錯概率。其他的場景還有人的年齡、性別等屬性識別,如果採用影象、聲音相結合方式,將可以極高提升精準度,提升機器的感知能力,AI也將更加智慧。

本文主講:趙豔軍,AIUI專案負責人,科大訊飛雲平臺研發主管,負責訊飛開放平語音識別、語音合成、聲紋、喚醒等多項產品研發,同時負責人機互動解決方案AIUI的開發,致力於把核心技術更好的產品化,使人與機器的交流像人與人之間一樣簡單,自然。

(文章來源:硬創公開課)