Speech To Text (STT) model based on QuartzNet for recognizing German speech.
Model Overview
This model is based on the QuartzNet architecture [1]. The pre-trained models here can be used immediately for fine-tuning or dataset evaluation.
It utilizes a character encoding scheme, and transcribes text in the standard character set that is provided in the German portion of Common Voice from Mozilla (MCV) [2].
Model Architecture
The Quartznet model is composed of multiple blocks with residual connections between them, trained with CTC loss. Each block consists of one or more modules with 1D time-channel separable convolutional layers, batch normalization, and ReLU layers.
The Quartznet 15x5 model consists of 79 layers and has a total of 18.9 million parameters, with five blocks that repeat fifteen times plus four additional convolutional layers [1].
Training
This model was fine-tuned from English language to German. We took an encoder from the English version of QuartzNet network trained on ~3,000 hours of public English data. Then we changed the model's decoder to output characters from German alphabet and fine-tuned this model using German portion of Common Voice from Mozilla (MCV) [2]. We trained it on non-dev and non-test validated clips from Mozilla Common Voice version 6.0.
See details of the training procedure here [3].
Datasets
While training this model, we used the following datasets:
- Librispeech 960 hours of English speech (pre-training)
- Fisher Corpus (pre-training)
- Switchboard-1 Dataset (pre-training)
- WSJ-0 and WSJ-1 (pre-training)
- Mozilla Common Voice (German) (fine-tuning)
Performance
The performance of Automatic Speech Recognition models is measuring using Word Error Rate.
The model obtains the following scores on the following evaluation datasets -
- 11.8 % on the dev set from German MCV dataset.
Note that these scores on this evaluation sets are not particularly indicative of the quality of transcriptions that models trained on ASR Set will achieve, but they are a useful proxy.
How to Use this Model
The model is available for use in the NeMo toolkit [4], and can be used as a pre-trained checkpoint for inference or for fine-tuning on another dataset.
Automatically load the model from NGC
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="stt_de_quartznet15x5")
Transcribing text with this model
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py \
pretrained_name="stt_de_quartznet15x5" \
audio_dir=""
Input
This model accepts 16000 KHz Mono-channel Audio (wav files) as input.
Output
This model provides transcribed speech as a string for a given audio sample.
Limitations
Since this model was trained on publically available speech datasets, the performance of this model might degrade for speech which includes technical terms, or vernacular that the model has not been trained on. The model might also perform worse for accented speech.
This model was trained on relatively small amount of speech data. It's performance will vary greatly based on your application and audio. We recommend using it as a starting point for fine-tuning your own models.
References
Licence
License to use this model is covered by the NGC TERMS OF USE unless another License/Terms Of Use/EULA is clearly specified. By downloading the public and release version of the model, you accept the terms and conditions of the NGC TERMS OF USE.