iOS在線識別:http://www.lxweimin.com/u/3c2a0bd52ebc
集成kaldi是這里最關鍵的一步,這一步沒成功,也就沒有后續了。
編譯
由于編譯的方式有很多種,但是我們是用于iOS應用的,所以只能在iOS環境下進行編譯。
1. 相關的環境變量
CPPFLAGS
CFLAGS
CXXFLAGS
這里根據自己的環境設置,由于對腳本編譯也不是特別熟悉,所以也不敢多說.
2.遇到的問題
a)開始幾次編譯出來的靜態庫都不能在真機上運行,因為不支持arm64,都是x86_的,改了幾次才成功,所以編譯的時候要設置好支持的架構。
b)添加依賴庫,添加libc++
就可以了。
3.注意
可以將kaldi分步編譯成.a再通過下面的命令合成一個.a庫
libtool -static -o $libname $lib_module
當然在編譯的時候可能會遇到libtool找不到,在mac上找到正確的libtool路徑就可以了,沒遇到更好。
4.編譯openfst
由于kaldi里面還會用到openfst,所以openfst也要編譯,編譯openfst方式跟kaldi一樣,這里不重述了。
集成
- 將頭文件和.a文件直接拖入工程中
- 添加依賴庫
libiconv.2.tbd
,libresolv.9.tbd
,libc++.1.tbd
- 在項目"Header Search Paths"設置好頭文件路徑,因為kaldi都是c++文件,引入的頭文件都是帶路徑,所以這里要設置好。