AI語音行業緊缺,成為全棧語音工程師究竟有多難?
語音識別基礎知識
【數學與統計學】
數學是所有學科的基礎,其中的高等數學、數理方程、泛函分析等課程是必要的基礎知識,機率論與數理統計也是語音識別的基礎學科。
【聲學與語言學】
聲學基礎、理論聲學、聲學測量等是聲學方面的基礎課程,有助於瞭解更多聲學領域的知識。語言學概論、語言哲學、語義最小論與語用多元論、語法化與語義圖等知識對於理解語言模型和語音互動UI設計非常有幫助。
【計算機學】
訊號系統、數字訊號處理、語音訊號處理、離散數學、資料結構、演算法導論、平行計算、C語言概論、Python語言、語音識別、深度學習等課程也是必備的基礎知識。
語音識別專業知識
語音識別的知識體系可以劃分為三個大的部分:專業基礎、支撐技能和應用技能。語音識別的專業基礎又包括了演算法基礎、資料知識和開源平臺,其中演算法基礎是語音識別系統的核心知識,包括了聲學機理、訊號處理、聲學模型、語言模型和解碼搜尋等。
【專業基礎】
演算法基礎
聲學機理:包括髮音機理、聽覺機理和語言機理,發音機理主要探討人類發聲器官和這些器官在發聲過程中的作用,而聽覺機理主要探討人類聽覺器官、聽覺神經及其辨別處理聲音的方式,語言機理主要探究人類語言的分佈和組織方式。這些知識對於理論突破和模型生成具有重要意義。
訊號處理:包括語音增強、噪聲抑制、回聲抵消、混響抑制、波束形成、聲源定位、聲源分離、聲源追蹤等。具體如下:
語音增強:這裡是狹義定義,指自動增益或者陣列增益,主要是解決拾音距離的問題,自動增益一般會增加所有訊號能量,而語音增強只增加有效語音訊號的能量。
噪聲抑制:語音識別不需要完全去除噪聲,相對來說通話系統中則必須完全去除噪聲。這裡說的噪聲一般指環境噪聲,比如空調噪聲,這類噪聲通常不具有空間指向性,能量也不是特別大,不會掩蓋正常的語音,只是影響了語音的清晰度和可懂度。這種方法不適合強噪聲環境下的處理,但是足以應付日常場景的語音互動。
混響消除:混響消除的效果很大程度影響了語音識別的效果。一般來說,當聲源停止發聲後,聲波在房間內要經過多次反射和吸收,似乎若干個聲波混合持續一段時間,這種現象叫做混響。混響會嚴重影響語音訊號處理,並且降低測向精度。
回聲抵消:嚴格來說,這裡不應該叫回聲,應該叫“自噪聲”。回聲是混響的延伸概念,這兩者的區別就是回聲的時延更長。一般來說,超過100毫秒時延的混響,人類能夠明顯區分出,似乎一個聲音同時出現了兩次,就叫做回聲。實際上,這裡所指的是語音互動裝置自己發出的聲音,比如Echo音響,當播放歌曲的時候若叫Alexa,這時候麥克風陣列實際上採集了正在播放的音樂和使用者所叫的Alexa聲音,顯然語音識別無法識別這兩類聲音。回聲抵消就是要去掉其中的音樂資訊而只保留使用者的人聲,之所以叫回聲抵消,只是延續大家的習慣,其實是不恰當的。
聲源測向:這裡沒有用聲源定位,測向和定位是不太一樣的,而消費級麥克風陣列做到測向就可以,定位則需要更多的成本投入。聲源測向的主要作用就是偵測到與之對話人類的聲音以便後續的波束形成。聲源測向可以基於能量方法,也可以基於譜估計,陣列也常用TDOA技術。聲源測向一般在語音喚醒階段實現,VAD技術其實就可以包含到這個範疇,也是未來功耗降低的關鍵因素。
波束形成:波束形成是通用的訊號處理方法,這裡是指將一定幾何結構排列的麥克風陣列的各麥克風輸出訊號經過處理(例如加權、時延、求和等)形成空間指向性的方法。波束形成主要是抑制主瓣以外的聲音干擾,這裡也包括人聲,比如幾個人圍繞Echo談話的時候,Echo只會識別其中一個人的聲音。
端點檢測:端點檢測,英語是Voice ActivityDetection,簡稱VAD,主要作用是區分一段聲音是有效的語音訊號還是非語音訊號。VAD是語音識別中檢測句子之間停頓的主要方法,同時也是低功耗所需要考慮的重要因素。VAD通常都用訊號處理的方法來做,之所以這裡單獨劃分,因為現在VAD的作用其實更加重要,而且通常VAD也會基於機器學習的方法來做。
特徵提取:聲學模型通常不能直接處理聲音的原始資料,這就需要把時域的聲音原始訊號透過某類方法提取出固定的特徵序列,然後將這些序列輸入到聲學模型。事實上深度學習訓練的模型不會脫離物理的規律,只是把幅度、相位、頻率以及各個維度的相關性進行了更多的特徵提取。
聲學模型:聲學模型是語音識別中最為關鍵的部分,是將聲學和計算機學的知識進行整合,以特徵提取部分生成的特徵作為輸入,併為可變長的特徵序列生成聲學模型分數。聲學模型核心要解決特徵向量的可變長問題和聲音訊號的多變性問題。事實上,每次所提到的語音識別進展,基本上都是指聲學模型的進展。聲學模型迭代這麼多年,已經有很多模型,我們把每個階段應用最為廣泛的模型介紹一下,其實現在很多模型都是在混用,這樣可以利用各個模型的優勢,對於場景的適配更加魯棒。
GMM,Gaussian Mixture Model,即高斯混合模型,是基於傅立葉頻譜語音特徵的統計模型,可以透過不斷迭代最佳化求取GMM中的加權係數及各個高斯函式的均值與方差。GMM模型訓練速度較快,聲學模型引數量小,適合離線終端應用。深度學習應用到語音識別之前,GMM-HMM混合模型一直都是優秀的語音識別模型。但是GMM不能有效對非線性或近似非線性的資料進行建模,很難利用語境的資訊,擴充套件模型比較困難。
HMM,Hidden Markov Model,即隱馬爾可夫模型,用來描述一個含有隱含未知引數的馬爾可夫過程,從可觀察的引數中確定該過程的隱含引數,然後利用這些引數來進一步分析。HMM是一種可以估計語音聲學序列資料的統計學分佈模型,尤其是時間特徵,但是這些時間特徵依賴於HMM的時間獨立性假設,這樣對語速、口音等因素與聲學特徵就很難關聯起來。HMM還有很多擴充套件的模型,但是大部分還只適應於小詞彙量的語音識別,大規模語音識別仍然非常困難。
DNN,Deep Neural Network,即深度神經網路,是較早用於聲學模型的神經網路,DNN可以提高基於高斯混合模型的資料表示的效率,特別是DNN-HMM混合模型大幅度地提升了語音識別率。由於DNN-HMM只需要有限的訓練成本便可得到較高的語音識別率,目前仍然是語音識別工業領域常用的聲學模型。
RNN,Recurrent Neural Networks,即迴圈神經網路,CNN,Convolutional NeuralNetworks,即卷積神經網路,這兩種神經網路在語音識別領域的應用,主要是解決如何利用可變長度語境資訊的問題,CNN/RNN比DNN在語速魯棒性方面表現的更好一些。其中,RNN模型主要包括LSTM(多隱層長短時記憶網路)、highway LSTM、Residual LSTM、雙向LSTM等。CNN模型包括了時延神經網路(TDNN)、CNN-DNN、CNN-LSTM-DNN(CLDNN)、CNN-DNN-LSTM、Deep CNN等。其中有些模型效能相近,但是應用方式不同,比如雙向LSTM和Deep CNN效能接近,但是雙向LSTM需要等一句話結束才能識別,而Deep CNN則沒有時延更適合實時語音識別。
語言模型:透過訓練語料學習詞之間的關係來估計詞序列的可能性,最常見的語言模型是N-Gram模型。近年,深度神經網路的建模方式也被應用到語言模型中,比如基於CNN及RNN的語言模型。
解碼搜尋:解碼是決定語音識別速度的關鍵因素,解碼過程通常是將聲學模型、詞典以及語言模型編譯成一個網路,基於最大後驗機率的方法,選擇一條或多條最優路徑作為語音識別結果。解碼過程一般可以劃分動態編譯和靜態編譯,或者同步與非同步的兩種模式。目前比較流行的解碼方法是基於樹複製的幀同步解碼方法。
語音識別資料知識
資料採集:主要是將使用者與機器對話的聲音資訊收集起來,一般分為近場和遠場兩個部分,近場採集一般基於手機就可完成,遠場採集一般需要麥克風陣列。資料採集同時還有關注採集環境,針對不同資料用途,語音採集的要求也很不一樣,比如人群的年齡分佈、性別分佈和地域分佈等。
資料清洗:主要是將採集的資料進行預處理,剔除不合要求的語音甚至是失效的語音,為後面的資料標註提供精確的資料。
資料標註:主要是將聲音的資訊翻譯成對應的文字,訓練一個聲學模型,通常要標註數萬個小時,而語音是時序訊號,所以需要的人力工時相對很多,同時由於人員疲憊等因素導致標註的錯誤率也比較高。如何提高資料標註的成功率也是語音識別的關鍵問題。
資料管理:主要是對標註資料的分類管理和整理,這樣更利於資料的有效管理和重複利用。
資料安全:主要是對聲音資料進行安全方便的處理,比如加密等,以避免敏感資訊洩露。
語音識別開源平臺
目前主流的開源平臺包括CMU Sphinx、HTK、Kaldi、Julius、iATROS、CNTK、TensorFlow等,CMU Sphinx是離線的語音識別工具,支援DSP等低功耗的離線應用場景。由於深度學習對於語音識別WER的下降具有明顯的作用,所以Kaldi、CNTK、TensorFlow等支援深度學習的工具目前比較流行,Kaldi的優勢就是整合了很多語音識別的工具,包括解碼搜尋等。具體的開源平臺彙總如表1所示。
【支撐技能】
聲學器件
傳聲器,通常稱為麥克風,是一種將聲音轉換成電子訊號的換能器,即把聲訊號轉成電訊號,其核心引數是靈敏度、指向性、頻率響應、阻抗、動態範圍、訊雜比、最大聲壓級(或AOP,聲學過載點)、一致性等。傳聲器是語音識別的核心器件,決定了語音資料的基本質量。
揚聲器,通常稱為喇叭,是一種把電訊號轉變為聲訊號的換能器件,揚聲器的效能優劣對音質的影響很大,其核心指標是TS引數。語音識別中由於涉及到回聲抵消,對揚聲器的總諧波失真要求稍高。
鐳射拾聲,這是主動拾聲的一種方式,可以透過鐳射的反射等方法拾取遠處的振動資訊,從而還原成為聲音,這種方法以前主要應用在竊聽領域,但是目前來看這種方法應用到語音識別還比較困難。
微波拾聲,微波是指波長介於紅外線和無線電波之間的電磁波,頻率範圍大約在 300MHz至300GHz之間,同鐳射拾聲的原理類似,只是微波對於玻璃、塑膠和瓷器幾乎是穿越而不被吸收。
高速攝像頭拾聲,這是利用高速攝像機來拾取振動從而還原聲音,這種方式需要可視範圍和高速攝像機,只在一些特定場景裡面應用。
計算晶片
DSP,Digital Signal Processor,數字訊號處理器,一般採用哈佛架構,具有低功耗運算快等優點,主要應用在低功耗語音識別領域。
ARM,Acorn RISC Machine,是英國公司設計的一種RISC處理器架構,具有低功耗高效能的特點,在移動網際網路領域廣泛應用,目前IOT領域,比如智慧音響也是以ARM處理器為主。
FPGA,Field-Programmable Gate Array,現場可程式設計門陣列,是ASIC領域中的一種半定製電路,既解決了固定定製電路的不足,又克服了可程式設計器件閘電路有限的缺點。FPGA在平行計算領域也非常重要,大規模的深度學習也可以基於FPGA計算實現。
GPU,Graphics Processing Unit,圖形處理器,是當前深度學習領域最火的計算架構,事實上深度學習領域用到的是GPGPU,主要是進行大規模計算的加速,GPU通常的問題就是功耗過大,所以一般應用到雲端的伺服器叢集。
另外,還有NPU、TPU等新興的處理器架構,主要為深度學習演算法進行專門的最佳化,由於還沒有大規模使用,這裡先不詳敘。
聲學結構
陣列設計,主要是指麥克風陣列的結構設計,麥克風陣列一般來說有線形、環形和球形之分,嚴謹的應該說成一字、十字、平面、螺旋、球形及無規則陣列等。至於麥克風陣列的陣元數量,也就是麥克風數量,可以從2個到上千不等,因此陣列設計就要解決場景中的麥克風陣列陣型和陣元數量的問題,既保證效果,又控制成本。
聲學設計,主要是指揚聲器的腔體設計,語音互動系統不僅需要收聲,還需要發聲,發聲的質量也特別重要,比如播放音樂或者影片的時候,音質也是非常重要的參考指標,同時,音質的設計也將影響語音識別的效果,因此聲學設計在智慧語音互動系統也是關鍵因素。
【應用技能】
語音識別的應用將是語音互動時代最值得期待的創新,可以類比移動互聯時代,最終黏住使用者的還是語音應用程式,而當前的人工智慧主要是基礎建設,AI的應用普及還是需要一段時間。雖然Amazon的Alexa已經有上萬個應用,但是從使用者反饋來看,目前主要還是以下幾個核心技術點的應用。
語音控制,事實上是當前最主要的應用,包括了鬧鐘、音樂、地圖、購物、智慧家電控制等等功能,語音控制的難度相對也比較大,因為語音控制要求語音識別更加精準、速度更快。
語音轉錄,這在比如會議系統、智慧法院、智慧醫療等領域具有特殊應用,主要是實時將使用者說話的聲音轉錄成文字,以便形成會議紀要、審判記錄和電子病歷等。
語言翻譯,主要是在不同語言之間進行切換,這在語音轉錄的基礎上增加了實時翻譯,對於語音識別的要求更高。
下面這三種識別,可以歸為語音識別的範疇,也可以單獨列成一類,這裡我們還是廣義歸納到語音識別的大體系,作為語音識別的功能點更容易理解。
聲紋識別,聲紋識別的理論基礎是每一個聲音都具有獨特的特徵,透過該特徵能將不同人的聲音進行有效的區分。聲紋的特徵主要由兩個因素決定,第一個是聲腔的尺寸,具體包括咽喉、鼻腔和口腔等,這些器官的形狀、尺寸和位置決定了聲帶張力的大小和聲音訊率的範圍。第二個決定聲紋特徵的因素是發聲器官被操縱的方式,發聲器官包括唇、齒、舌、軟顎及顎肌肉等,他們之間相互作用就會產生清晰的語音。而他們之間的協作方式是人透過後天與周圍人的交流中隨機學習到的。聲紋識別常用的方法包括模板匹配法、最近鄰方法、神經元網路方法、VQ聚類法等。
情感識別,主要是從採集到的語音訊號中提取表達情感的聲學特徵,並找出這些聲學特徵與人類情感的對映關係。情感識別當前也主要採用深度學習的方法,這就需要建立對情感空間的描述以及形成足夠多的情感語料庫,這也是能夠解決目前電話機器人好不好用的最佳解決方案。情感識別是人機互動中體現智慧的應用,但是到目前為止,技術水平還沒有達到產品應用的程度。
哼唱識別,主要是透過使用者哼唱歌曲的曲調,然後透過其中的旋律同音樂庫中的資料進行詳細分析和比對,最後將符合這個旋律的歌曲資訊提供給使用者。目前這項技術在音樂搜尋中已經使用,識別率可以達到80%左右。
語音識別現狀和趨勢
目前來看,語音識別的精度和速度比較取決於實際應用環境,在安靜環境、標準口音、常見詞彙上的語音識別率已經超過95%,完全達到了可用狀態,這也是當前語音識別比較火熱的原因。隨著技術的發展,現在口音、方言、噪聲等場景下的語音識別也達到了可用狀態,但是對於強噪聲、超遠場、強干擾、多語種、大詞彙等場景下的語音識別還需要很大的提升。當然,多人語音識別和離線語音識別也是當前需要重點解決的問題。
雖然已經將遠場語音互動技術大規模量產應用,但是還有很多技術難點需要突破,例如超遠場、區域性場和分佈場的語音互動問題,解決這些問題僅靠演算法和模型不行,需要從器件、晶片、演算法、資料、應用等全鏈條考慮,難度非常大。
能夠真正落地到實際產品之中,從而改變我們的生活,哪怕只有一點點,進而可以繼續帶動已經很長時間沒有理論突破的聲學等技術發展。
行業緊缺兩類人才非常:
一類就是AI架構師,可以打通整個語音互動體系的人才。這類人才一般需要全棧的語音智慧知識,不僅僅只是聲學或者深度學習技術,而且還需要了解諸如材料、器件、晶片等硬體知識,同時對於市場和產品還具有敏銳的洞察力。AI架構師應該站得更高、看得更遠,不侷限於某一個技術鏈條,而是關心整體體驗好不好。
另外一類是AI產品經理。這類人才需要懂得前端做什麼,後端做什麼,能夠提供哪些技術,每個技術做到什麼程度,這都必須瞭解。另外一方面,這類人才還要懂使用者需求,懂得這個需求能給使用者帶來什麼幫助,解決什麼問題。此外,這個產品大概定在什麼價位,應該用什麼IT設計,這都是AI產品經理需要挑戰的關鍵問題。
這樣的人才該怎麼培養呢?
就目前來說,這兩類人才必須靠AI公司燒錢才能培養出來。AI架構師和AI產品經理現在來看還無法僅憑學習達到公司要求,必須要結合理論和實踐辛苦耕耘,甚至不得不跳些坑才能成長為合格的人才。
如果市場上有好的AI架構師或AI產品經理,一家企業願意給多高的薪酬?
真正優秀的這兩類人才,目前全球給出的Package超過百萬也很正常。這兩類人才的需求量未來會非常大,建議技術人員可以多往這兩個方向轉型,當然有些技術人員轉型過程中可能會損失一些當前收益。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69925861/viewspace-2649946/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CosyVoice: 多語言大規模語音生成模型的全棧解決方案模型全棧
- 2019年如何成為全棧工程師?全棧工程師
- 成為Java全棧工程師的步驟Java全棧工程師
- 普通程式設計師該如何成為全棧工程師程式設計師全棧工程師
- AI語音巨頭鏖戰語音晶片市場AI晶片
- 如何成為一名優秀的全棧工程師全棧工程師
- 【語音之家】AI產業沙龍—— 網易語音AI技術:從內容安全到內容品質AI產業
- 教育行業AI應用Cerebrium建立實時RAG語音智慧體行業AI智慧體
- 基於React-Native0.55.4的語音識別專案全棧方案React全棧
- 全棧工程師為啥能夠逆襲?全棧工程師
- 為啥大公司只要全棧工程師?全棧工程師
- 除了智慧音響,AI語音還可以用在哪裡?AI
- 全棧工程師很難找?JNPF幫你分分鐘搞定!全棧工程師
- 一群年輕的工程師打造的語音識別引擎工程師
- 【Recorder.js+百度語音識別】全棧方案技術細節JS全棧
- 如何用Python語音合成,以及文字轉語音~Python
- AI都能自主研發藥物了,全智慧語音還有多久?AI
- AI語音:ChatTTS 真有點東西啊!AITTS
- AI語音,助你完美應對催婚AI
- 如何成為一名自然語言處理工程師自然語言處理工程師
- 【AI 全棧 SOTA 綜述 】這些你都不知道,怎麼敢說會 AI?【語音識別原理 + 實戰】AI全棧
- 語音轉文字工具,語音轉文字怎樣轉?
- 你想當全棧工程師嗎?全棧工程師
- 百度地圖行業首發語音定製功能,20分鐘即可為使用者定製個人語音包地圖行業
- c語音實驗1作業
- 小林同學智慧AI大模型語音助手AI大模型
- 趣味AI語音電話——鼠年拜年新姿勢AI
- 樹莓派語音互動--語音輸入識別樹莓派
- 語音的關鍵聲學特徵(語音情感特徵提取)特徵
- 新一代 Kaldi: 支援 JavaScript 進行本地語音識別和語音合成啦!JavaScript
- [ 招聘 | 上海 ] 軟體工程師 / 全棧工程師 / 晶片設計工程師軟體工程工程師全棧晶片
- 想成為全棧工程師,要做到哪幾點?全棧工程師
- 全棧工程師為啥值40W的年薪?全棧工程師
- 語音遊戲是否可以成為Alexa擴張的助推器?遊戲
- 活用Excel,成為真正的“全戰”工程師Excel工程師
- 為語音標註提供資料支援
- 微信語音怎麼提取作為證據?教你微信語音提取證據方法
- 人工智慧技術走向成熟,AI語音行業迎來廣闊發展前景人工智慧AI行業