Kaldi單音子建模

2021-10-23 21:47:11 字數 3137 閱讀 7556

gmm-hmm和gmm-nn

本質上並沒有什麼區別,基於神經網路的主流語音識別系統仍基於hmm,只不過是用神經網路來代替gmm建模hmm狀態的觀察概率

1      

特徵提取

特診提取指令碼會讀取資料資料夾中的音訊表單,並依次進行特徵提取,將結果寫入資料資料夾中的聲學特徵表單,要求輸入音訊的取樣大小為16位元。特徵提取的輸出是聲學特徵表單和用於儲存聲學特徵的二進位制文件

1.1      

用kaldi提取聲學特徵(13維和40維的mfcc特徵)

1.2      

特徵在kaldi中的儲存(將特徵按照kaldi的特徵表單形式儲存,用kaldi自有的工具提取特徵,自動輸出為表單形式)特徵形式:

句子id

frame1:特徵(13維or40維)

framen: 特徵(13維or40維)

倒譜均值方差歸一化(cmvn),在kaldi訓練指令碼中,大部分訓練步驟都預設使用譜歸一化,以使得模型的輸入特徵趨近於正態分佈

1.3      

特徵的使用

訓練聲學模型時,通常還需要對對特徵做更多的擴充套件。如單因子模型訓練時,在譜歸一化(cmvn)的基礎上做了差分係數(delta)的擴充套件

mfcc-cmvn-delta

加速訓練,並行的訓練

1.4      

常用的特徵型別

mfcc,fbank,plp,中文還有基頻

2      

單因子的訓練模型

使用gmm描述單因子發音狀態的概率密度分布函式的hmm模型

2.1      

聲學模型的基本概念

乙個聲學模型就是一組hmm

hmm:初始概率,轉移概率和觀察概率

語音識別框架中的每個hmm,定義該hmm中有多少個狀態,各個狀態起始的馬爾科夫鏈的初始概率π,狀態見的轉移概率(hmm)及每個狀態的概率密度分布函式(gmm)

語音識別,一般令初始概率為

轉移概率對識別結果影響較小,一般把狀態間的轉移概率預設為固定值,不必在訓練過程中更新轉移概率

hmm狀態的物理意義在語音識別中可以認為是音素的發音狀態,習慣上分為初始態,穩定態,結束態,對應的用三個hmm狀態建模乙個音素的發音

根據聲學模型,可以計算某一幀聲學特徵在某乙個狀態上的聲學分(am score),聲學分指的聲學特徵(觀察狀態)對於該狀態的對數觀察概率

amscore(t,i)=logp(ot|si)

觀察概率的經典建模方法是高斯混合模型

gmm+hmm演算法

(1)把幀識別成狀態(難點)

(2)把狀態組合成音素

(3)把音素組合成單詞

若干幀對應乙個音素

若干音素對應乙個單詞

計算機識別方式就是概率匹配

gmm要學習的概率

(1)gmm:features-state

(2)hmm:上個state-這個state

乙個gmm-hmm聲學模型儲存的主要引數為各狀態和高斯分量的

gmm-hmm聲學模型:transitionmodel+多個diaggmm

transitionmodel:每個音素有多少個狀態構成,狀態轉移概率

diaggmm:乙個狀態的高斯分量的概率分布函式pdf,

2.2      

將聲學模型用於語音識別

簡單的說,識別的過程就是用語音的特徵序列去匹配乙個狀態圖,搜尋最優路徑。狀態圖中有無數條路徑,每條路徑代表一種可能的識別結果,且都有乙個分數,該分數表徵語音和該識別結果的匹配程度。判斷兩條路徑的優略就是比較兩條路徑的分數,分數高的路徑更優。

狀態圖由若干節點和若干跳轉組成,有的跳轉對應乙個hmm狀態,並對當前幀計算乙個分數,分數由聲學分和圖固有分。

圖固有分主要源於語言模型概率

聲學分是根據聲學模型和待識別語音的匹配關係動態計算的,聲學模型最主要的就是計算聲學分

路徑分數是該路徑上各條跳轉的分數和

kaldi的狀態圖是基於wfst構建的

2.3      

模型初始化

初始化模型(gmm-init-mono),該模型並不需要輸入任何資料,這個工具僅僅初始化了乙個基礎模型,後續需要使用訓練資料來更新這個模型的引數。另外,這個模型的每乙個狀態只有乙個高斯分量,在後續的訓練過程中,會進行單高斯分量到混合多高斯分量的**

訓練資料迭代更新模型引數:baum-welch演算法(em演算法):該演算法並不需要預先得知訓練樣本每一幀具體對應哪個狀態,只需要給出訓練樣本的狀態序列,用em演算法求解

kaldi的實現:要求顯式地輸入每一幀對應地狀態,使用帶標註地資料更新gmm的引數,viterbi訓練方法

2.4      

對齊對齊:獲取每一幀對應的狀態

2.5      

transition模型

transition模型儲存在kaldi聲學模型的頭部

包括三部分:,,

:眾多三元組構成

音素索引,hmm狀態索引,pdf索引

1                   0                          0

1                   1                          1

1                   2                          2

2                   0                          3

2                   1                          4

2                   2                          5

把這些三元組放在一起,從1開始編號,每個編號對應乙個transition state

transition state有若干可能的跳轉指向其他狀態,對這些跳轉從0開始編號,得到transition index

transition-id:(transition state,transition index)

:對數轉移概率,按照teansition id索引

為什麼需要transition id?

考慮到pdf-id不能唯一的對映成音素(不同的音素共享同乙個pdf),而transition id可以

2.6      

gmm模型迭代

聲學模型訓練需要對齊結果,而對齊過程又需要聲學模型

用初始模型來對齊

Kaldi單音素GMM學習筆記

目錄 類 學習資料 統計學習方法 李航 語音識別實踐 俞棟,鄧力 speech and language processing daniel jurafsky,james h.martin.ediburg course.個人理解 論講解的清晰度 條理性,李航的書更好一些。俞棟的書則更貼近語音,並且該...

Kaldi學習手記(一) Kaldi的編譯安裝

安裝git 其中,tools src egs這三個目錄是比較重要的。tools目錄下面全部都是kaldi依賴的包。其中主要有 openfst weighted finite state transducer library,是乙個用來構造有限狀態自動機的庫。我們知道隱馬爾科夫模型就可以看成是乙個有限...

kaldi原始碼分析 零 kaldi的安裝

安裝依賴 sudo apt get update sudo apt get install git sudo apt get install g zlib1g dev automake autoconf libtool subversion sudo apt get install libatlas...