如何用RNN實現(xiàn)語音識別板祝?

姓名:劉亞寧 ? ? 學(xué)號:17101223434

轉(zhuǎn)載自:https://www.leiphone.com/news/201712/6F577yaQueXAppZG.html稼钩,有刪節(jié)狞换。

【嵌牛導(dǎo)讀】:循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)已經(jīng)在眾多自然語言處理中取得了大量的成功以及廣泛的應(yīng)用。但是镶骗,網(wǎng)上目前關(guān)于RNNs的基礎(chǔ)介紹很少,本文便是介紹RNNs的基礎(chǔ)知識躲雅,原理以及在自然語言處理任務(wù)重是如何實現(xiàn)的鼎姊。文章內(nèi)容根據(jù)雷鋒網(wǎng)AI研習(xí)社線上分享視頻整理而成。

【嵌牛鼻子】:RNN相赁、語音識別相寇、人工智能

【嵌牛提問】:如何用循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)語音識別?

【嵌牛正文】:在近期雷鋒網(wǎng)AI研習(xí)社的線上分享會上钮科,來自平安科技的人工智能實驗室的算法研究員羅冬日為大家普及了RNN的基礎(chǔ)知識唤衫,分享內(nèi)容包括其基本機構(gòu),優(yōu)點和不足跺嗽,以及如何利用LSTM網(wǎng)絡(luò)實現(xiàn)語音識別战授。

羅冬日分享的RNN主要有:

普通RNN結(jié)構(gòu)

普通RNN的不足

LSTM單元

GRU單元

采用LSTM實現(xiàn)語音識別的例子

RNN和CNN的區(qū)別

普通卷積神經(jīng)網(wǎng)絡(luò)(CNN)處理的是“靜態(tài)”數(shù)據(jù),樣本數(shù)據(jù)之間獨立桨嫁,沒有關(guān)系植兰。

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)處理的數(shù)據(jù)是“序列化”數(shù)據(jù)。?訓(xùn)練的樣本前后是有關(guān)聯(lián)的璃吧,即一個序列的當(dāng)前的輸出與前面的輸出也有關(guān)楣导。比如語音識別,一段語音是有時間序列的畜挨,說的話前后是有關(guān)系的筒繁。

總結(jié):在空間或局部上有關(guān)聯(lián)圖像數(shù)據(jù)適合卷積神經(jīng)網(wǎng)絡(luò)來處理,在時間序列上有關(guān)聯(lián)的數(shù)據(jù)適合用循環(huán)時間網(wǎng)絡(luò)處理巴元。但目前也會用卷積神經(jīng)網(wǎng)絡(luò)處理語音問題毡咏, 或自然言語理解問題,其實也是把卷積神經(jīng)網(wǎng)絡(luò)的計算方法用到這上面逮刨。

RNN 的基本結(jié)構(gòu)和結(jié)構(gòu)展開示意圖:

普通RNN不足之處

首先是神經(jīng)網(wǎng)絡(luò)里面的計算呕缭,可以大致分為三類:函數(shù)合成,函數(shù)相加修己,加權(quán)計算恢总。

在計算過程中,經(jīng)常會用到激活函數(shù)睬愤,比如Sigmoid激活函數(shù)片仿。殘差在往前傳播的過程中,每經(jīng)過一個Sigmoid函數(shù)尤辱,就要乘以一個Sigmoid函數(shù)的導(dǎo)數(shù)值砂豌,殘差值至少會因此消減為原來的0.25倍厢岂。神經(jīng)網(wǎng)絡(luò)每多一層,殘差往前傳遞的時候奸鸯,就會減少至少3/4咪笑。如果層數(shù)太多,殘差傳遞到前面已經(jīng)為0娄涩,導(dǎo)致前層網(wǎng)絡(luò)中國呢的參數(shù)無法更新窗怒,這就是梯度消失。

LSTM單元和普通RNN單元的區(qū)別

主要大的區(qū)別是蓄拣,采用一個叫“細(xì)胞狀態(tài)(state)”的通道貫穿了整個時間序列扬虚。

通過精心設(shè)計的稱作“門”的結(jié)構(gòu)來去除或增加信息到細(xì)胞狀態(tài)的能力。

"忘記門”

“輸入門”的打開關(guān)閉也是由當(dāng)前輸入和上一個時間點的輸出決定的球恤。

“輸出門”辜昵,控制輸出多少,最終僅僅會輸出確定輸出的那部分咽斧。

所有的公式匯總:

增加peephole的LSTM單元

讓幾個“門”的輸入數(shù)據(jù)除了正常的輸入數(shù)據(jù)和上一個時刻的輸出以外堪置,再接受“細(xì)胞狀態(tài)”的輸入。

GRU單元

它是各種變種之一张惹,將“忘記門”和“輸入們”合成了一個單一的“更新門”舀锨,同時還混合了細(xì)胞狀態(tài)和隱藏狀態(tài)。

接下來用RNN做一個實驗宛逗,給大家介紹一個簡單的語音識別例子:

關(guān)于LSTM+CTC背景知識

2015年坎匿,百度公開發(fā)布的采用神經(jīng)網(wǎng)絡(luò)的LSTM+CTC模型大幅度降低了語音識別的錯誤率。采用這種技術(shù)在安靜環(huán)境下的標(biāo)準(zhǔn)普通話的識別率接近97%雷激。

CTC是Connectionist Temporal Classification 的縮寫替蔬,詳細(xì)的論文介紹見論文“Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks”

CTC的計算實際上是計算損失值的過程,就像其他損失函數(shù)一樣屎暇,它的計算結(jié)果也是評估網(wǎng)絡(luò)的輸出值和真實差多少承桥。

聲音波形示意圖

在開始之前,需要對原始聲波進(jìn)行數(shù)據(jù)處理根悼,輸入數(shù)據(jù)是提取過聲學(xué)特征的數(shù)據(jù)凶异,以幀長25ms、幀移10ms的分幀為例番挺,一秒鐘的語音數(shù)據(jù)大概會有100幀左右的數(shù)據(jù)。

采用MFCC提取特征屯掖,默認(rèn)情況下一幀語音數(shù)據(jù)會提取13個特征值玄柏,那么一秒鐘大概會提取100*13個特征值。用矩陣表示是一個100行13列的矩陣贴铜。

把語音數(shù)據(jù)特征提取完之后粪摘,其實就和圖像數(shù)據(jù)差不多了瀑晒。只不過圖像數(shù)據(jù)把整個矩陣作為一個整體輸入到神經(jīng)網(wǎng)絡(luò)里面處理,序列化數(shù)據(jù)是一幀一幀的數(shù)據(jù)放到網(wǎng)絡(luò)處理徘意。

如果是訓(xùn)練英文的一句話苔悦,假設(shè)輸入給LSTM的是一個100*13的數(shù)據(jù),發(fā)音因素的種類數(shù)是26(26個字母)椎咧,則經(jīng)過LSTM處理之后玖详,輸入給CTC的數(shù)據(jù)要求是100*28的形狀的矩陣(28=26+2)。其中100是原始序列的長度勤讽,即多少幀的數(shù)據(jù)蟋座,28表示這一幀數(shù)據(jù)在28個分類上的各自概率。在這28個分類中脚牍,其中26個是發(fā)音因素向臀,剩下的兩個分別代表空白和沒有標(biāo)簽。

設(shè)計的基本網(wǎng)絡(luò)機構(gòu)

原始的wav文件經(jīng)過聲學(xué)特征提取變成N*13诸狭,N代表這段數(shù)據(jù)有多長券膀,13是每一幀數(shù)據(jù)有多少特征值。N不是固定的驯遇。然后把N*13矩陣輸入給LSTM網(wǎng)絡(luò)芹彬,這里涉及到兩層雙向LSTM網(wǎng)絡(luò),隱藏節(jié)點是40個妹懒,經(jīng)過LSTM網(wǎng)絡(luò)之后雀监,如果是單向的,輸出會變成40個維度眨唬,雙向的就會變成80個維度会前。再經(jīng)過全連接,對這些特征值分類匾竿,再經(jīng)過softmax計算各個分類的概率瓦宜。后面再接CDC,再接正確的音素序列岭妖。

真實的語音識別環(huán)境要復(fù)雜很多临庇。實驗中要求的是標(biāo)準(zhǔn)普通話和安靜無噪聲的環(huán)境。

如果對代碼講解(詳細(xì)代碼講解請點擊視頻)感興趣的話昵慌,可以復(fù)制鏈接中的代碼:https://github.com/thewintersun/tensorflowbook/tree/master/Chapter6

運行結(jié)果如下:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末假夺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斋攀,更是在濱河造成了極大的恐慌已卷,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淳蔼,死亡現(xiàn)場離奇詭異侧蘸,居然都是意外死亡裁眯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門讳癌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穿稳,“玉大人,你說我怎么就攤上這事晌坤》晁遥” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵泡仗,是天一觀的道長埋虹。 經(jīng)常有香客問我,道長娩怎,這世上最難降的妖魔是什么搔课? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮截亦,結(jié)果婚禮上爬泥,老公的妹妹穿的比我還像新娘。我一直安慰自己崩瓤,他們只是感情好袍啡,可當(dāng)我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著却桶,像睡著了一般境输。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颖系,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天嗅剖,我揣著相機與錄音,去河邊找鬼嘁扼。 笑死信粮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趁啸。 我是一名探鬼主播强缘,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼不傅!你這毒婦竟也來了旅掂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤访娶,失蹤者是張志新(化名)和其女友劉穎商虐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡称龙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了戳晌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲫尊。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沦偎,靈堂內(nèi)的尸體忽然破棺而出疫向,到底是詐尸還是另有隱情,我是刑警寧澤豪嚎,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布搔驼,位于F島的核電站,受9級特大地震影響侈询,放射性物質(zhì)發(fā)生泄漏舌涨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一扔字、第九天 我趴在偏房一處隱蔽的房頂上張望囊嘉。 院中可真熱鬧,春花似錦革为、人聲如沸扭粱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琢蛤。三九已至,卻和暖如春抛虏,著一層夾襖步出監(jiān)牢的瞬間博其,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工嘉蕾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贺奠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓错忱,卻偏偏與公主長得像儡率,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子以清,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 承接前面的《淺談機器學(xué)習(xí)基礎(chǔ)》儿普、《淺談深度學(xué)習(xí)基礎(chǔ)》和《淺談自然語言處理基礎(chǔ)》,主要參考了《解析深度學(xué)習(xí):語音識別...
    我偏笑_NSNirvana閱讀 23,501評論 6 67
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 翻譯論文匯總:https://gith...
    SnailTyan閱讀 9,912評論 0 8
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 翻譯論文匯總:https://gith...
    SnailTyan閱讀 36,041評論 3 12
  • 管道機制一開始是UNIX中出現(xiàn)的掷倔,一個程序的輸出直接成為下一個程序的輸入眉孩,就像水流過管道一樣方便(類似于函數(shù)式編程...
    ArimaKisho閱讀 13,538評論 0 0
  • 01 晚上和串姐吃飯時,看到師弟發(fā)來微信: 師弟這么說,是因為今天群里有人說看到師妹和另一個師弟吃飯的事情浪汪。等我看...
    果二閱讀 544評論 0 0