Skip to content
Facebook AI Research's Automatic Speech Recognition Toolkit
C++ Python CMake Cuda Shell Dockerfile C
Branch: master
Clone or download
vineelpratap and facebook-github-bot Better exception handling for warp-ctc
Summary: warp-ctc works only for label length < 639 and throws "unknown_error" if the label length is larger than that. Throw a more readable error in this case.

Reviewed By: xuqiantong

Differential Revision: D18343656

fbshipit-source-id: 897f8ab1618129a02e7a3142f1bbf192a5ebe6a4
Latest commit 7258c16 Nov 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci More improvements to w2l CI in OS Aug 15, 2019
bindings/python Auto-cast tensor types in python ASGLoss Sep 5, 2019
cmake Find libgflags_debug.a correctly. (#433) Oct 28, 2019
docs Throw error if no train examples found and readme improvement (#411) Sep 26, 2019
recipes Fix 'too-few-format-args' from pylint. (#409) Sep 25, 2019
src Better exception handling for warp-ctc Nov 6, 2019
tutorials Update W2L tutorial to use ListFilesDataset Aug 21, 2019
.clang-format Bring back clang-format Apr 19, 2019
.gitignore Misc fixes for fairseq integration / FAIR cluster Jul 29, 2019
CMakeLists.txt fix Dockerfiles for CUDA and CPU; arch docs improve Sep 13, 2019 Adopt Contributor Covenant Aug 30, 2019 Bring back clang-format Apr 19, 2019
Decode.cpp Make cmd line flags redefine flag file in the Decode Sep 12, 2019
Dockerfile-CPU fix Dockerfiles for CUDA and CPU; arch docs improve Sep 13, 2019
Dockerfile-CPU-Base CircleCI automated build checks and CUDA/CPU Dockerfile base May 31, 2019
Dockerfile-CUDA add supporing python bindings installation in Dockerfile for CUDA bac… Sep 13, 2019
Dockerfile-CUDA-Base add supporing python bindings installation in Dockerfile for CUDA bac… Sep 13, 2019
LICENSE Initial Commit Dec 21, 2018 Fix apex readme paths, URL-encode model bin srcs Aug 28, 2019
Test.cpp Unbreak model releasing Aug 29, 2019
Train.cpp cosine lr schedule. Sep 30, 2019



wav2letter++ is a fast, open source speech processing toolkit from the Speech team at Facebook AI Research built to facilitate research in end-to-end models for speech recognition. It is written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency. Our approach is detailed in this arXiv paper.

This repository also contains pre-trained models and implementations for various ASR results including:

The previous iteration of wav2letter (written in Lua) can be found in the wav2letter-lua branch.

Building wav2letter++

See Building Instructions for details.

Full documentation

To get started with wav2letter++, checkout the tutorials section.

We also provide complete recipes for WSJ, Timit and Librispeech and they can be found in recipes folder.

Finally, we provide Python bindings for a subset of wav2letter++ (featurization, decoder, and ASG criterion).


If you use the code in your paper, then please cite it as:

  author          = {Vineel Pratap, Awni Hannun, Qiantong Xu, Jeff Cai, Jacob Kahn, Gabriel Synnaeve, Vitaliy Liptchinsky, Ronan Collobert},
  title           = {wav2letter++: The Fastest Open-source Speech Recognition System},
  journal         = {CoRR},
  volume          = {abs/1812.07625},
  year            = {2018},
  url             = {},

Join the wav2letter community

See the CONTRIBUTING file for how to help out.


wav2letter++ is BSD-licensed, as found in the LICENSE file.

You can’t perform that action at this time.