Native audio in, structured decisions out. Aural One adapts Gemma 4 E2B to score supplied choices from a recording, a written state, and named questions. One model handles the audio and the decision; its inference path does not require speech-to-text or a separate sound classifier. This v0.1.0 research preview publishes a frozen adapter and 54.3 million updated acoustic/projection weights. The pinned Gemma 4 E2B base is downloaded separately. The language model was frozen during this final training stage. These numbers have different test scopes. The full evaluation report covers the frozen reference, listener-vote cross-entropy and calibration, same-words contrasts, sound events…
Open-weight model · Audio text to text
MOSS-Music-8B-Instruct-GGUF
by Scragnog scragnog/MOSS-Music-8B-Instruct-GGUF
MOSS-Music-8B-Instruct-GGUF is an open-weight model for audio text to text from Scragnog, released under Apache License 2.0. Its published files total 26.8 GB. It draws 1M downloads a month.
GGUF conversion of OpenMOSS-Team/MOSS-Music-8B-Instruct for HOT-Step CPP, a fully local desktop app for AI music generation with a native C++/GGML engine. As far as we know this is the first GGUF conversion of this model.
Model Card
By Scragnog, published under apache-2.0, revision 9fe86435bd54.
GGUF conversion of OpenMOSS-Team/MOSS-Music-8B-Instruct for HOT-Step CPP, a fully local desktop app for AI music generation with a native C++/GGML engine. As far as we know this is the first GGUF conversion of this model. Unlike everything else HOT-Step ships, this model analyses audio rather than generating it. It listens to a track and writes a caption describing what it hears — used in HOT-Step's Training Studio to caption your own dataset locally, with no API key and nothing leaving the machine. These files are downloaded automatically by HOT-Step's Model Manager. They are not usable with llama.cpp alone: moss-lm-.gguf is structurally a Qwen3 GGUF, but captioning requires the audio…
Read Scragnog's full model card
GGUF conversion of OpenMOSS-Team/MOSS-Music-8B-Instruct for HOT-Step CPP, a fully local desktop app for AI music generation with a native C++/GGML engine. As far as we know this is the first GGUF conversion of this model.
Unlike everything else HOT-Step ships, this model analyses audio rather than generating it. It listens to a track and writes a caption describing what it hears — used in HOT-Step's Training Studio to caption your own dataset locally, with no API key and nothing leaving the machine.
These files are downloaded automatically by HOT-Step's Model Manager. They are not usable
with llama.cpp alone: moss-lm-*.gguf is structurally a Qwen3 GGUF, but captioning requires
the audio tower in moss-aud-f16.gguf and the deepstack injection wiring implemented in
HOT-Step's engine.
Files
| File | Component | Quants |
|---|---|---|
moss-lm-<quant>.gguf |
Language model (8B, Qwen3 arch) + full tokenizer | q8_0 · f16 |
moss-aud-f16.gguf |
Audio tower — 32-layer Whisper-style encoder, SwiGLU adapter, 3 deepstack mergers | f16 only — never quantised |
LICENSE |
Apache 2.0 (governs the weights) | — |
You need one moss-lm plus moss-aud-f16. q8_0 is the recommended default: half the
download, no audible difference in caption quality. f16 is the reference bar and is what the
parity fixtures were captured against.
The audio tower is f16 only, deliberately. Its adapter output runs roughly 770× hotter than the encoder's own activations (absmean 426 vs 0.554), and that output lands directly in the LM's input embeddings — so quantisation error there is not attenuated by anything downstream. At 1.6 GB it is not worth the risk.
Usage in HOT-Step
Training Studio → Enhance → caption provider "MOSS-Music 8B — local, hears the audio". One pass produces both caption formats the app consumes:
- the ACE-Step 1.5 sidecar block (
caption/genre/bpm/key/signature) - an MM3 Structured Caption written to
<stem>.mm3.txt
Both come off a single audio encode — the encoder is prompt-independent, so N caption formats cost one audio pass and N short decodes.
Two things HOT-Step deliberately does not take from MOSS: tempo and key. These are not merely biased, they are unstable — one encode decoded twice gave "120 BPM" in one format and "approximately 128" in the other, for a track that is 123. HOT-Step substitutes its own Essentia analysis for those fields and keeps everything MOSS actually heard.
Conversion provenance
Converted with HOT-Step's engine/tools/convert-moss.py
from the bf16 safetensors published by the OpenMOSS Team. The inv_timescales buffer is
skipped (non-persistent; recomputed in the graph). The implementation is parity-validated
against an fp32 CPU reference of the original PyTorch model at every module boundary:
| Stage | Correlation vs fp32 reference |
|---|---|
| log-mel frontend | 0.9999942 |
| encoder output + 3 deepstack taps | 0.9999962 – 1.0000000 |
| SwiGLU adapter + 3 mergers | 0.9999962 – 1.0000000 |
| final-position logits | 0.9999986 / 0.9999990 (argmax exact) |
| KV-cached decode vs fresh forward | 1.0000000 |
One conversion detail worth knowing if you build on this: the reference processor's
from_pretrained pops enable_time_marker with a default of False, while its own
__init__ signature defaults it True. The markers — elapsed-second digits interleaved into
the audio token stream every 2 s — are not optional; without them the model receives
out-of-distribution input and quality collapses in a way that looks like a bad conversion
rather than a bad prompt. HOT-Step always emits them.
Credits
All credit for the model belongs to the OpenMOSS Team. MOSS-Music-8B-Instruct is their work — the architecture, the training, and the decision to release it under Apache 2.0, which is what made it possible to ship local captioning in a free tool at all. Several proprietary or non-commercially-licensed captioners were evaluated alongside it and ruled out on licensing grounds; MOSS is here because the OpenMOSS Team chose a permissive licence. This repository contains nothing but a format conversion of their weights.
Thanks also to:
- MiniMax for MiniMax-Music3, the generation backend these captions feed. The MM3 Structured Caption format this model is prompted to produce is MiniMax's design — see scragnog/MiniMax-Music3-GGUF for the GGUF conversion of that model.
- ACE Studio / StepFun for ACE-Step, the model HOT-Step is built around.
- Pascal (ServeurpersoCom) for acestep.cpp, the C++/GGML port HOT-Step extends.
License
Apache 2.0, inherited from the base model, © the OpenMOSS Team. The conversion adds no additional restrictions.
Identity and Version
- Repository
- scragnog/MOSS-Music-8B-Instruct-GGUF
- Publisher
- Scragnog
- Task
- Audio text to text
- Modality
- Other
- Library
- Not stated by the source
- Parameters
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- 9fe86435bd542bf29cbf4984e9e0ab0ea8ca7e00
- First published
- 2026-08-16
- Last updated
- 2026-08-16
Files and Weights
6 files, 26.8 GB in total. The weights are 3 files totalling 26.8 GB in gguf.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| moss-aud-f16.gguf | Weights | 1.7 GB | 014b971719a9 |
| moss-lm-f16.gguf | Weights | 16.4 GB | 75d6f76d1e75 |
| moss-lm-q8_0.gguf | Weights | 8.7 GB | 482e1e82c66f |
| LICENSE | Documentation | 11.4 KB | — |
| README.md | Documentation | 5.5 KB | — |
| .gitattributes | Repository | 1.7 KB | — |
License and Download
- License
- apache-2.0
- Access
- Open weights, no gate
- Download size
- 26.8 GB
Released by Scragnog through its official repository on Hugging Face. Read the license.
Built From
- Derived from OpenMOSS-Team/MOSS-Music-8B-Instruct
- Quantized from OpenMOSS-Team/MOSS-Music-8B-Instruct
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 26.8 GB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About MOSS-Music-8B-Instruct-GGUF
Can I use MOSS-Music-8B-Instruct-GGUF commercially?
Yes. MOSS-Music-8B-Instruct-GGUF is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.
Similar Models
Paper: arXiv:2610.02638 · Code: github.com/adventists-ai/duplexjev · Research note: teaching a speech-decision LLM to hear stress DuplexJev-32B-Turn that also hears stress and pauses. "I didn't say she took the money" and "I didn't say she took the money" are the same words. This model can tell them apart: it answers which word is stressed, is any word stressed at all, and where the speaker pauses, in Mandarin and English. Spoken QA, gender, emotion and turn-taking stay at the 32B-Turn level. Same size, same serving stack, same prompt format as the other DuplexJev models. DuplexJev reads typed, closed-set decisions from speech as a single-token distribution of the LLM: zero decode steps…
Paper: arXiv:2610.02638 · Code: github.com/adventists-ai/duplexjev · Research note: teaching a speech-decision LLM to hear stress The DuplexJev model that hears the most beyond the words. On top of everything DuplexJev-32B-Turn and DuplexJev-32B-Stress do (spoken QA, gender, emotion, turn-taking, stress and pauses), it also hears laughter, breathing, coughs and sighs, notices how someone is talking (whispering, shouting, very fast or slow), and can tell, roughly as a person would, whether two clips are the same speaker. Mandarin and English. DuplexJev reads typed, closed-set decisions from speech as a single-token distribution of the LLM: zero decode steps, many questions about the same…
A small DuplexJev connector: the Whisper-small encoder (frozen) feeds a frozen SmolLM3-3B, and every typed question is read as a single-token distribution over its options, with zero decode steps and many questions per forward pass. Trained with the same recipe as the Qwen3-32B connectors released with the paper. The connector was trained with SmolLM3's no-think format (an empty block before the answer). The tokenizer in this repository carries that chat template; SmolLM3's default template adds a long system prompt with today's date and would not match. Leaderboard scores (see the GitHub README): main language (mean of qa100, ZJU-ML, Easy-Turn) 37.4, paralinguistics (mean of gender…
A small DuplexJev connector: the Whisper-small encoder (frozen) feeds a frozen Qwen3-4B-2507, and every typed question is read as a single-token distribution over its options, with zero decode steps and many questions per forward pass. Trained with the same recipe as the Qwen3-32B connectors released with the paper. Leaderboard scores (see the GitHub README): main language (mean of qa100, ZJU-ML, Easy-Turn) 53.5, paralinguistics (mean of gender, emotion) 43.0. Paper protocol: the evaluation prompts of the paper (single option order, one H200). duplexjev defaults: the package's own prompts with lang matched to the clip. Spoken QA with a small LLM is bounded by the LLM itself (see the…
MOSS-Transcribe-Diarize 0.9B is an end-to-end audio understanding model for long-form multi-speaker transcription, diarization, timestamps, and acoustic event awareness. It supports transcription and diarization across 50+ languages, single-pass inference on audio recordings up to 90 minutes long, and custom hotword prompting for domain-specific terms. Given an audio or video file, the model generates a compact speaker-aware transcript in one pass, including timestamps and anonymous speaker labels such as [S01], [S02], and beyond. 2026-07-22: The subtitle Web UI now supports both Simplified Chinese and English. 2026-07-14: MOSS-Transcribe-Diarize won first place in the 2nd MLC-SLM Challenge…