HTK 第三章 模型訓練示例

chinabing發表於2015-01-07

無論是中文還是英文,以tri-phone為基元的建模方案是目前較為成熟的方案;

模型訓練流程主要有三步:mono-phone訓練、tri-phone訓練和狀態繫結的tri-phone訓練

以中文建模為例,中文有84個phone。

1. mono-phone


Prototype HMM Definition(proto): mono-phone模型的模板,單高斯39維,均值為0,方差為1。

HCompV:計算所有幀的均值和方差,使用全域性均值和方差對所有的高斯成份(Gaussian Component)進行初始化,獲得hmm0 (包含84個mono-phone的模型)。

HERest:將標註從syllable級依據詞典轉換為phone級,進行mono-phone的模型迭代。

例如: sil zhong guo sil  --> sil zh ong g u o sil

2. tri-phone


使用HLED工具將標註從mono-phone轉換為tri-phone

例如: sil zh ong g u o sil  -->  sil  sil-zh+ong  zh-ong+g  ong-g+u  g-u+o  u-o+sil  sil

使用HHED工具初始化tri-phone模型,用tri-phone的中心phone的模型初始化該tri-phone模型。

類似於monophone,進行HERest模型迭代,並統計狀態佔有率state occs(stats)。

3. tied tri-phone


通過狀態的佔有率state occs(stats)和問題集(tree.hed)將triphone和狀態進行繫結。

最後使用HERest對繫結後的triphone和狀態進行迭代更新。


為什麼進行狀態繫結?

使用tri-phone建模,phone的個數為84個,tri-phone個數84*84*84=60W
按每個tri-phone 5狀態為例,中心3個有效狀態,共180W有效狀態;
按每個狀態4高斯計算,共720W個高斯,模型size接近GB級別,估計這麼多引數,資料是個問題。

因此,必須使用某種策略降低引數規模。

能否減少狀態規模? 使用狀態繫結策略





相關文章