kaldi運行thchs30例子

 

首先,thchs30有兩種數據庫,kaldi運行的數據庫最好是 thchs30-openslr。數據庫

修改run.sh裏面的語音庫路徑  thchs30=...測試

修改nj線程數 等於CPU的核心數this

修改cmd.sh  queue.pl 改成run.pl本地機器跑url

運行出現錯誤:線程

lexicon.txt驗證出錯code

裏面binary file  matchesblog

這是grep的問題,grep -v -a '<s>' | grep -v -a '</s>' | sort -u > data/dict/lexicon.txt || exit 1;get

---------------------------------------------------------------------------------------------------------------------------cmd

在線識別部分:it

去egs下,打開voxforge,裏面有個online_demo,直接考到thchs30下。在online_demo裏面建2個文件夾online-data  work,在online-data下建兩個文件夾audio和models,audio下放你要回放的wav,models建個文件夾tri1,把s5下的exp下的tri1下的final.mdl和35.mdl(final.mdl是快捷方式)考過去。把s5下的exp下的tri1下的graph_word裏面的words.txt,和HCLG.fst,考到models的tri1下。

 相似處理,包括tri2b,tri3b,tri4b,不事後者須要添加轉移矩陣,final.mat以及所指的mat文件。

以下所示,例如 tri2b文件夾下,

 

打開online_demo的run.sh

a)將下面這段註釋掉:(這段是voxforge例子中下載現網的測試語料和識別模型的。咱們測試語料本身準備,模型就是tri1了)

if [ ! -s ${data_file}.tar.bz2 ]; then
    echo "Downloading test models and data ..."
    wget -T 10 -t 3 $data_url;


    if [ ! -s ${data_file}.tar.bz2 ]; then
        echo "Download of $data_file has failed!"
        exit 1
    fi
fi

b) 而後再找到以下這句,將其路徑改爲tri1

 

 # Change this to "tri2a" if you like to test using a ML-trained model
ac_model_type=tri2b
 

if [ -s $ac_model/final.mat ]; then
trans_matrix=$ac_model/final.mat
echo "set matrix"
fi

online-gmm-decode-faster --rt-min=0.5 --rt-max=0.7 --max-active=4000 \
--beam=12.0 --acoustic-scale=0.0769 --left-context=3 --right-context=3 $ac_model/final.mdl $ac_model/HCLG.fst \
$ac_model/words.txt '1:2:3:4:5' $trans_matrix;;

 

識別效果不好

相關文章
相關標籤/搜索