想辦法用一句話告訴你DSP的每個部分在做什麼~~~

Acoustic Modelling

究竟要用Phoneme、Tri-Phone還是Word好呢?xD

Hidden Markov Model

經典三問題:算\(P(O| \lambda )\)、算Optimal Sequence (用Viterbi)、訓練Model(換句話說maximize \(P(O| \lambda )\)), 詳見開山祖師Rabiner的Tutorial

Viterbi Algorithm

用DP算機率最大的Optimal Sequence的演算法。

Baum-Welch Algorithm

基本上是由EM導出來的HMM Training Algorithm,可是只能保證local optimal。

Information Theory

基本上需要KL DivergenceJensen's Inequality

Vector Quantization

這是一種Dimensionality Reduction的方法,主要是說把一個Continuous Vector縮成只有\(T\)個bit的coding,所以就分成\(2^T\)個Cluster。

K-means and LBG

經典的Clustering演算法,K-means的正確性可以用EM證明,而LBG是一個比較好的Initialization方法,就是一開始用某種Heuristic的方法找兩個很遠的點再開始K-means,然後一直切半下去。

Segmental K-means

這是在做HMM的初始化的時候,搭配Viterbi,決定GMM要怎麼切的方法。詳見MIT的ASR Slides

Estimation Maximization (EM)

這實在是不好說,直接看寫好的版本An Introduction to Expectation-Maximization,一個我覺得很清楚的版本EM Demystified: An Expectation-Maximization Tutorial

Gaussian Mixture Model (GMM)

當你有39維MFCC的時候,就不能用Discrete的表示法做HMM每個state的observe probability,所以要用一把Gaussian來算xD(這部分可以很直觀地被NN取代)。

Classification and Regression Trees (CART)

就是Decision Tree Learning,也有很多進階版的,比如說複雜問題(?)

Language Model & Smoothing

Language Modeling Slides, Stanford CS124 現在比較潮的做法是RNNLM,出現強者Mikolov。

MFCC

Front-End把訊號轉成Vector的方法。(沒修過Signal and Systems實在不怎麼懂Orz)

Dynamic Time Warping

是個想辦法讓Test跟Reference訊號調整成同一個時間軸的方法,要定義一個好的Distance,在One Word、Closed Vocabulary中可以有不少作用。

Time Synchronous Viterbi Search

根據MAP Principle \(W^* = argmax_W P(W | X) = argmax_W P(X|W)P(W)\),前面的那個\(P(X|W)\)就是HMM的結果,後面的\(P(W)\)就是Language Model! 從Tri-Phone組成的HMM、Intra-Word Lexicon Tree到Inter-Word的Language Model,最後搜出最佳的word sequence~~~

Beam Search / Two Pass Search

限制、縮減(Pruning?)Search Space的方法,不過似乎也有One Pass的方法。

LVCSR

總覺得這個問題已經快解掉了,Data多的強權總是可以用超Deep超Recurrent的Model電所有人Orzzz

"Every time I fire a linguist, the performance of the speech recognizer goes up" -- Frederick Jelinek

還是去做Reinforcement Learning好了QQ