German STT model evaluation

January 22, 2022 ยท View on GitHub

In search of a "good" STT model for German language I have evaluated all free (as in free beer and open source) models.

tl;dr As of January 2022 NeMo-ASRs Conformer-Transducer model is the overall leader (WER 5.77 / CER 1.46) on GPU, while Jaco-Assistant/Scribosermo model is still a very good choice for CPU (WER 9.43 / CER 3.66).

Vendor / ArchitectureModelWERCERRTFComment
Jaco-Assistant / Scribosermofull / Scorer: D37CV9.433.660.078CPU 8 cores
Jaco-Assistant / Scribosermoquantized / Scorer: D37CV9.513.700.096CPU 8 cores
Mozilla DeepSpeechdeepspeech-german v0.9.027.9311.360.209
Mozilla DeepSpeechPolyglot14.4511.360.241
Silerov4 large18.986.670.009RTF is not a typo
Wav2Vecjonatasgrosman / wav2vec2-large-xlsr-53-german10.872.680.06Batchsize 1
Vosk0.2112.844.560.292
Nvidia NeMo-ASRConformer-CTC 1.5.07.391.800.064GPU w/Apex-AMP
Nvidia NeMo-ASRConformer-Transducer 1.6.05.771.460.127GPU w/Apex-AMP
Nvidia NeMo-ASRConformer-Transducer 1.5.06.201.620.124GPU w/Apex-AMP
Nvidia NeMo-ASRCitrinet-1024 1.5.08.242.320.069GPU w/Apex-AMP
Nvidia NeMo-ASRContextnet-1024 1.4.06.681.770.098GPU w/Apex-AMP
Nvidia NeMo-ASRQuartznet-15x15 1.0.0rc113.233.530.064GPU w/Apex-AMP

Conclusion

For GPU NeMo-ASRs models are leader of the pack. The Conformer-Transducer model gives you best WER and CER, the Contextnet-1024 and Conformer-CTC models are runner up with still very good values and even better RTF than the Transducer model.

On CPU both Jaco-Assistant/Scribosermo models - full and quantized - give you good WER/CER values and good performance. (Note: Jaco website claims WER 7.5% while I got "only" 9.4%). Silero is blazing fast but WER of 19% makes it impractical for daily use.

Notes on methodology

Word error rate (WER) and character error rate (CER) were calculated (with PyPi-package jiwer==2.2.0) on the Common-Voice test-dataset provided by Huggingface (huggingface/common_voice/de/6.1.0 retrieved with PyPi-package datasets==1.13.3). The real time factor (RTF) has been calculated by running inference on the first 1,000 records of the same dataset as above. Pre- and post-processing times (loading audio files, sample rate conversion, normalizing results, etc.) were excluded.

Evaluation was performed on a Nvidia Xavier AGX 32GB with JetPack 4.6, MAXN mode and jetson-clocks enabled.

You like this page? Then don't be shy and click the star-button. Thanks you.