語音識別怎麼就能把語音變成字兒呢?深度講解(2)

如今2017年大半年已經過去了,不知道大家的願望是否都已經在逐步接近的過程當中?

自從上一篇文章《我想知道AI人機交互系統後臺是怎麼工作的?深度講解》獲得一批科技愛好者的喜歡之後,小編也

稍微總結了一下其他幾種人工智能基礎技術原理,來繼續給大家分享下去。

在AI越來越普遍令大家感到新鮮的同時,一些專業名詞也讓大家開始熟悉起來,起碼也都能瞭解到一些術語所代表的含義。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

例如:語音識別就是把語音信息變成文字的技術;自然語言處理就是能讓機器人理解人類通用語言的技術;人臉識別就是拍

個照就能認出你是誰的技術。不能不說技術的普及,生活水平的提高會讓人們對技術基礎的理解程度也越來越高,接受

能力也變得很高。

經典案例:90年代我國開始研究二維碼,但是大家並不熟悉,關鍵在於沒有產品使得二維碼變得普及,幾年前微信

和支付寶開始率先使用二維碼支付後,二維碼迅速成為大街小巷最普及的東西,大家從一開始的質疑到將信將疑最後變

成信任,這就是技術普及的力量,讓這種新鮮的技術變成一種社會的常識。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

這篇文章我會詳細給大家解釋一下語音識別技術為什麼能把語音信號變成文字?

過程的第一部分就是發送一段語音信號,有點像是心電圖頻率的波動,下圖我們先介紹一下語音識別的整個流程,先有

個概念。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

語音識別流程圖

這段音頻進入語音識別引擎之後,就會送出識別到的文本,我們將這個文本發送給語義分析並處理,進而得到相似度最

高的答案,併合成文本發送到語音合成引擎之中進行語音輸出。

那麼重點來了這個【ASR】是怎麼讓語音變成文字的?

接下來我們繼續分解,看下圖

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

語音預處理

語音信號通過我們的接口送進語音引擎中,這段語音信號的質量其實是比較差的,這段語音有周圍的噪聲,機器本身噪

聲,所以我們先要做的處理就是降噪、回聲消除、端點檢測,可能大家不是很理解回聲消除是怎麼抑制回聲的,我給個

原理圖示大家應該就明白了

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

做完了語音預處理之後,把相對比較純淨的信號發送給特徵提取部分,這個部分主要幹什麼呢?

我們人和人是不同的,膚色、身高、體重、樣子這些都是特徵,而語音部分我們提取什麼呢?信號頻率、振幅,這其實

就是每個人音色不同的祕密所在,將這些特徵提取送到語音識別引擎的聲學模型中去。它會自動匹配這些語音信息最大

概率的發音漢字。說白了就是這個讀音是哪個漢字的讀法,然後把這個漢字單獨拎出來。

其實什麼是聲學模型呢?簡單來講就是一種刻畫(拼音讀法)韻母a、o、e,聲母b、p、m這些的模型,那這些模型是怎

麼來的?它是怎麼知道這個字怎麼讀的呢?這個時候我們就需要輸入一些音頻訓練集了,例如我們正常說話一段話,同

時輸入剛才說的那一段話的文本,機器會自動取出其中不同的因素,並且拿去繼續訓練模型,修正誤區。這樣對於機器

算法來說,有了輸入和輸出,還能不斷優化自身模型。算法是不是很神奇。這些不同因素數據會先進行預處理,例如百

度就做了一定的加噪處理,這樣在噪聲環境下魯棒。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

其中語音識別模塊除了聲學模型之外還有一個同等重要的模塊就是語言模塊,什麼叫語言模塊呢?就是刻畫文本和文本

之間概率權重的。那麼語言模型是怎麼來的,假如我們要想做醫學領域的語言模型,那就要讓它去學習很多醫學術語,

這個時候就需要我們準備這些術語做成一個詞表,但是同樣需要數據清洗,原始數據會有些垃圾,在做一些權重的正規

化,並送到模型中去訓練,從而得出或者優化原有模型。簡單說你提前給醫學領域的專用術語背下來了,下次一聽到相

關的語音你就能記起來這個專用術語。

例如【板藍根】,訓練之後一聽到這個語音就不會識別成【版爛根】

這樣我們最終就能得到這個語音識別的模型,並且我們可以通過繼續迭代來優化這個模型

既然模型有了,那怎麼看好還是差呢?有幾個方面來分辨。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

理想音頻就是識別質量較好的情況,但是現實生活中語音識別往往回因為各種情況導致識別效果不佳,比如丟音,比如

你按下手機麥克風按鈕時,還沒有啟動錄音你就開始說話了,那沒啟動時說的語音就被丟棄了,這種情況識別就差很多

了,什麼叫截幅呢?就是一般語音識別都是用兩個字節來表示一個語音的取值範圍,當你的增益太大就會被自動截掉,

識別的效果也較差了。

回過頭來,我們剛才所得到的語音訓練模型只是一種特定情況下得到的語音模型,不具備普適性。為何這麼說呢?

我們所得到的醫學領域模型,假設是用手機錄音採集的語料,那麼這個模型就是近場識別模型,一旦同樣的術語【板藍

根】你用手機詢問就能回答正確,但是你一旦用音箱遠場詢問,那很可能就得出錯誤的回答,這叫聲學一致性。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)


同樣,不同領域也需要文本一致性,你希望這個領域能多識別該領域的專業詞彙那就需要多訓練這個領域的核心詞彙,

否則就會出現【板藍根】的情況。

語音識別怎麼就能把語音變成字兒呢?深度講解(2)

最後,通過不斷的獲取到不同的音頻數據、文本數據,並繼續迭代優化,我們會得到更好的模型,識別更準的效果。

好了,這就是語音識別的細節,這也是一種科技的魅力,完成了我們看似簡單的動作。

如果大家喜歡,請多關注多打賞,值得學習多收藏,有問題請留言,作者會一一解答。

相關推薦

推薦中...