阿里云年会人机大战-技术大揭秘
引言
在上一篇文章中人工智能PK金牌速記員之實戰錄,我們講述了阿里云年會人機大戰背后的故事。技術Geek們可能就好奇了?現場的實時轉錄系統是怎么回事? 其中核心的語音識別系統到底是什么,工作原理是什么? 阿里云iDST的語音識別系統準確率為什么可以做到這么高,有什么獨得之秘?本文將會將這些問題的答案一一揭曉。
人機大戰之現場
?
上圖是視頻的截圖,展示的就是阿里云年會人機大戰的現場情形, 阿里云的掌門人孫權在臺上演講,自動語音系統和速記員分別給出演講的文本內容,同時投屏,現場PK正確率。其中,左邊的屏幕展示語音識別的結果,作為字幕顯示在實時圖像上;另一邊則是全球速記亞軍姜毅先生將演講內容速記下來,以白屏黑字的方式顯示給觀眾。
現在問題來了,阿里云iDST的系統是如何做到實時轉錄并將語音識別的結果作為字幕展示給觀眾的呢?
實時轉錄系統架構
這里給出了演示系統的軟硬件架構如下圖所示。
- 音頻方案
在音頻方面,現場嘉賓的講話內容通過無線麥克風傳遞到USB聲卡。為了實現同時語音識別和現場放音的效果,USB聲卡的輸出中一路送到調音臺然后到現場的揚聲器播放給觀眾,另一路則通過PC軟件進行音頻采集,將采集到的音頻數據發送到阿里云語音服務器上運行語音識別,并將語音識別的文本結果實時返回,為實時產生字幕做準備。
?
- 視頻方案
在視頻方面,現場也會產生兩路視頻輸入: 一方面攝影師通過攝像機拍攝嘉賓演講的畫面傳回到中控臺;另一方面,流式返回的語音識別結果文本通過渲染產生滾動的字幕效果,并展示在一個純綠屏圖像上。最后,在中控臺處,通過摳屏軟件將滾動的字幕疊加在嘉賓演講畫面上,產生實時字幕的效果。
在整個系統中,最為核心的算法部分就是一個是語音識別服務部分,它的作用就是將嘉賓的演講內容實時轉換為文本內容。那么現在問題又來了,語音識別是怎么工作的呢?
?
語音識別技術概覽
語音識別就是把語音轉換為文字的技術。經過幾十年的發展,它已經成為目前人工智能領域發展的較為成熟的一個應用方向。那么看似神秘的語音識別技術背后的基本原理到底是怎么回事呢?鑒于篇幅原因,這里只簡單的解釋一下語音識別的基本原理。
?
目前,主流的語音識別系統多采用統計機器學習方法完成。一個典型的語音識別系統由以下幾個模塊所組成:
- 語音采集模塊。在此模塊中,麥克風錄入的語音通過采集之后得到一個數字化的語音信號表示,比如一個16k采樣率16bit的數字化語音表示,就是將每秒的語音表示為1,6000個16-bit的整數;
特征提取模塊。該模塊的主要任務是把采集的數字語音信號轉換為特征向量,供聲學模型處理; - 聲學模型。聲學模型用來表征人的語音跟語音識別產生的文本在聲音上的相似程度。傳統上通常使用隱含馬爾科夫模型-混合高斯模型(HMM-GMM),近些年多使用隱含模型科夫模型-深度神經網模型(HMM-DNN)或者其他改進模型表示。
- 發音詞典。發音詞典包含語音識別系統所能處理的所有的詞匯及其發音,發音詞典實際提供了聲學模型建模單元與語言模型建模單元間的映射關系。
- 語言模型。語言模型對系統所針對的語言進行建模,用來評估識別出的文本的“流暢程度”。目前應用最廣的一種是基于統計的N元文法(Ngram)及其變體。
- 解碼器。解碼器是語音識別系統的核心之一,其任務是對輸入的特征矢量,根據聲學模型和語言模型,尋找能夠以最大概率輸出該特征矢量的詞串,通常使用基于束搜索(beam search)的維特比算法完成這個搜索過程。
?
上面所述就是一般的語音識別系統的背后基本原理,在很多科普性的介紹中都有所涉及。實際上iDST的語音識別系統也落在上述介紹的基本框架中,但是iDST的語音識別系統為什么有這么高的準確率,有什么獨得之秘呢?
IDST語音識別系統
臺上一分鐘,臺下十年功。在阿里云年會上iDST語音識別系統所展示的超高準確率是建立在iDST語音團隊同學豐富的業界經驗和過去一年辛勤工作所產生的深厚積累上的。這里就簡單介紹一下iDST語音識別系統所有的獨到特點。
- 業內領先的聲學模型建模技術BLSTM
在語音識別的聲學模型方面,iDST團隊擁有業內最領先的BLSTM (bi-directional long-short-term-memory) 建模技術,可以通過序列建模的方式,同時使用語音時序序列中的歷史信息和“未來”序列信息;保證了聲學模型建模的最佳準確性,有效地提升語音識別的準確率,相比于上一代的基于深度神經網(DNN)的聲學模型建模方法,相對性能提升可以達到15%-20%。為了實現BLSTM技術,iDST語音組的同學還原創性的解決了BLSTM在訓練效率和實際部署中的延遲問題, 成為世界上第一個在工業實時系統中部署BLSTM技術的團隊, 關于該技術的介紹請參考云棲文社區的文章。
- 業內領先的超大規模的語言模型建模技術
正如上一章所說,語言模型在語音識別系統中的作用就是用來評估句子的通順程度。語言模型的一個核心指標是模型對測試文本的匹配程度(使用困惑度來表示)。在實際應用中,語言模型對領域的相關性越強,對語料的覆蓋度越高,識別效果就越好。為了增加語言模型的覆蓋度,保證對各個領域的識別性能。iDST借助阿里云的計算優勢,使用了全網語料作為訓練數據,自主開發了基于Max-Compute的并行語言模型訓練工具, 訓練產生了規模高達百億 ngram 條目的超大語言模型(模型文件大小高達數百G字節)。正是有了這樣大規模的語言模型,使得iDST的語音識別系統可以很好的識別很多生僻的詞,比如“羋月傳中的葵姑扮演者”這種新潮詞,比如古詩詞的識別,比如各種學科術語等等,都不在話下。
- 業內領先的語音識別解碼技術
語音識別解碼器是語音識別在工業界部署的核心問題。雖然解碼器的基本原理為人所知(維特比搜索),并且一個玩具的解碼器原型只需要200行左右的代碼就可以工作,但是一個真正工業級的解碼器確是目前語音識別中真正最具挑戰性的問題。
語音識別解碼是一個真正的計算密集型和內存密集型的計算流程。解碼器的第一個挑戰是,聲學模型(深度神經網)打分是一個典型的計算密集型過程(矩陣乘法),為了保證這一部分的效率,iDST的同學做了各種算法優化(量化解碼,模型壓縮等)和指令優化(針對各種硬件平臺),降低了這一部分的計算量。
解碼器中面臨的一個更大的挑戰是如何在語音識別中使用超大規模語言模型,因為巨大的模型可能使得解碼過程中內存成為瓶頸,而且解碼中對語言模型的反復查找會使計算成為瓶頸。 為了達到在解碼過程中使用超大語言模型的目的, iDST的同學對語言模型的存貯表示以及和解碼器的核心算法以及跟語言模型的交互方式進行了深度的定制。既節省了解碼時的語言模型內存耗費,又充分利用了解碼過程中的信息,減少了語言模型部分的計算量,使得在線使用成為可能。實際上,即使在整個世界上范圍內,能夠使用這種規模的語言模型用于單遍解碼的語音識別系統也屈指可數。
對應這部分,iDST的同學會寫相應的文章來闡述這一部分的奧秘。
?
- 模型的快速迭代和訓練
另外一個取得這么優秀性能的原因是模型的快速迭代和訓練。語音識別中的聲學模型和語言模型技術需要基于海量數據進行學習的,那么如何完成在海量數據上的快速迭代就變得尤為重要。在上面提到的大規模語言模型訓練工具之外, iDST還基于阿里云的基礎架構,構建了GPU集群的多機并行深度學習系統用來完成聲學模型的訓練(詳情請參考GPU訓練的文章 。這樣系統的快速迭代就變成了可能。
- 高性能計算支持
正如上面所述,語音識別本身是個計算密集型系統。為了保證演示當天達到最佳的效果,在年會當天,使用的HPC是阿里云帶GPU加速的新一代高性能計算平臺,單節點計算性能高達16TFLOPS,加上算法優化,保證了語音識別的實時響應速度。
?
好了,專為技術Geek們準備的揭秘就到這里了。如果還對其中的技術細節感興趣,請參考阿里iDST的云棲社區公眾號吧。
?
?
總結
以上是生活随笔為你收集整理的阿里云年会人机大战-技术大揭秘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MYSQL 更改数据库data存储目录
- 下一篇: 在WPF程序中打开网页:使用代理服务器并