Kaldi是一款基于C++編寫的開源語音識別工具箱崔列。這款工具既可以在Windows下編譯也可以在Linux下編譯腊满。一般建議在linux下開發(fā)钢拧。
打開終端terminal最蕾,輸入命令:
git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden
下載完畢以后老厌,cd kaldi-trunk進去看看下載了一些什么東西瘟则。
其中,./tools枝秤,./src和./egs這三個目錄是比較重要的醋拧。
./tools目錄下面全部都是Kaldi依賴的包。其中主要有:
OpenFST:Weighted Finite State Transducer library,是一個用來構(gòu)造有限狀態(tài)自動機的庫丹壕。我們知道隱馬爾科夫模型就可以看成是一個有限狀態(tài)自動機的庆械。這是最終要的一個包,Kaldi的文檔里面說:If you ever want to understand Kaldi deeply you will need to understand OpenFst.誒菌赖,要學(xué)的好多干奢。
ATLAS:這是一個C++下的線性代數(shù)庫。做機器學(xué)習(xí)自然是需要很多矩陣運算的盏袄。
IRSTLM:這是一個統(tǒng)計語言模型的工具包忿峻。
sph2pipe:這是賓夕法尼亞大學(xué)linguistic data consortium(LDC)開發(fā)的一款處理SPHERE_formatted數(shù)字音頻文件的軟件,它可以將LDC的sph格式的文件轉(zhuǎn)換成其它格式辕羽。
./src目錄存放的是Kaldi的源代碼逛尚。./egs存放的是Kaldi提供的一些例子。我們現(xiàn)在要做的就是編譯安裝Kaldi依賴的各種庫刁愿,然后編譯安裝Kaldi绰寞。
首先安裝依賴包铣口。在./tool目錄下輸入make滤钱,開始編譯,輸入make -j 4命令可以加快速度脑题。
之后切換到./src目錄下件缸,輸入./configure進行配置,然后輸入make depend叔遂,完成之后輸入make進行編譯即可他炊。
(根目錄下,tools目錄已艰,src目錄下下分別有三個INSTALL文件痊末,按照里面的步驟執(zhí)行即可)
Kaldi自帶的例子都放在./egs目錄下哩掺。
其中最簡單的就是yesno這個例子了凿叠。這是一個非常小的數(shù)據(jù)集,每一條記錄都是一系列yes或者no的語音嚼吞,標(biāo)注是由文件名來標(biāo)注的盒件。先運行一下。切換到./egs/yesno/s5目錄下誊薄,運行sudo ./run.sh命令履恩。
經(jīng)過一段時間的訓(xùn)練和測試,可以看到運行結(jié)果呢蔫。
WER為0.00切心§看來這個例子識別的還是挺準(zhǔn)的。
PS:WER(Word Error Rate)是字錯誤率绽昏,是一個衡量語音識別系統(tǒng)的準(zhǔn)確程度的度量协屡。其計算公式是WER=(I+D+S)/N
,其中I代表被插入的單詞個數(shù)全谤,D代表被刪除的單詞個數(shù)肤晓,S代表被替換的單詞個數(shù)。也就是說把識別出來的結(jié)果中认然,多認(rèn)的补憾,少認(rèn)的,認(rèn)錯的全都加起來卷员,除以總單詞數(shù)盈匾。這個數(shù)字當(dāng)然是越低越好。