General
This is the 0.2.0 release of Deep Speech, an open speech-to-text engine. This release includes source code
and a trained model
deepspeech-0.2.0-models.tar.gz
trained on American English which achieves an 11% word error rate on the LibriSpeech clean test corpus (models with "rounded" in their file name have rounded weights and those with a "*.pbmm" extension are memory mapped and much more memory efficient), and example audio
which can be used to test the engine and checkpoint files
deepspeech-0.2.0-checkpoint.tar.gz
which can be used as the basis for further fine-tuning.
Notable changes from the previous release
- Made Deep Speech streamable, i.e. able to do inference while audio is streaming in (#1463)
- Introduced new streaming API, example usage in this gist (#1463)
- Added feature caching, precomputing + caching audio features to speed training (#1532)
- Added progressbar to indicate training progress (#1488)
- Updated Dockerfile's cuDNN version from 7.1.1 to 7.2.1 (1a7ac22)
- Removed old training + website scripts (#1539)
- Pre-built binaries now work with upstream TensorFlow 1.6 (c579b74)
- Switched to LSTMBlockFusedCell (0b95ed6)
- Added tool to convert graph protobuf to pbtxt (4e383ac)
- Added tool to find out which ops are needed by a graph (d2be00f)
- Added Non-positional arguments everywhere (646c917)
- Added support for Node.JS 10 (#1396)
Hyperparameters for fine-tuning
The hyperparameters used to train the model are useful for fine tuning. Thus, we document them here along with the hardware used, a server with 8 TitanX Pascal GPUs (12GB of VRAM).
train_files
Fisher, LibriSpeech, Switchboard training corpora, as well as a pre-release snapshot of the English Common Voice training corpus.dev_files
LibriSpeech clean and other dev corpora, as well as a pre-release snapshot of the English Common Voice validation corpus.test_files
LibriSpeech clean test corpustrain_batch_size
24dev_batch_size
48test_batch_size
48epoch
30learning_rate
0.0001display_step
0validation_step
1dropout_rate
0.2checkpoint_step
1n_hidden
2048
The weights with the best validation loss were selected at the end of the 30 epochs.
Bindings
This release also includes a Python based command line tool deepspeech
, installed through
pip install deepspeech
Alternatively, quicker inference can be performed using a supported NVIDIA GPU on Linux. (See below to find which GPU's are supported.) This is done by instead installing the GPU specific package:
pip install deepspeech-gpu
Also, it exposes bindings for the following languages
- Python (Versions 2.7, 3.4, 3.5, 3.6 and 3.7) installed via
Alternatively, quicker inference can be performed using a supported NVIDIA GPU on Linux. (See below to find which GPU's are supported.) This is done by instead installing the GPU specific package:
pip install deepspeech
pip install deepspeech-gpu
- NodeJS (Versions 4.x, 5.x, 6.x, 7.x, 8.x, 9.x and 10.x) installed via
Alternatively, quicker inference can be performed using a supported NVIDIA GPU on Linux. (See below to find which GPU's are supported.) This is done by instead installing the GPU specific package:npm install deepspeech
npm install deepspeech-gpu
- C++ which requires the appropriate shared objects are installed from
native_client.tar.xz
(See the section in the main README which describesnative_client.tar.xz
installation.)
In addition there are third party bindings that are supported by external developers, for example
- Rust which is installed by following the instructions on the external Rust repo.
Supported Platforms
- OS X 10.10, 10.11, 10.12, 10.13 and 10.14
- Linux x86 64 bit with a modern CPU (Needs at least AVX/FMA)
- Linux x86 64 bit with a modern CPU + NVIDIA GPU (Compute Capability at least 3.0, see NVIDIA docs)
- Raspbian Stretch on Raspberry Pi 3
- ARM64 built against Debian/ARMbian Stretch and tested on LePotato boards
Known Issues
- Feature caching speeds training but increases memory usage
Contact/Getting Help
- FAQ - We have a list of common questions, and their answers, in our FAQ. When just getting started, it's best to first check the FAQ to see if your question is addressed.
- Discourse Forums - If your question is not addressed in the FAQ, the Discourse Forums is the next place to look. They contain conversations on General Topics, Using Deep Speech, Alternative Platforms, and Deep Speech Development.
- IRC - If your question is not addressed by either the FAQ or Discourse Forums, you can contact us on the
#machinelearning
channel on Mozilla IRC; people there can try to answer/help - Issues - Finally, if all else fails, you can open an issue in our repo if there is a bug with the current code base.