Kaldi學習手記(一):Kaldi的編譯安裝
Kaldi是一款基於C++編寫的開源語音識別工具箱。這款工具既可以在Windows下編譯也可以在Linux下編譯。不過聽學姐說以後還是在Linux下做開發多一些,我就想幹脆順便把Linux環境熟悉熟悉,於是就安了個虛擬機器裝上了Ubuntu。文件裡面也說還是建議在Linux下使用Kaldi。好久沒用過Linux了,也不習慣在命令列下操作,編譯Kaldi還真是費了我一番功夫。下面把過程記錄一下。
一、下載
下載直接利用git版本控制系統就可以了,開啟終端,直接在你的實驗目錄下輸入命令:
git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden
不一會就從github上下載下來了。當然,首先得確保你安裝了git。要是沒安裝的話,就先輸入:
sudo apt-get install git
安裝git版本控制軟體。
二、各目錄功能
下載完畢以後,cd kaldi-trunk進去看看下載了一些什麼東西。
其中,./tools,./src和./egs這三個目錄是比較重要的。
./tools目錄下面全部都是Kaldi依賴的包。其中主要有:
- OpenFST:Weighted Finite State Transducer library,是一個用來構造有限狀態自動機的庫。我們知道隱馬爾科夫模型就可以看成是一個有限狀態自動機的。這是最終要的一個包,Kaldi的文件裡面說:If you ever want to understand Kaldi deeply you will need to understand OpenFst.誒,要學的好多。
- ATLAS:這是一個C++下的線性代數庫。做機器學習自然是需要很多矩陣運算的。
- IRSTLM:這是一個統計語言模型的工具包。
- sph2pipe:這是賓夕法尼亞大學linguistic data consortium(LDC)開發的一款處理SPHERE_formatted數字音訊檔案的軟體,它可以將LDC的sph格式的檔案轉換成其它格式。
./src目錄存放的是Kaldi的原始碼。./egs存放的是Kaldi提供的一些例子。我們現在要做的就是編譯安裝Kaldi依賴的各種庫,然後編譯安裝Kaldi。
三、Kaldi的編譯
安裝之前需要確保你安裝了這些軟體
apt-get
subversion
automake
autoconf
libtool
g++
zlib
libatal
wget
Ubuntu裡面都有,所以直接開始安裝。
首先安裝依賴包。在./tool目錄下輸入make,開始編譯,輸入make -j 4命令可以加快速度(多核並行處理)。
之後切換到./src目錄下,輸入./configure進行配置,然後輸入make depend,完成之後輸入make進行編譯。當然這個過程也可以並行處理加速,輸入make -j 4。經過漫長的編譯過程以後,就安裝完畢了。
四、執行一個例子
Kaldi自帶的例子都放在./egs目錄下。
其中最簡單的就是yesno這個例子了。這是一個非常小的資料集,每一條記錄都是一系列yes或者no的語音,標註是由檔名來標註的。先執行一下。切換到./egs/yesno/s5目錄下,執行sudo ./run.sh命令。
經過一段時間的訓練和測試,可以看到執行結果。
WER為0.00。看來這個例子識別的還是挺準的。
PS:WER(Word Error Rate)是字錯誤率,是一個衡量語音識別系統的準確程度的度量。其計算公式是WER=(I+D+S)/N
下面進入./waves_yesno目錄瞧一瞧。
全部都是.wav格式的音訊檔案。可以開啟一個檔案聽一聽,發現是一個老男人連續不停地說yes或者no,每個檔案說8次。檔名中,0代表那個位置說的是no,1代表說的是yes。這個實驗沒有單獨的標註檔案,直接採用的是檔名來標註的。
相關文章
- Kaldi學習(一)kaldi在ubuntu上的安裝Ubuntu
- kaldi的編譯安裝與報錯解決方法編譯
- kaldi第一步安裝kaldi測試yesno
- kaldi安裝(Ubuntu)Ubuntu
- Kaldi學習(二)
- kaldi+cuda安裝
- kaldi 的安裝及測試
- kaldi或者eesen atlas編譯失敗編譯
- KALDI語音識別庫在LINUX下的安裝和編譯Linux編譯
- kaldi+pdnn 的簡介與安裝DNN
- Kaldi在ubuntu 18.04下編譯小結Ubuntu編譯
- kaldi上使用gpu以及如何安裝cudaGPU
- UBUNTU安裝kaldi遇到關於not install OpenFst errorUbuntuNFSError
- OfficialKaldi(一)| 關於Kaldi專案(翻譯註解)
- 越獄手記:手動編譯安裝 Electra編譯
- Kaldi配置環境變數變數
- Kaldi關於Openfst版本的選擇NFS
- kaldi環境搭建 | yesno 測試
- KALDI-IO庫的生成與讀取
- ZYNQ學習筆記(一): uboot 編譯筆記boot編譯
- 語音識別開源工具PyTorch-Kaldi:兼顧Kaldi效率與PyTorch靈活性開源工具PyTorch
- kaldi DNN線上解碼 aishell為例DNNAI
- Kaldi 離線線上解碼應用
- Kaldi的decode測試資料結果
- 【編譯openjdk學習筆記】編譯JDK筆記
- Docker安裝(學習筆記一)Docker筆記
- 編譯、連結學習筆記(一)簡述編譯連結過程編譯筆記
- centos手動編譯安裝apache、php、mysqlCentOS編譯ApachePHPMySql
- matlab學習筆記一:安裝Matlab筆記
- PHP的編譯安裝PHP編譯
- Kaldi執行過程中遇到的一些問題(持續更新...)
- mysql dba系統學習(1)mysql各版本編譯安裝MySql編譯
- PostgreSQL原始碼學習 win10原始碼編譯安裝SQL原始碼Win10編譯
- Redis安裝與配置(學習筆記一)Redis筆記
- 【記錄】編譯安裝 ProtoBuf 擴充套件編譯套件
- [記錄] 編譯安裝 ProtoBuf 擴充套件編譯套件
- 【記錄】編譯安裝 YAML 擴充套件編譯YAML套件
- [記錄] 編譯安裝 YAML 擴充套件編譯YAML套件