3.10 觸發字檢測-深度學習第五課《序列模型》-Stanford吳恩達教授

觸發字檢測 (Trigger Word Detection)

現在你已經學習了很多關於深度學習和序列模型的內容,於是我們可以真正去簡便地描繪出一個觸發字系統(a trigger word system),就像上節視頻中你看到的那樣。隨着語音識別的發展,越來越多的設備可以通過你的聲音來喚醒,這有時被叫做觸發字檢測系統(rigger word detection systems)。我們來看一看如何建立一個觸發字系統。

在這裏插入圖片描述

觸發字系統的例子包括Amazon echo,它通過單詞Alexa喚醒;還有百度DuerOS設備,通過"小度你好"來喚醒;蘋果的SiriHey Siri來喚醒;Google Home使用Okay Google來喚醒,這就是觸發字檢測系統。假如你在臥室中,有一臺Amazon echo,你可以在臥室中簡單說一句: Alexa, 現在幾點了?就能喚醒這個設備。它將會被單詞"Alexa"喚醒,並回答你的詢問。如果你能建立一個觸發字檢測系統,也許你就能讓你的電腦通過你的聲音來執行某些事,我有個朋友也在做一種用觸發字來打開的特殊的燈,這是個很有趣的項目。但我想教會你的,是如何構建一個觸發字檢測系統。

在這裏插入圖片描述

有關於觸發字檢測系統的文獻,還處於發展階段。對於觸發字檢測,最好的算法是什麼,目前還沒有一個廣泛的定論。我這裏就簡單向你介紹一個你能夠使用的算法好了。現在有一個這樣的RNN結構,我們要做的就是把一個音頻片段(an audio clip)計算出它的聲譜圖特徵(spectrogram features)得到特徵向量 x<1>,x<2>,x<3>x^{<1>},x^{<2>},x^{<3>}\cdots ,然後把它放到RNN中,最後要做的,就是定義我們的目標標籤 yy 。假如音頻片段中的這一點是某人剛剛說完一個觸發字,比如"Alexa",或者"小度你好" 或者"Okay Google",那麼在這一點之前,你就可以在訓練集中把目標標籤都設爲0,然後在這個點之後把目標標籤設爲1。假如在一段時間之後,觸發字又被說了一次,比如是在這個點說的,那麼就可以再次在這個點之後把目標標籤設爲1。這樣的標籤方案對於RNN來說是可行的,並且確實運行得非常不錯。不過該算法一個明顯的缺點就是它構建了一個很不平衡的訓練集(a very imbalanced training set),0的數量比1多太多了。

這裏還有一個解決方法,雖然聽起來有點簡單粗暴,但確實能使其變得更容易訓練。比起只在一個時間步上去輸出1,其實你可以在輸出變回0之前,多次輸出1,或說在固定的一段時間內輸出多個1。這樣的話,就稍微提高了1與0的比例,這確實有些簡單粗暴。在音頻片段中,觸發字剛被說完之後,就把多個目標標籤設爲1,這裏觸發字又被說了一次。說完以後,又讓RNN去輸出1。在之後的編程練習中,你可以進行更多這樣的操作,我想你應該會對自己學會了這麼多東西而感到自豪。我們僅僅用了一張幻燈片來描述這種複雜的觸發字檢測系統。在這個基礎上,希望你能夠實現一個能有效地讓你能夠檢測出觸發字的算法,不過在編程練習中你可以看到更多的學習內容。這就是觸發字檢測,希望你能對自己感到自豪。因爲你已經學了這麼多深度學習的內容,現在你可以只用幾分鐘時間,就能用一張幻燈片來描述觸發字能夠實現它,並讓它發揮作用。你甚至可能在你的家裏用觸發字系統做一些有趣的事情,比如打開或關閉電器,或者可以改造你的電腦,使得你或者其他人可以用觸發字來操作它。

這是深度學習課程最後一個技術視頻,所以總結一下我們對序列模型的學習。我們學了RNN,包括GRULSTM,然後在上一週我們學了詞嵌入(word embeddings),以及它們如何學習詞彙的表達(how they learn representations of words)。在這周還學了注意力模型(the attention model)以及如何使用它來處理音頻數據(audio data)。希望你在編程練習中實現這些思想的時候,能夠體會到諸多樂趣。接下來我們來看最後一個視頻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章