当前位置:主页 > 关于华镇 > 最新动态 >

语音VB580识别神器—全卷积模型wav2letter安装指南

发布日期: 2020-05-02 10:58

  2018年完全是美妙的。由于FAIR(Facebook AI研究团队)意外地发布了用于语音识别的端到端深度学习工具包,因此获得了令人振奋的结果。

  根据FAIR,Wav2letter采用完全卷积方法,并使用卷积神经网络(CNN)进行声学建模和语言建模。更有意思的是,从波形到结束词转录,Wav2letter的架构仅由卷积层组成。在经常性体系结构更为普遍的领域中,看到CNN产生的结果与循环体系结构相比具有竞争力,这是非常令人兴奋的。

  此外,为了帮助每个人简明扼要地概述Wav2letter的工作原理,FAIR团队还将Wav2letter的架构公之于众:

  wav2letter

  本文后面的内容是新手的安装指南。如果您来自Pythonic背景或作为新手使用顺序数据深入学习,设置Wav2letter可能会有点令人生畏。因此,本文的范围是为了简化它。让我们开始吧 !

  确保您拥有稳定的Linux系统,最好是稳定的最新版本。本指南假设您是Ubuntu用户,因为这是在Ubuntu 16.04 LTS以及Ubuntu 18.04上测试的如果您想通过利用GPU的性能进行构建,请确保已正确安装和配置最新版本的CUDA(最好是9.2),Nvidia NCCL库和CUDNN(最好是7.2.1)。建议在容器(docker)内部的虚拟环境(Anaconda)内设置Wav2letter,因此即使你搞砸了,也可以最大限度地减少破坏和破坏的深度。

  让我们开始吧!

  为了为了构建Wav2letter,我们需要确保C++安装了一个良好的编译器并C++11支持(最好g++>4.8)。此外,我们还需要CMake(版本3.5.1或更高版本),这是一个工具包,用于使用简单的平台和独立于编译器的配置文件来控制软件编译过程。如果您还没有安装,请按以下方式安装:

  sudo apt-get install cmake g++

  旁边,我们需要建立flashlight为wav2letter使用它作为一个依赖,flashlight是完全用一个快速,灵活的C++机器学习库,开发者包括Facebook的人工智能语音研究团队,torch和deep speech的研发人员。

  为了构建flashlight,首先我们需要满足它的一些依赖性。首先,我们需要安装ArrayFire。

  ArrayFire是一个通用库,它简化了开发软件的过程,该软件以并行和大规模并行架构为目标,包括CPU,GPU和其他硬件加速设备。

  要安装ArrayFire,我们将获得它的二进制文件,Flashlight已经过3.6.1版本的测试,ArrayFire支持no-gl,即没有图形支持的轻量级版本。建立:

  wget

  下载二进制文件后,添加执行权限:

  chmod u + x ArrayFire-no-gl-v3.6.1_Linux_x86_64.sh

  然后,执行安装程序:

  bash ArrayFire-no-gl-v3.6.1_Linux_x86_64.sh --include-subdir --prefix=/opt

  完成后,将PATH设置为:

  echo / opt / arrayfire-no-gl / lib> /etc/ld.so.conf.d/arrayfire.conf

  ldconfig

  现在ArrayFire已经安装,我们现在需要安装googletest。这是由Google的测试与技术团队开发的测试框架。要安装,请按照此处googletest的指南进行操作:

  接下来,我们需要安装openmpi,这是一个高性能和并行计算的工具包。安装 :

  sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev

  现在假设所有依赖项都已成功安装,我们现在可以最终构建Flashlight,为此克隆以下存储库flashlight:

  > git clone --recursive

  > cd flashlight

  > mkdir -p build && cd build

  > cmake .. -DCMAKE_BUILD_TYPE=Release -DFLASHLIGHT_BACKEND=CUDA -DArrayFire_DIR=/ opt / arrayfire- no-gl / share / ArrayFire / cmake /

  > make -j4#(或任意数量的线程)

  > make install

  有关flashlight使用不同安装标志进行配置的详细信息,请参阅

  现在我们已经配置flashlight了,我们需要安装另一个名为libsndfile的依赖项。这是加载音频所必需的。该库有助于读取和写入包含采样音频数据的文件。安装 :

  apt install autoconf autogen automake build-essential libasound2-dev libflac-dev libogg-dev libtool libvorbis-dev pkg-config python

  wav2letter使用英特尔的Math Kernel库进行特色化。要安装mkl转到此

  请注册并下载二进制文件。您需要做的就是通过下载后添加权限来执行shell脚本。

  安装完成后,将PATH导出为:

  export MKL_INCLUDE_DIR=/opt/intel/mkl/include

  如果默认情况下mkl未在/opt 目录中安装,则可能需要更改此设置。

  FFTW是一个C子程序库,用于计算一个或多个维度的离散傅立叶变换(DFT),任意输入大小,以及实数和复数数据(以及偶数/奇数数据,即离散余弦/正弦变换或DCT / DST)。由于wav2letter这个库取决于特征化,我们还需要构建它。为此:

  sudo apt-get install libfftw3-dev

  Kenlm是一个高效的库,它实现了两种数据结构,以实现高效的语言模型查询,从而降低了时间和内存成本。PROBING数据结构使用线性探测哈希表,旨在提高速度。与广泛使用的SRILM相比,KenLM中的PROBING模型的速度是使用57%内存的2.4倍。TRIE数据结构是一种具有位级打包,分类记录,插值搜索和可选量化的特里,旨在降低内存消耗。TRIE同时使用更少的内存和更少的CPU。要安装kenlm:

  > apt-get install zlibc zlib1g zlib1g-dev libeigen3-dev bzip2 liblzma-dev libboost-all-dev

  > wget

  > tar -xvzf kenlm

  > cd kenlm

  > mkdir - p build && cd build

  > cmake ..

  > make -j 4

  安装后,不要忘记export PATH,如下所示:

  export KENLM_ROOT_DIR=/home/kenlm2

  根据您选择提取和安装库的位置更改目录值。

  gflags library实现命令行标志处理。它包括对标准类型(如字符串)的内置支持,以及在使用它们的源文件中定义标志的功能。wav2letter需要此库,并安装库:

  sudo apt-get install libgflags2 libgflags-dev

  glogs是Google的C++日志记录库的实现,并且为了记录目的,wav2letter依赖于此库。为了安装:

  sudo apt install libgoogle-glog-dev

  最后,如果您计划对此进行测试,则可以安装gtest。它是可选的,如果您愿意安装,可以从这里安装。

  最后,如果您已成功安装所有必需的依赖项而没有错误,那么我们很高兴构建wav2letter。如下:

  git clone --recursive

  cd wav2letter

  mkdir -p build && cd build

  cmake .. -DCMAKE_BUILD_TYPE=Release -DCRITERION_BACKEND=CUDA -DArrayFire_DIR=/ opt / arrayfire- no-gl / share / ArrayFire / cmake / -DMKL_INCLUDE_DIR=/ opt / intel / mkl / include -DBUILD_TESTS=OFF

  如果一切顺利通过,恭喜你,你很高兴继续使用神经网络wav2letter。

  Good Luck & have fun~

13524859176、13296017858