想辦法用一句話告訴你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 Divergence跟Jensen'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
- Achieving Human Parity in Conversational Speech Recognition
- Deep Speech 2: End-to-End Speech Recognition in English and Mandarin
還是去做Reinforcement Learning好了QQ