1. 程式人生 > >kaldi中文語音識別(1)——thchs30

kaldi中文語音識別(1)——thchs30

這3篇部落格,詳細總結和記錄了我編譯安裝kaldi和兩種用kaldi進行中文語音識別的過程,包括如何kaldi的簡單介紹、環境的配置、相關模型的訓練、匯入,算是自己近期學習的一個總結,也希望可以幫助到需要的人~~~

本篇部落格主要記錄了我編譯安裝kaldi的過程

另外兩篇部落格的連線

kaldi是什麼

kaldi是一個用C++寫的語音識別工具包。kaldi旨在供語音識別研究員使用。當然,kaldi也可以用作聲紋識別。關於他的詳細介紹可以訪問kaldi的官方文件

kaldi與中文語音識別

感謝很多大神與科研工作者在kaldi上開源了他們的資料集和訓練模型,讓我這樣的小白可以站在巨人的肩膀上前行。目前我所瞭解到有3個開源的中文語音識別例子。

如果有同學知道其他的資料集or模型,中英文皆可,歡迎聯絡我補充啊~

編譯與安裝kaldi

注意:為了提高訓練的速度,kaldi最好安裝在GPU雲伺服器下。如果沒有伺服器話,使用虛擬機器應該也是可以的,但一定要分配足夠的記憶體空間和儲存空間。下面我就以我使用的centos伺服器為例,介紹kaldi的編譯與安裝。

編譯與安裝大概分為3步

  1. 安裝git、下載kaldi的原始碼
  2. 安裝編譯所需依賴包
  3. 配置、編譯kaldi

1.kaldi的下載

kaldi的所有原始碼開源在了GitHub上,可以直接git下載到伺服器上,首先得確保伺服器上安裝了git,如果沒有安裝的話,就先安裝git

sudo yum install
git -y

接著git clone下載kaldi

git clone https://github.com/kaldi-asr/kaldi.git

下載完成kaldi原始碼後,我們將得到如下一個檔案結構的目錄。

kaldi/
├── COPYING
├── egs/				//egs目錄裡存放了使用kaldi完成的開源語音識別/聲紋識別專案
├── INSTALL				//編譯安裝kaldi的指導
├── misc/
├── README.md
├── scripts/
├── src/				//src資料夾裡存放了kaldi原始碼
├── tools/				//tools資料夾裡存放了語音處理的工具包
└── windows/				//windows資料夾存放了在windows下編譯安裝kaldi的檔案

2.安裝編譯所需要的依賴包

編譯之前需要確作業系統中安裝有如下包

  subversion
  automake
  autoconf
  libtool
  g++
  zlib
  libatal
  wget
  sox

首先進入到kaldi/tools目錄下,接著在呼叫check_dependencies.sh指令碼檢查系統中的包是否安裝完全

cd kaldi/tools
extras/check_dependencies.sh

如圖所示,這個shell指令碼會提示系統需要安裝的包,按照提示安裝即可。

img

安裝完成後再次執行這個指令碼,如果提示OK就可以開始進行kaldi的編譯。

3.編譯kaldi

首先編譯tools,在在kaldi/tools目錄下輸入

make

我使用的伺服器是i7有8個核心,因此輸入make -j 8可以使用8個核心一起編譯,加快編譯速度。

之後轉到kaldi/src目錄下,輸入如下命令

cd ../src

在src目錄下首先要執行configure進行配置,由於每個人的cuda版本、安裝路徑不一定相同,所以這裡需要根據自己的伺服器情況進行修改,如下是我的configure配置方案,僅供參考。

./configure --static \
            --use-cuda=yes \
            --cudatk-dir=/home/zy/cuda/cuda-8.0 \
            --mathlib=OPENBLAS \
            --openblas-root=../tools/OpenBLAS/install \
            --threaded-math=no \
            --static-math=yes \
            --static-fst=yes \
            --fst-root=../tools/openfst

配置完成後,就可以進行src的編譯了

make depend
make

同樣,如果是多核CPU的話,你可以使用make depend -j 8make -j 8加快編譯速度

完成後會有提示成功和失敗,結束make後就算完成了kaldi的編譯與安裝了~

用kaldi進行中文語音識別

完成kaldi的安裝後,就可以用kaldi做語音識別了~,下面分別是我用kaldi做的兩種不同中文語音識別的部落格連線。

參考資料:

{
	Author: "byr-zyziszy",
	Mail: "[email protected]",
	Github: "https://github.com/zyzisyz",
	Date: "2018-10-2"
}