研一剛接觸語音識別,怎麼運用kaldi工具箱做一個baseline?

1,目標是將一段簡短的中文錄音轉換為文本信息(識別準確率現在不敢妄想,只求能先搭出一個基本的平台 ???.......)

2,ubuntu,配NVIDIA GTX1080顯卡;

3,知道一些簡單的linux shell腳本,但很不熟練;

4,C基礎不太好;

當今機器學習炙手可熱,並在語音識別領域有了相當可觀的成就。我導師雖然也從事語音方面的教學研究,但也是剛剛接觸DNN這些新事物,所以探路的擔子就自然落在我們這些生瓜蛋上了。真誠請教各位大大 ???.......


  1. 英文裡面最好的文檔是Kaldi的官網:About the Kaldi project,裡面有介紹,比如:Data preparation
  2. 中文也有熱心的領域人士翻譯的文檔:kaldi的全部資料第二版,可以參考,快速上手
  3. 選擇一個example,比如kaldi/egs/timit/run.sh,裡面的腳本很清晰,從MFCC提取,到MonoPhone訓練,TriPhone訓練,解碼出文字...... 結合前面的文檔,跑起來,有error查log,解決,不斷循環,慢慢的就有感覺了!祝好運!


做baseline最好的方法是跑樣例。Kaldi大部分樣例的數據是收費或不公開的,公開的數據包括:

英文:librispeech,tedlium,ami

中文:thchs30

你目前的情況比較適合用thchs30,因為你的目的是做中文,thchs30是目前唯一的開源中文樣例,而且thchs30數據量比較小,不需要GPU集群就可以快速完成訓練。


如果有wsj swbd的數據最好,可以直接跑,如果沒有可以直接跑timit(timit數據可以下載到),然後把wsj的腳本數據集改為timit的(這個過程比較困難)。


1、AI SHELL公司開源178小時中文語音語料及基本訓練腳本,見kaldi-master/egs/aishell;

2、CVTE公司開源其訓練好的TDNN模型,見Kaldi ASR;

在src/online2bin輸入以下命令:
./online2-wav-nnet3-latgen-faster --do-endpointing=false --online=false --feature-type=fbank --fbank-config=../../egs/cvte/s5/conf/fbank.conf --max-active=7000 --beam=15.0 --lattice-beam=6.0 --acoustic-scale=1.0 --word-symbol-table=../../egs/cvte/s5/exp/chain/tdnn/graph/words.txt ../../egs/cvte/s5/exp/chain/tdnn/final.mdl ../../egs/cvte/s5/exp/chain/tdnn/graph/HCLG.fst "ark:echo utter1 utter1|" "scp:echo utter1 ../../egs/cvte/s5/data/wav/00030/2017_03_07_16.57.22_1175.wav|" ark:/dev/null

就能調用訓練好的TDNN模型進行識別。

注:

1)沒跑通的同學可能是沒有在online2bin下make

2)測10個字左右的語音跑了2分鐘,解碼過程中內存消耗到20G。

3)想測自己的語音的同學,把../../egs/cvte/s5/data/wav/00030/2017_03_07_16.57.22_1175.wav改成自己語音文件的路徑就可以了。注意WAV文件要16KHz,16bit。

4)這個模型是很準的,用我上述命令正確率比較低。你要提高準確率的話,參考這個鏈接,去改源代碼。cvte在線解碼器源碼修改(乾貨)

命令也要改,這裡面的online.conf也是要新建的,詳細操作改日再寫。

./online2-wav-nnet3-latgen-faster --do-endpointing=false --online=false --config=../../egs/cvte/s5/conf/online.conf --max-active=7000 --beam=15.0 --lattice-beam=6.0 --acoustic-scale=1.0 --word-symbol-table=../../egs/cvte/s5/exp/chain/tdnn/graph/words.txt ../../egs/cvte/s5/exp/chain/tdnn/final.mdl ../../egs/cvte/s5/exp/chain/tdnn/graph/HCLG.fst "ark:echo utter1 utter1|" "scp:echo utter1 ../../egs/cvte/s5/data/wav/00030/1/ga0001.WAV|" ark:/dev/null

歡迎加入kaldi新手交流群,群號碼:374355663

2017-10-31

--------------------------------------------------------

歡迎加入KALDI語音識別新手群,群號碼:279295537(已滿)


哈哈,情況和題主有些類似,只不過我是被用來探探視覺方面的,摸摸頭。


瀉藥,然而我不懂啊!邀請我做啥啊?( ̄Д ̄)?我好絕望啊!


推薦閱讀:

未來語音技術或者語音智能助手的發展方向是什麼?
語音識別技術中提取的聲音特徵的參數具體指什麼?
深度學習在語音識別方面主要的難題和困難是什麼?
從技術角度來看,中英文語音識別哪個更困難?
關於語音識別的研究方向?

TAG:演算法 | 機器學習 | 語音識別 | 深度學習DeepLearning | kaldi |