ASR 做的其實就是以下這件事,
$$ \Pr(\text{words|sounds}) = \frac{\Pr(\text{sounds|words})}{\Pr(\text{sounds})} $$
當中我們視 $\Pr(\text{sounds})$ 為 uniform distribution ,不管它。
\
$\Pr(\text{words})$ 由 Language Model 負責,評估產生的
transcription 之合理性 (e.g 電腦聽聲音 vs 點老天呻吟)\
$\Pr(\text{sounds|words})$ 則是 Acoustic Model, 也就是前一講中用 Viterbi 所算的 Likelihood 。
我覺得自己之前做的投影片真的蠻好的XD (自己講),因此這一講中,只會偏重在原本寫的比較簡略的 Learning Problem , Evaluation 及 Decoding Problem 僅會附上程式碼及做定義。
在能夠將聲音訊號轉為數值向量給 machine 處理後,我們要怎麼判斷這串 vector 是 mapping 到哪一段文字呢? \
在進入 continuous ASR 前,讓我們先來想一想怎麼辨識一個 word ?想法是針對這個 word 建一個 model ,給定一段聲音訊號, output 該訊號 map 到此
word 的機率為多少。
上一回介紹了 LPC ,來做為我們抽取 feature 的一個方法,今天要來談談目前最常被使用的 feature - MFCC 。
語音辨識的基本架構中,第一步便是要把聲音訊號轉成可被紀錄的數位形式以供 machine 處理。科學家們從人類究竟是如何發出特定聲音作為出發點,去找出訊號當中哪些是屬於那個聲音 unique 的 feature,並移除那些無關的資訊 (e.g noise) ,並利用這些 extract 出來的 feature 來作為辨識的基本元素。
隨著變成菸酒生的日子逐漸逼近,最近開始重追尤達大師數位語音的連載,希望在進 Speech Lab 之前,將這些知識掌握地更加純熟,這個系列主要會雜揉以前在台大所修的 數位語音處理概論 以及在 KTH 所修的 Speech and Speaker Recognition 之相關內容。
前面提過 Boolearn Search 的其中一個問題在於, machine 是無腦地回傳文本,其回傳的順序並沒有任何意義 (可以試想一下使用 Google 搜尋時,一次動輒 $10^6$ 數量級以上的文本量,如果無序的話,你想要檢閱查找相關文件是一件多痛苦的事,那麼這個 IR system 有跟沒有是差不多的😅)。因此,我們引進 ranked retrieval 的概念,目標是讓文本能以其跟搜尋 query 的關聯性大小來做排序。
在做 Indexing 之前,我們需要將文本從各方來源中抽取出來,這些來源的 格式 相當多元(像是 html, md 等等 markup 或是與圖片相雜的 data ,可能還需要處理 encoding 的問題),反正就是挺亂的,需要做一些 processing 後,才可以用強大的 NLP tool 來統一處理。
這個系列主要會紀錄自己在 KTH 修習 Information Retrieval System 的一些筆記,備忘用,不會像之前的 Post 那麼詳細,但還是會加點自己的 remark 這樣。
題目連結
題目連結
題目連結
在 KTH 交換時選到的神課!想說把題解稍微紀錄一下 ✌️\
題目連結