wav2letter是一个快速开源的语音识别工具集,是由facebook ai 研究所的语音团队开发,通过End to End(端到端)的ai模型,旨在实现Lexicon-free(无字典)语音识别的目标。
主要参考两篇中文的安装介绍:
Building wav2letter++ 安装依赖 https://www.jianshu.com/p/50a3100a5bca
开源自动语音识别系统wav2letter (附实现教程) https://blog.csdn.net/mazegong/article/details/79422816
因为本机没有nvdia的显卡,在安装mkldnn的时候参考了
intel mkldnn 安装及使用说明 https://www.cnblogs.com/qccz123456/p/11497006.html
安装过程遇到了很多问题,包括被迫升级16.04,由于安装目录找不到,环境变量没有设置等,cmake不过去,但结合国内外网站玩家指引,大都能搞过去。但穷用不起显卡来学习,希望安装mkl和mkl dnn库的时候遇到了很多坑,走了比较多的弯路,幻想用cuda的亲们肯定么有这么郁闷。
实际上安装mkldnn是最坑的事情,目前github上最新的更名为Deep Neural Network Library (DNNL),如果默认安装上的话,等到装flashlight会报错误,而且是找不到libmkldnn.so的错误,因为新的命名方式改变了,所以需要回退到之前,又报对象定义的错误,折腾了几次,确认v0.20.3可以顺利编译通过了。吐槽一下intel升级的太狠了,自嘲一下穷人把五菱宏光当法拉利来开,就得忍受一下,谁让洛阳纸贵,现在nvdia的显卡就是当前的洛阳宣纸吧。
总体来说,这个应用集依赖很多,安装起来有点费劲,建议prefix之类的宏尽量不用,除非你很熟悉linux。
附上不完全安装的依赖应用。
arrayfire
ArrayFire-v3.6.4_Linux_x86_64.sh
boost_1_64_0
flashlight
glog
gloo
googletest
intel_sdk_for_opencl_applications_2019.4.314
kenlm
libsndfile
luajit-rocks
mkl-dnn
old-mkldnn(回退v0.20.3)
openmpi-2.1.2
openmpi-4.0.1
tbb
wav2letter
xz-5.2.4
环境变量参考:
export PATH=/opt/intel/bin:$PATH
export MKL_INC_DIR=/opt/intel/mkl/include
export INTEL_DIR=/opt/intel/lib/intel64
export MKL_DIR=/opt/intel/mkl/lib/intel64
export LD_LIBRARY_PATH=/opt/intel/lib/intel64:/opt/intel/mkl/lib/intel64:/usr/lib/openmpi/lib:$LD_LIBRARY_PATH
export CMAKE_LIBRARY_PATH=$LD_LIBRARY_PATH
export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$MKL_INC_DIR
export PATH=/opt/software/xz/bin:$PATH
export MKLROOT=/opt/intel/mkl
export MPI_CXX_COMPILER=$HOME/usr/bin/mpicxx
export MPI_CXX_LIBRARIES=$HOME/usr/lib/openmpi/lib
export MPI_CXX_INCLUDE_PATH=$HOME/usr/include/openmpi/include
export KENLM_ROOT_DIR=/home/machinelearning/kenlm
source /usr/share/linux_intel64_gcc_cc5.4.0_libc2.23_kernel4.4.0_release/tbbvars.sh
https://github.com/facebookresearch/wav2letter/blob/master/docs/installation.md
从git hub上收集的apt-get软件依赖。
sudo apt-get update
sudo apt-get install \
# Audio encoding libs for libsndfile \
libasound2-dev \
libflac-dev \
libogg-dev \
libtool \
libvorbis-dev \
# FFTW for Fourier transforms \
libfftw3-dev \
# Compression libraries for KenLM \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
libboost-all-dev \
# gflags \
libgflags-dev \
libgflags2v5 \
# glog \
libgoogle-glog-dev \
libgoogle-glog0v5 \
```