CoolFace
Modelpublic

zeromodels/moonshine_base

sourceHugging Facemitupdated 27d agoView on Hugging Face
0likes41downloads
Model Card

*See [our collection](https://huggingface.co/collections/zeromodels/moonshine-6a8eaf317c682a7009c68b2c) for all versions of Moonshine.*

Run Moonshine with Keras 3: JAX, PyTorch, or TensorFlow

![GitHub](https://github.com/IMvision12/ZeroModels) ![Docs](https://imvision12.github.io/ZeroModels/moonshine/) ![Collection](https://huggingface.co/collections/zeromodels/moonshine-6a8eaf317c682a7009c68b2c)

zeromodels/moonshine_base

Paper: Moonshine: Speech Recognition for Live Transcription and Voice Commands (arXiv:2410.15608) · HF Papers

Moonshine is an English ASR encoder-decoder built for short / live audio: the encoder sees the raw waveform length you pass in (no Whisper-style 30 s pad), so short commands stay cheap. Output is cased and punctuated.

For more details on the model, please go to the upstream model card.

Pure-Keras 3 conversion of `UsefulSensors/moonshine-base` for zeromodels. One implementation runs unmodified on TensorFlow / Torch / JAX.

This is an ASR checkpoint (MoonshineConditionalGenerate).

✨ Quick start

python
import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

import soundfile as sf
from zeromodels.models.moonshine import (
    MoonshineProcessor,
    MoonshineConditionalGenerate,
)

model = MoonshineConditionalGenerate.from_weights("zeromodels/moonshine_base")
processor = MoonshineProcessor.from_weights("zeromodels/moonshine_base")

audio, sr = sf.read("your_audio.wav", dtype="float32")  # 16 kHz mono
# Cost scales with clip length: no fixed 30 s pad like Whisper.
text = model.generate(audio, processor)
print(repr(text[0]))

Load any Moonshine variant the same way with from_weights("zeromodels/<variant>"):

VariantHub
moonshine_tiny`zeromodels/moonshine_tiny`
moonshine_base`zeromodels/moonshine_base`

Tips

  • Set KERAS_BACKEND before importing Keras / zeromodels.
  • Prefer MoonshineProcessor.from_weights(...) so feature extraction matches.
  • English-only; pass a list of waveforms to batch.
  • See Moonshine docs and Loading Weights.
  • Community / upstream safetensors still work via the hf: prefix, e.g. MoonshineConditionalGenerate.from_weights("hf:UsefulSensors/moonshine-base").

Special Thanks

A huge thank you to the Useful Sensors Moonshine authors for creating and releasing these models.

License: MIT.