Back to Moonshine

Available Models

docs/models/available-models.md

0.1.54.9 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.

Moonshine models are MIT by default, in every language and at every size. Streaming speech-to-text is what each language with a streaming model now selects by default. The older non-streaming models for languages other than English stay under the non-commercial Moonshine Community License; all other STT models are under the MIT License. Where a streaming replacement exists they are deprecated and remain reachable only by naming the architecture.

English WER in the first table is the Open ASR Leaderboard average across eight datasets, measured on the floating-point reference. Quantized English scores are a little higher, especially at Tiny; see Accuracy for LibriSpeech-clean float-vs-quantized numbers. Non-English streaming scores are 400-clip macros on the panels named in Accuracy (WER, or no-space CER for Japanese and Mandarin). Korean and Ukrainian have no streaming model yet, so their figures are the older full-FLEURS scores from scripts/eval-model-accuracy.py and are not comparable to the streaming rows.

Current models

LanguageArchitecture# ParametersWER/CERLicense
EnglishMedium Streaming245 million6.65%MIT
EnglishSmall Streaming123 million7.84%MIT
EnglishTiny Streaming34 million12.00%MIT
ArabicTiny Streaming34 million15.5%MIT
GermanSmall Streaming123 million7.5%MIT
GermanTiny Streaming34 million12.0%MIT
JapaneseSmall Streaming123 million17.2%†MIT
JapaneseTiny Streaming34 million19.7%†MIT
MandarinTiny Streaming34 million16.1%†MIT
SpanishSmall Streaming123 million4.9%MIT
SpanishTiny Streaming34 million6.2%MIT
TagalogTiny Streaming34 million14.9%MIT
VietnameseTiny Streaming34 million9.4%MIT
EnglishBase58 million10.07%MIT
EnglishTiny26 million12.66%MIT
KoreanTiny26 million6.46%Community
UkrainianBase58 million14.55%Community

† No-space character error rate, not word error rate.

The first architecture listed for each language is the default "ar", "de", "en" and so on will download. Korean and Ukrainian still default to their non-streaming Community models because no streaming checkpoint is published for them yet.

Deprecated models

These Community-licensed non-streaming models have a streaming replacement in the table above. They still load if you name the architecture, but new integrations should use the streaming model. Their FLEURS scores come from scripts/eval-model-accuracy.py (a character-weighted average on the full test set) and are not comparable to the streaming 400-clip figures.

LanguageArchitecture# ParametersWER/CERLicense
ArabicBase58 million5.63%Community
JapaneseBase58 million13.62%Community
JapaneseTiny26 millionCommunity
MandarinBase58 million25.76%Community
SpanishBase58 million4.33%Community
VietnameseBase58 million8.82%Community

Japanese Tiny has never been scored with scripts/eval-model-accuracy, so its cell is left empty rather than filled from another harness.

One common issue to watch out for if you're using models that don't use the Latin alphabet (so not English, Spanish, German, Vietnamese or Tagalog) 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.