Kaldi學習(二)
今天直接進入第二個主題,如何安裝kaldi。由於我的是mac,所以我這裡使用虛擬機器,用ubuntu 16進行操作,其他的系統我不做講解。首先進入我要安裝的目錄,如下圖:
然後我們開始git拉取專案:
git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream
我們的檢視工作空間如下,多了我們想要的檔案(如果提示沒安裝git的,sudo apt install git 自己安裝一下):
我們進入該目錄:
cd kaldi
官方文件告訴我們,詳細的安裝過程在INSTALL檔案中描述,那麼進入kaldi後,我們可以看到如下檔案:
我們檢視INSTALL檔案如下:
我個人認為這裡有兩種方式來安裝,一種是使用工具的方式,一種是原始碼的方式。我這畢竟第一次初體驗,我們使用工具的方式把,所以我們進入tools然後檢視INSTALL如下:
那我在這裡對上面的內容進行一下翻譯:為了檢查kaldi的所依賴,首先我們執行extras/check_dependencies.sh很明顯這是個bash指令碼,應該是對依賴包的一些檢查操作(更智慧點,如果缺包的化,提示我們安裝,當然,這是我的想法,我們後面實驗到了的化再說),以此來檢查我們是否需要安裝一些系統級別的安裝包。注意檢查結果的輸出,在這個階段安裝我們所缺能讓我們的生活都變得美好起來(意思是如果此階段沒安裝的化,後面可能會搞死我們)。如果你的系統不支援預設c++編譯器,你可以使用其他的c++編譯器通過控制cxx環境變數,比如:cxx=g++-4.8 extras/check_dependencies.sh.
接下來,我們執行make命令(也就是說所缺包都已經安裝完畢,開始進行編譯),這個命令會預設安裝ATLAS 標頭檔案,OpenFst,SCTK和sph2pipe,其中OpenFst需要相應的c++ 編譯器支援c++11,比如g++>=4.7,Apple clang >=5.0,LLVM clang>=3.3。如果你的系統預設編譯器並不支援c++11,你可以顯示的制定編譯器如下:
make cxx=g++-4.8
如果你有多個CPUS並且想要進行加速,你可以進行並行編譯通過使用"-j",比如你有四個CPUs,那麼使用如下命令:
make -j 4
在extras/檔案中,同樣有各種各樣的指令碼來安裝額外的點點滴滴,這些可能會被相對獨立的例子指令碼所使用。如果示例指令碼需要你執行其中一個指令碼,他會告訴你怎麼做的。
以上關於翻譯部分完畢,我們開始進行,我不打算在這裡詳細介紹指令碼具體在做什麼,第一遍我們更期望是穩健的先走一遍,所以我們直接開始,我下面所述均為我自己的筆記本的情況,可能會與讀者的不一樣,這是可以理解的,畢竟大家的環境各不相同,那麼我們開始。
執行
./check_dependencies.sh得到如下圖所示:
那麼我接下來要安裝各個包了。至於如何安裝,圖片的最後已經給出了作者的建議,按照這個做就可以。那麼安裝完畢後,我再次檢查一下,執行 ./check_dependencies.sh 如下:
證明我們目前已經沒有所缺,很好,可以往下進行。
我們接下來開始進行編譯,使用上面提示的命令:
make cxx=g++-4.8 然後進行一段時間的等待。【PS:這裡其實坑挺大,尤其對於使用虛擬機器的人來說,比如我,一直編譯報錯,看錯誤應該是記憶體不夠,後來給虛擬機器分配更多的記憶體才過去,我用的4g。所以只要上述都做的沒問題,這裡問題不大。還有,我第一次跑總有兩個網站無法連結,所以我用了lantern翻牆,第二次才順利過去,並不確定是不是翻牆的問題。】
成功後如下:
其實到目前並沒有安裝完畢,仍然需要手動安裝IRSTLM,你可以利用extras/install_irstlm來進行。然後我們進入kaldi/src 目錄下執行./configure 這樣會生成一個kaldi.mk檔案。開始編程式碼,先開啟kaldi.mk檔案,讓程式編譯的時候帶上-fPIC選項,然後 make -j8,編譯完成後進入egs/yesno/s5 執行 ./run.sh 執行如果沒報錯有識別結果那麼安裝就成功啦。
相關文章
- Kaldi學習(一)kaldi在ubuntu上的安裝Ubuntu
- kaldi第一步安裝kaldi測試yesno
- Go學習【二】學習資料Go
- Golang 學習——interface 介面學習(二)Golang
- TypeScript 學習(二)TypeScript
- hdfs學習(二)
- MyBatis學習(二)MyBatis
- goblog 學習二Go
- docker學習(二)Docker
- springboot學習日誌(二)– thymeleaf學習Spring Boot
- Vue學習筆記(二)------axios學習Vue筆記iOS
- 機器學習-習題(二)機器學習
- Kaldi中啟用cuda
- kaldi+cuda安裝
- 函式學習二函式
- 深入學習Redis(二)Redis
- semantic UI學習(二)UI
- 深度學習 DEEP LEARNING 學習筆記(二)深度學習筆記
- 高等數學學習筆記(二)筆記
- React 學習筆記【二】React筆記
- TensorFlow學習筆記(二)筆記
- vue學習筆記二Vue筆記
- lumen5.5學習(二)
- goLang學習筆記(二)Golang筆記
- RxJava2 學習(二)RxJava
- Vue全家桶學習(二)Vue
- Vue 學習記錄二Vue
- ANFIS學習筆記(二)筆記
- HTTP 學習瞭解(二)HTTP
- 字串函式學習二字串函式
- activiti學習筆記二筆記
- 考研學習總結(二)
- MYSQL學習(二) --MYSQL框架MySql框架
- Mybatis 原始碼學習(二)MyBatis原始碼
- 學習RadonDB原始碼(二)原始碼
- Typescript學習筆記(二)TypeScript筆記
- TypeScript學習(二)—— 函式TypeScript函式
- Flutter元件學習(二)—— ImageFlutter元件