学习
实践
活动
工具
TVP
写文章

Facebook 发布 wav2letter 工具包,用于端到端自动语音识别

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180104A02MMG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券