Back to Moonshine

Available Models

docs/models/available-models.md

0.1.22.6 KB
Original Source

Available Models

Here are the models currently available. See Downloading Models for how to obtain them. This library uses the Onnx model format, converted to the memory-mappable OnnxRuntime (.ort) flatbuffer encoding. For safetensor versions, see the HuggingFace section.

LanguageArchitecture# ParametersWER/CER
EnglishTiny26 million12.66%
EnglishTiny Streaming34 million12.00%
EnglishBase58 million10.07%
EnglishSmall Streaming123 million7.84%
EnglishMedium Streaming245 million6.65%
ArabicBase58 million5.63%
JapaneseBase58 million13.62%
KoreanTiny26 million6.46%
MandarinBase58 million25.76%
SpanishBase58 million4.33%
UkrainianBase58 million14.55%
VietnameseBase58 million8.82%

The English evaluations were done using the HuggingFace OpenASR Leaderboard datasets and methodology. The other languages were evaluated using the FLEURS dataset and the scripts/eval-model-accuracy script, with the character or word error rate chosen per language.

Note that the English WER figures above are the Open ASR Leaderboard average across eight datasets, measured on the floating-point reference models. The quantized models this library actually ships score a little higher, especially at the Tiny size. See Accuracy (Word Error Rate) below for a float-vs-quantized comparison and instructions on reproducing the numbers.

One common issue to watch out for if you're using models that don't use the Latin alphabet (so any languages except English and Spanish) is that you'll need to set the max_tokens_per_second option to 13.0 when you create the transcriber. This is because the most common pattern for hallucinations is endlessly repeating the last few words, and our heuristic to detect this is to check if there's an unusually high number of tokens for the duration of a segment. Unfortunately the base number of tokens per second for non-Latin languages is much higher than for English, thanks to how we're tokenizing, so you have to manually set the threshold higher to avoid cutting off valid outputs.