Nikko Strom揭秘語音識(shí)別技術(shù):Alexa是怎樣煉成的?
點(diǎn)擊:946
A+ A-
所屬頻道:新聞中心
Nikko Strom,現(xiàn)任亞馬遜首席科學(xué)家,是 Echo 和 Alexa 項(xiàng)目的創(chuàng)始成員,在語音識(shí)別技術(shù)相關(guān)領(lǐng)域有著資深的研究及從業(yè)經(jīng)驗(yàn):
● 1997 年于瑞典皇家理工學(xué)院語音通信實(shí)驗(yàn)室獲得博士學(xué)位,后擔(dān)任MIT計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室研究員;
● 2000 年加入語音技術(shù)初創(chuàng)公司 Tellme Networks;
● 2007 年隨著 Tellme Networks 被微軟收購,加入微軟,推進(jìn)商業(yè)語音識(shí)別技術(shù)的前沿研究;
● 2011 年加入亞馬遜,擔(dān)任首席科學(xué)家,領(lǐng)導(dǎo)語音識(shí)別及相關(guān)領(lǐng)域的深度學(xué)習(xí)項(xiàng)目。
以下是 Nikko Strom 在本次大會(huì)上的演講。
先簡(jiǎn)單介紹下我們的產(chǎn)品。如果你買了 Amazon Echo,意味著你可以通過 Alexa 語音識(shí)別系統(tǒng)控制它,并與它對(duì)話,而且不需要拿遙控器。左邊(下圖)是 Holiday Season,是我們新加入的白色Echo和Dot,相信在座應(yīng)該有很多人比較偏愛白色的電子產(chǎn)品。
Echo 還可以與沒有內(nèi)置 Alexa 系統(tǒng)的家電進(jìn)行連接,如燈具、咖啡機(jī)、恒溫器等,只需要喚醒Alexa,就可以讓這些家電設(shè)備執(zhí)行一些命令。此外,開發(fā)者還可以通過工具包 Alexa Skills Kit,打造個(gè)性化的功能。
現(xiàn)如今,Echo已經(jīng)進(jìn)入了數(shù)百萬用戶的家中,每天它都在被大量地使用著,也讓我們得到了無法想象的數(shù)據(jù)量。
深度學(xué)習(xí)基礎(chǔ)框架
事實(shí)上,人耳并非每時(shí)每刻都在搜集語音信息,真正在“聽”的時(shí)間大約只占 10%,所以一個(gè)人成長(zhǎng)到 16歲時(shí),他/她所聽到的語音訓(xùn)練時(shí)間大概有 14016 個(gè)小時(shí)。
回到 Alexa,我們把數(shù)千個(gè)小時(shí)的真實(shí)語音訓(xùn)練數(shù)據(jù)存儲(chǔ)到 S3 中,使用 EC2 云上的分布式 GPU 集群來訓(xùn)練深度學(xué)習(xí)模型。
訓(xùn)練模型的過程中發(fā)現(xiàn),用 MapReduce 的方法效果并不理想,因?yàn)楣?jié)點(diǎn)之間需要頻繁地保持同步更新,不能再通過增加更多的節(jié)點(diǎn)來加速運(yùn)算。也可以這樣理解,就是GPU集群更新模型的計(jì)算速度非常之快,每秒都會(huì)更新幾次,每次的更新大約是模型本身的大小。也就是說,每一個(gè)線程(Worker)都要跟其它線程同步更新幾百兆的量,而這在一秒鐘的時(shí)間里要發(fā)生很多次。所以,MapReduce的方法效果并不是很好。
我們?cè)?Alexa 里的解決方法就是,使用幾個(gè)逼近算法(Approximations)來減少更新規(guī)模,將其壓縮 3個(gè)量級(jí)。這里是我們一篇 2015 年論文里的圖表,可以看到,隨著GPU線程的增加,訓(xùn)練速度加快。到 40 個(gè) GUP 線程時(shí),幾乎成直線上升,然后增速有點(diǎn)放緩。80 GPU 線程對(duì)應(yīng)著大約 55 萬幀/秒的速度,每一秒的語音大約包含 100 幀,也就是說這時(shí)的一秒鐘可以處理大約90分鐘的語音。前面我提到一個(gè)人要花 16 年的時(shí)間來學(xué)習(xí) 1.4 萬小時(shí)的語音,而用我們的系統(tǒng),大約 3 個(gè)小時(shí)就可以學(xué)習(xí)完成。
這就是 Alexa 大致的深度學(xué)習(xí)基礎(chǔ)架構(gòu)。
聲學(xué)模型
大家都知道,語音識(shí)別系統(tǒng)框架主要包括四大塊:信號(hào)處理、聲學(xué)模型、解碼器和后處理。
首先我們會(huì)將從麥克風(fēng)收集來的聲音,進(jìn)行一些信號(hào)處理,將語音信號(hào)轉(zhuǎn)化到頻域,從每 10 毫秒的語音中提出一個(gè)特征向量,提供給后面的聲學(xué)模型。聲學(xué)模型負(fù)責(zé)把音頻分類成不同的音素。接下來就是解碼器,可以得出概率最高一串詞串,最后一步是后處理,就是把單詞組合成容易讀取的文本。
在這幾個(gè)步驟中,或多或少都會(huì)用到機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的方法。我今天主要講一下聲學(xué)模型的部分。
聲學(xué)模型就是一個(gè)分類器(classifier),輸入的是向量,輸出的是語音類別的概率。這是一個(gè)典型的神經(jīng)網(wǎng)絡(luò)。底部是輸入的信息,隱藏層將向量轉(zhuǎn)化到最后一層里的音素概率。
這里是一個(gè)美式英語的 Alexa 語音識(shí)別系統(tǒng),所以就會(huì)輸出美式英語中的各個(gè)音素。在 Echo 初始發(fā)布的時(shí)候,我們錄了幾千個(gè)小時(shí)的美式英語語音來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,這個(gè)成本是很高的。當(dāng)然,世界上還有很多其它的語言,比如我們?cè)?016年9月發(fā)行了德語版的Echo,如果再重頭來一遍用幾千個(gè)小時(shí)的德語語音來訓(xùn)練,成本是很高的。所以,這個(gè)神經(jīng)網(wǎng)絡(luò)模型一個(gè)有趣的地方就是可以“遷移學(xué)習(xí)”,你可以保持原有網(wǎng)絡(luò)中其它層不變,只把最后的一層換成德語。
兩種不同的語言,音素有很多是不一樣的,但仍然有很多相同的部分。所以,你可以只使用少量的德語的訓(xùn)練數(shù)據(jù),在稍作改變的模型上就可以最終得到不錯(cuò)的德語結(jié)果。
“錨定嵌入”
在一個(gè)充滿很多人的空間里,Alexa 需要弄清楚到底誰在說話。開始的部分比較簡(jiǎn)單,用戶說一句喚醒詞“Alexa”,Echo上的對(duì)應(yīng)方向的麥克風(fēng)就會(huì)開啟,但接下來的部分就比較困難了。比如,在一個(gè)雞尾酒派對(duì)中,一個(gè)人說“Alexa,來一點(diǎn)爵士樂”,但如果他/她的旁邊緊挨著同伴一起交談,在很短的時(shí)間里都說話,那么要弄清楚到底是誰在發(fā)出指令就比較困難了。
這個(gè)問題的解決方案來自于2016年的一份論文《錨定語音檢測(cè)》(Anchored Speech Detection)。一開始,我們得到喚醒詞“Alexa”,我們使用一個(gè)RNN從中提取一個(gè)“錨定嵌入”(Anchor embedding),這代表了喚醒詞里包含語音特征。接下來,我們用了另一個(gè)不同的RNN,從后續(xù)的請(qǐng)求語句中提取語音特征,基于此得出一個(gè)端點(diǎn)決策。這就是我們解決雞尾酒派對(duì)難題的方法。
“雙連音片段”
Alexa里的語音合成技術(shù),也用在了Polly里。語音合成的步驟一般包括:
第一步,將文本規(guī)范化。如果你還記得的話,這一步驟恰是對(duì)“語音識(shí)別”里的最后一個(gè)步驟的逆向操作。 第二步,把字素轉(zhuǎn)換成音素,由此得到音素串。 第三步是關(guān)鍵的一步,也是最難的一步,就是將音素生成波形,也就是真正的聲音。 最后,就可以把音頻播放出來了。
Alexa擁有連續(xù)的語音合成。我們錄下了數(shù)小時(shí)人的自然發(fā)音的音頻,然后將其切割成非常小的片段,由此組成一個(gè)數(shù)據(jù)庫。這些被切割的片段被稱為“雙連音片段”(Di-phone segment),雙連音由一個(gè)音素的后半段和另一個(gè)音素的前半段組成,當(dāng)最終把語音整合起來時(shí),聲音聽起來的效果就比較好。
創(chuàng)建這個(gè)數(shù)據(jù)庫時(shí),要高度細(xì)致,保證整個(gè)數(shù)據(jù)庫里片段的一致性。另外一個(gè)重要環(huán)節(jié)是算法方面的,如何選擇最佳片段序列結(jié)合在一起形成最終的波形。首先要弄清楚目標(biāo)函數(shù)是什么,來確保得到最合適的“雙連音片段”,以及如何從龐大的數(shù)據(jù)庫里搜索到這些片段。比如,我們會(huì)把這些片段標(biāo)簽上屬性,我今天會(huì)談到三個(gè)屬性,分別是音高(pitch)、時(shí)長(zhǎng)(duration)和密度(intensity),我們也要用RNN為這些特征找到目標(biāo)值。之后,我們?cè)跀?shù)據(jù)庫中,搜索到最佳片段組合序列,然后播放出來。
(審核編輯: 林靜)
分享