AI 研习社消息,日前, Facebook 人工智能研究院发布 wav2letter 工具包,它是一个简单高效的端到端自动语音识别(ASR)系统,实现了Wav2Letter: an End-to-End ConvNet-based Speech Recognition System和Letter-Based Speech Recognition with Gated ConvNets这两篇论文中提出的架构。如果大家想现在就开始使用这个工具进行语音识别,Facebook 提供 Librispeech 数据集的预训练模型。
以下为对系统的要求,以及这一工具的安装教程, AI 研习社整理如下:
安装要求:
系统:MacOS 或 Linux
Torch:接下来会介绍安装教程
在 CPU 上训练:Intel MKL
在 GPU 上训练:英伟达 CUDA 工具包 (cuDNN v5.1 for CUDA 8.0)
音频文件读取:Libsndfile
标准语音特征:FFTW
安装:
MKL
如果想在 CPU 上进行训练,强烈建议安装 Intel MKL
执行如下代码更新 .bashrc file
LuaJIT 和 LuaRocks
执行如下代码可以在 $HOME/usr 下安装 LuaJIT 和 LuaRocks,如果你想要进行系统级安装,删掉代码中的 -DCMAKE_INSTALL_PREFIX=$HOME/usr 即可。
接下来,我们假定 luarocks 和 luajit 被安装在 $PATH 下,如果你把它们安装在 $HOME/usr 下了,可以执行 ~/usr/bin/luarocks 和 ~/usr/bin/luajit 这两段代码。
KenLM 语言模型工具包(https://kheafield.com/code/kenlm)
如果你想采用 wav2letter decoder,需要安装 KenLM。
这里需要用到 Boost:
Boost 安装之后就可以安装 KenLM 了:
OpenMPI (https://www.open-mpi.org/)和 TorchMPI(https://github.com/facebookresearch/TorchMPI)
如果计划用到多 CPU/GPU(或者多设备),需要安装 OpenMPI 和 TorchMPI
免责声明:我们非常鼓励大家重新编译 OpenMPI。标准发布版本中的 OpenMPI 二进制文件编译标记不一致,想要成功编译和运行 TorchMPI,确定的编译标记至关重要。
先安装 OpenMPI:
注意:也可以执行 openmpi-3.0.0.tar.bz2,但需要删掉 --enable-mpi-thread-multiple。
接下来可以安装 TorchMPI 了:
Torch 和其他 Torch 包
训练 wav2letter 模型
数据预处理
数据文件夹中有预处理不同数据集的多个脚本,现在我们只提供预处理 LibriSpeech 和 TIMIT 数据集的脚本。
下面是预处理 LibriSpeech ASR 数据集的案例:
训练
多 GPU 训练
利用 OpenMPI
运行 decoder(推理阶段)
为了运行 decoder,需要做少量预处理。
首先创建一个字母词典,其中包括在 wav2letter 中用到的特殊重复字母:
然后将得到一个语言模型,并对这个模型进行预处理。这里,我们将使用预先训练过的 LibriSpeech 语言模型,大家也可以用 KenLM 训练自己的模型。然后,我们对模型进行预处理,脚本可能会对错误转录的单词给予警告,这不是什么大问题,因为这些词很少见。
可选项:利用 KenLM 将模型转换成二进制格式,加载起来将会更快。
现在运行 test.lua lua,可以生成 emission。下面的脚本可以显示出字母错误率 (LER) 和单词错误率 (WER)。
一旦存储好 emission,可以执行 decoder 来计算 WER:
预训练好的模型:
我们提供训练充分的 LibriSpeech 模型:
注意:该模型是在 Facebook 的框架下训练好的,因此需要用稍微不同的参数来运行 test.lua
Facebook:https://www.facebook.com/groups/717232008481207/
via:https://github.com/facebookresearch/wav2letter
领取专属 10元无门槛券
私享最新 技术干货