最近有幾個人在群里問我kaldi的問題,不巧的是最近我在忙我的開題。我對kaldi的了解也就是語音識別+深度學習。如果不是kaldi有dnn模型,或許我更愿意用htk吧。其實,基本的都差不多吧。kaldi可以說是更加豐富吧。本來準備開題開語音識別,但是由于導師的反對,不得不做現(xiàn)在的歌曲人聲分離。進入到這個新的領域,我不得不懷疑自己的學習能力,現(xiàn)在的我變的不淡定了。很久沒有寫博文,也許很忙,也許自己懶……等開題結束,我應該好好規(guī)劃吧。此外,學長要和我在kaldi上用深度學習模塊做下漢語的語音識別。等做好了,我一定會公開給大家。 現(xiàn)在先說說kaldi的安裝吧。我一般都會在虛擬機上弄。大家在實現(xiàn)前的平臺可以是物理機或者虛擬機。然后大家安裝網(wǎng)上的教程安裝好linux。我就從安裝好平臺開始把。前一段時間,我根據(jù)http://kaldi./install.html中下載的時候有install.sh文件。安裝時直接就./install.sh,然后make就可以了。但是今天我重新下載時就直接make就可以了。具體步驟: 1. svn co svn://svn.code.sf.net/p/kaldi/code/trunk kaldi-trunk 2.到tools文件夾下,直接make就可以了。 你安裝的時候最好看下tools里的install文檔,里面說的很清楚。如果不出意外,基本就安裝好了。如果你想實驗下自己到底安裝成功沒,那就來個例子吧。 下面的是例子。kaldi里的例子很多,在egs目錄下。因為數(shù)據(jù)庫的原因,一般可以做些簡單的實驗把。如果你有大量的數(shù)據(jù)庫,如果愿意跟我分享,那我就非常感謝你了。里面的wsj數(shù)據(jù)庫是LDC的。一般大家可以做timit和yesno實驗。下面我演示下yesno實驗,希望你可以學到更多吧。 步驟和結果如下: 1. 把waves_yesno.zip.gz復制到y(tǒng)esno/s3目錄下,然后使用 sudo yumzip waves_yesno.zip.gz tar –xvf waves_yesno.tar 2.運行./run.sh。 測試呈現(xiàn)在linux上的結果: book@book-desktop:~/kaldi-trunk/egs/yesno/s3$ sudo ./run.sh [sudo] password for book: Data preparation succeeded Dictionary preparation succeeded Preparing train and test data Preparing word lists etc. fstaddselfloops 'echo 4 |' 'echo 4 |' Preparing language models for test arpa2fst - \data\ Processing 1-grams Connected 0 states without outgoing arcs. fstisstochastic data/lang_test_tg/G.fst 1.20397 0 Succeeded in formatting data. Succeeded creating MFCC features for train_yesno Succeeded creating MFCC features for test_yesno Computing cepstral mean and variance statistics Initializing monophone system. Compiling training graphs Aligning data equally (pass 0) Pass 1 Aligning data Pass 2 Aligning data Pass 3 Aligning data Pass 4 Aligning data Pass 5 Aligning data Pass 6 Aligning data Pass 7 Aligning data Pass 8 Aligning data Pass 9 Aligning data Pass 10 Aligning data Pass 11 Pass 12 Aligning data Pass 13 Pass 14 Aligning data Pass 15 Pass 16 Aligning data Pass 17 Pass 18 Aligning data Pass 19 Pass 20 Aligning data Pass 21 Pass 22 Pass 23 Aligning data Pass 24 Pass 25 Pass 26 Aligning data Pass 27 Pass 28 Pass 29 Aligning data Pass 30 Pass 31 Pass 32 Aligning data Pass 33 Pass 34 Pass 35 Aligning data Pass 36 Pass 37 Pass 38 Aligning data Pass 39 1 warnings in exp/mono0a/log/update.3.log 1 warnings in exp/mono0a/log/update.7.log Done fstminimizeencoded fstdeterminizestar --use-log=true fsttablecompose data/lang_test_tg/L_disambig.fst data/lang_test_tg/G.fst fstisstochastic data/lang_test_tg/tmp/LG.fst 1.20412 -2.34608e-05 warning: LG not stochastic. fstcomposecontext --context-size=1 --central-position=0 --read-disambig-syms=data/lang_test_tg/tmp/disambig_phones.list --write-disambig-syms=data/lang_test_tg/tmp/disambig_ilabels_1_0.list data/lang_test_tg/tmp/ilabels_1_0 fstisstochastic data/lang_test_tg/tmp/CLG_1_0.fst 1.20412 -2.34608e-05 warning: CLG not stochastic. make-h-transducer --disambig-syms-out=exp/mono0a/graph_tgpr/disambig_tid.list --transition-scale=1.0 data/lang_test_tg/tmp/ilabels_1_0 exp/mono0a/tree exp/mono0a/final.mdl fstminimizeencoded fsttablecompose exp/mono0a/graph_tgpr/Ha.fst data/lang_test_tg/tmp/CLG_1_0.fst fstdeterminizestar --use-log=true fstrmsymbols exp/mono0a/graph_tgpr/disambig_tid.list fstrmepslocal fstisstochastic exp/mono0a/graph_tgpr/HCLGa.fst 1.20412 -2.34608e-05 HCLGa is not stochastic add-self-loops --self-loop-scale=0.1 --reorder=true exp/mono0a/final.mdl Decoding with num-jobs = 1
簡單吧。其實很簡單。那個waves_yesno.zip.gz數(shù)據(jù)可以在http:///projects/kaldi/files/上下載。里面還有些其他的數(shù)據(jù)。此外,有時不需要下載,run.sh里就幫你做好了。所以我上面的步驟也許就不一樣。你在實驗前可以看下里面的說明文檔。 當然,學習kaldi最重要的資料就是http://kaldi./index.html。全是英文,而且很多。也許由于沒有htk有名或者是最新的開源程序的原因,他的中文資料很少,可以說基本沒有吧。希望有志之士能夠翻譯的話記得跟我分享。呵呵…… 還有,如果大家做研究的話timit就可以吧,你也可以去voxforge上去收集更多的資料。 寫這個博文,希望可以幫助大家解決一些問題。如果大家遇到什么問題,可以找我。希望在我們的共同學習下能夠學到更多的東西。謝謝你的閱讀…… |
|