語音識別工具Kaldi安卓庫編譯

2021-10-09 07:42:59 字數 3174 閱讀 5443

注意:整個配置都在同乙個終端下執行!整個配置都在同乙個終端下執行!整個配置都在同乙個終端下執行!

1.android ndk配置(本教程基於 ndk16rb)

wget -q --output-document=android-ndk.zip

2) ndk配置:

cd  / opt /android-ndk-r16b/build/tools

python make_standalone_toolchain.py --arch arm --api 21 --stl=libc++ --install-dir /tmp/my-android-toolchain

export path=/tmp/my-android-toolchain/bin:$path

2.openblas(本教程基於0.2.20版本)

通過ndk16b 和ndk19c 對openblas0.2.19和0.3.7版本進行arm7的編譯都出現不同錯誤,通過arm8的可以編譯,由於網上教  程都是基於arm7的,故先編譯arm7的版本

cd openblas

export ndk_bundle_dir=/opt/android-ndk-r16b/

export path=$/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$/toolchains/llvm/prebuilt/linux-x86_64/bin:$path

export clang_flags="-target arm-linux-androideabi -marm -mfpu=vfp -mfloat-abi=softfp --sysroot /tmp/my-android-toolchain/sysroot -gcc-toolchain $/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/"

make target=armv7 only_cblas=1 ar=ar cc="clang $" hostcc=gcc arm_softfp_abi=1 use_thread=0 num_threads=32 -j4

make install no_shared=1 prefix=`pwd`/install

3.clapack

git clone

cd android_libs/lapack/

修改andorid.mk檔案

sed -i  's/local_module:= testlapack/#local_module:= testlapack/g' jni/android.mk

sed -i 's/local_src_files:= testclapack.cpp/#local_src_files:= testclapack.cpp/g' jni/android.mk

sed -i 's/local_static_libraries := lapack/#local_static_libraries := lapack/g' jni/android.mk

sed -i 's/include $(build_shared_library)/#include $(build_shared_library)/g' jni/android.mk

將生成的庫拷貝到openblas下面

cp -r obj/local/armeabi-v7a/* /opt/openblas/install/lib/

4.kaldi編譯

git clone kaldi-android

1) openfst編譯(本教程基於1.6.5)

export path=/tmp/my-android-toolchain/bin:$path

cd kaldi-android/tools

wget -t 10 -t 1

tar -zxvf openfst-1.6.5.tar.gz

cd openfst-1.6.5/

cxx=clang++ ./configure --prefix=`pwd` --enable-static --enable-shared --enable-far --enable-ngram-fsts --host=arm-linux-androideabi libs="-ldl"

make -j 4

make install

2) cub編譯(本教程基於1.8.0)

make cub

cd ..

ln -s openfst-1.6.5 openfst

3) 編譯src

cd ../src

開啟 matrix/makefile 檔案,將其中的測試檔案注釋掉。

#testfiles = matrix-lib-test sparse-matrix-test #matrix-lib-speed-tes

#be sure android-toolchain is in your $path before the next stepcxx=clang++ ./configure --static --android-incdir=/tmp/my-android-toolchain/sysroot/usr/include/ --host=arm-linux-androideabi --openblas-root=/path/to/openblas/install –use-cuda=noyou may want to compile kaldi without debugging symbols.#in this case, do:sed -i 's/-g # -o0 -dkaldi_paranoid/-o3 -dndebug/g' kaldi.mkmake clean -jmake depend -jmake -j 4
最終生成的庫在src下面的各個模組的目錄下

參考文件

語音識別工具kaldi在linux環境下的安裝步驟

最近需要進行語音識別的學習,選擇了kaldi作為開發平台,在嘗試了網上的很多安裝方法後,尋找了一種最簡潔的安裝方法,總結如下 第一步 先安裝git 命令 sudo apt get install git 第四步 檢查所需要的包是否安裝完備 命令 cdtools extras check depend...

Kaldi語音識別庫linux環境下的安裝和編譯

sudo apt get install subversion svn update svn co kaldi trunk cd kaldi trunk cd tools cat install make j 4 注 1.當電腦有不止乙個cpu時,假設有四個,可以輸入 make j 4以節省時間。2...

語音識別 kaldi 的安裝

本篇部落格主要記錄了我編譯安裝kaldi的過程,算是自己近期學習的乙個總結,也希望可以幫助到需要的人。kaldi是乙個用c 寫的語音識別工具包。kaldi旨在供語音識別研究員使用。當然,kaldi也可以用作聲紋識別。關於他的詳細介紹可以訪問kaldi的官方文件 感謝很多大神與科研工作者在kaldi上...