基于kaldi的iOS實時語音識別(本地)+02+集成kaldi

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.tbdlibresolv.9.tbdlibc++.1.tbd
  • 在項目"Header Search Paths"設置好頭文件路徑,因為kaldi都是c++文件,引入的頭文件都是帶路徑,所以這里要設置好。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容