zcaceres / spec_augment

🔦 A Pytorch implementation of GoogleBrain's SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition
https://arxiv.org/abs/1904.08779
MIT License
490 stars 63 forks source link

SpecAugment with Pytorch

A Pytorch Implementation of GoogleBrain's SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition

Medium Article

SpecAugment is a state of the art data augmentation approach for speech recognition.

The paper's authors did not publish code that I could find and their implementation was in TensorFlow. We implemented all three SpecAugment transforms using Pytorch, torchaudio, and fastai / fastai-audio.

To use:

  1. Run install.sh (I recommend using a unique conda env for the project)

After the install script runs, you should have a torchaudio folder in your project folder.

  1. Check out SpecAugment.ipynb (a Jupyter notebook) for the functions.

Augmentations

Time Warp time warp aug

Time Mask time mask aug

Frequency Mask freq mask aug

Combined: combined augs

Note on Time Warp

The Time Warp augmentation relies on Tensorflow-specific functionality not supported in Pytorch. We implemented supporting functions for this augmentation in SparseImageWarp.ipynb. You do not need to look at this notebook to use the augmentations. But the Time Warp augmentation depends on code exposed in the SparseImageWarp notebook.

Let's be friends!