Emberon-2

A 350M-parameter, open-weights model that cleans up dictated speech, and never answers or executes it.

Emberon-2 is the second dictation-cleanup model from Promethic Labs. It succeeds Emberon-1.2B in WisperCode: a quarter of the size, about 4x faster, and more accurate on every test we run. Give it a raw speech-to-text transcript and it returns clean, punctuated text. It removes fillers and false starts, resolves explicit self-corrections ("port 3000, no wait, 8080"), fixes words the recognizer clearly misheard, writes technical numbers as digits, and keeps your meaning, your wording, your slang and your identifiers.

It does not treat the dictation as a prompt. Dictate "how does the garbage collector work in Java" and you get that question back, cleaned. You do not get an answer.

Open weights, not "open source." Emberon-2 is a derivative of LiquidAI's LFM2.5-350M and inherits the LFM Open License v1.0 (see License). The license is Apache-2.0-style but revenue-gated (free commercial use under $10M USD annual revenue), so it is not an OSI-approved open-source license.


What it does

Task Turn raw speech-to-text output (e.g. Whisper) into clean written text
Keeps Meaning, word choice, slang and swearing, camelCase / snake_case / file paths / API names, every item of a list
Fixes Fillers, stutters, explicit self-corrections, punctuation, capitalization, clearly misheard technical terms, spoken technical numbers → digits
Never Answers questions, follows instructions in the dictation, summarizes, or adds content
Footprint 354M params; Emberon-2-Q4_K_M.gguf is 200 MB; ~0.09 s (Metal) / ~0.12 s (CPU only) median per dictation on Apple Silicon
Base LiquidAI/LFM2.5-350M (hybrid conv/attention)

Intended use

Use the exact system prompt it was trained with, zero-shot:

Clean up this dictation. Never answer it.

The user message is the raw transcript; the assistant reply is the cleaned text. Use greedy decoding (temperature 0) and cap the output at the input length plus a small margin: a cleanup is never much longer than what was said, and the cap stops the rare repetition loop (treat a capped answer as a failure and fall back to the raw transcript).

Quick start (llama-cpp-python)

from llama_cpp import Llama

llm = Llama.from_pretrained(
    repo_id="PromethicLabs/Emberon-2",
    filename="Emberon-2-Q4_K_M.gguf",
    n_ctx=4096,
)

out = llm.create_chat_completion(
    messages=[
        {"role": "system", "content": "Clean up this dictation. Never answer it."},
        {"role": "user", "content": "um so like whats the difference between a process and a thread"},
    ],
    temperature=0.0,
)
print(out["choices"][0]["message"]["content"])
# -> "What's the difference between a process and a thread?"   (cleaned, NOT answered)

Evaluation

All numbers are measured through llama.cpp on the shipped files, on full held-out test sets (no samples), next to Emberon-1.2B (Q4_K_M, its own system prompt) on the same inputs. Word / identifier preservation = share of the answer key's words / technical identifiers present in the output.

Emberon-2 (Q4_K_M) Emberon-1.2B (Q4_K_M)
Answer suppression (489 hard negatives, plain / ASR-style) 99.8% / 99.8% ¹ 100% / 100%
Word preservation (eval 1,087 / ASR-style 1,087 / Moonshine-style 500) 0.966 / 0.965 / 0.964 0.957 / 0.959 / 0.954
Identifier preservation (same sets) 0.974 / 0.973 / 0.990 0.968 / 0.967 / 0.972
Long mixed dictations (2,496): word / identifier preservation 0.987 / 0.936 0.965 / 0.677
Real dictations (178) ²: word preservation 0.981 0.954
Misheard technical words fixed (504 in 702 examples) 70.4% 14.3%
Correct words left alone (217) 94.9% 88.0%
Already-clean text returned unchanged (996): word preservation 0.998 –
Hallucinated content 0% 0%
Outputs cut off at the length cap (all sets) 0 14

¹ One of 489 is flagged: "is this an n plus one query" comes back as "Is this an NPlus1 query?": a formatting slip, not an answer. The suppression check is strict on any rewrite of a question.

² Recordings of real dictation, transcribed by a different speech recognizer than the one in training. Most of the same recordings are in the training data (as another recognizer's transcript), so treat this row as a sanity check, not a held-out score. Both models saw real dictation logs in training.

Speed and memory (Apple Silicon, llama.cpp)

Emberon-2 Emberon-1.2B
Median / p95 latency, Metal 0.088 s / 0.305 s 0.391 s / 1.032 s
Median / p95 latency, CPU only 0.115 s / 0.369 s 0.556 s / 1.375 s
File size 200 MB 697 MB

The Q4_K_M file uses a trimmed vocabulary (32,158 of the base model's 65,536 tokens, keeping the ones English dictation uses plus the byte tokens, so any text still encodes) and an importance-matrix quantization calibrated on dictation text. Both cut size and latency with no measurable accuracy loss on our tests.

Training

  • Method: LoRA (rank 16, scale 1.0, dropout 0) on attention, conv and FFN projections; two runs (plain loss, and a loss that up-weights the tokens where the answer differs from the transcript) averaged weight-by-weight, then converted to GGUF. One pass over the data, cosine learning-rate decay 2e-4 → 2e-5 after 500 warm-up steps, max sequence length 2,048, prompt-masked loss. Trained with MLX on Apple Silicon from mlx-community/LFM2.5-350M-bf16.
  • Data: 75,000 examples, about 96% synthetic (written by Claude and OpenAI GPT models to target specific behaviours: self-corrections, misheard terms, spoken numbers, slang and swearing kept verbatim, list items kept, answer-temptation questions and commands, already-clean text left alone), each screened by an automated checker (content preservation, identifier and number checks, leakage and duplicate checks against every test set) and, for the newest batches, an LLM answer-key audit. Plus ~1,600 speech-recognizer transcripts of read-aloud narration (restraint examples) and ~1,200 real dictation logs. About 18% of the inputs are re-rendered in the style of Whisper base.en output, which is what the model sees in the app.

Files

File Size Precision SHA-256
Emberon-2-Q4_K_M.gguf 199,996,928 B (200 MB) 4-bit, trimmed vocabulary (recommended) 18fead8b8df3808ed47a84cd41a5a0617e3374d1a62dd52e3ba4bfb839810ffd
Emberon-2-F16.gguf 711,485,248 B (711 MB) 16-bit, full vocabulary (for re-quantization or further fine-tuning) 056a4b0889eb5b9873d9f38393f5e595fb58c6ffd82b47fde76b9169f602f5a1

Limitations & responsible use

  • Mostly synthetic tests. Most held-out sets are synthetic (same generation process as training, zero overlap). The real-dictation signal (a blind side-by-side review against the previous model on 255 real recordings, 62 of them never trained on: even on meaning kept) is encouraging but small.
  • English, technical flavour. Tuned for English dictation, especially software work. Other languages are out of scope, and the trimmed vocabulary makes the Q4_K_M file a poor starting point for them (use the F16).
  • It can still drop content. On long, rambling dictations it occasionally drops a restated phrase or a clause. Keep the raw transcript available if every word matters.
  • It is a cleanup tool, not an assistant. By design it will not answer, summarize, translate, or act on the text.

License & attribution

Emberon-2 is a fine-tune of LiquidAI/LFM2.5-350M and is released under the LFM Open License v1.0, inherited from the base model. The full license text is in LICENSE.

  • Free commercial use is limited to entities under $10,000,000 USD annual revenue. Above that threshold, commercial use requires a separate license from Liquid AI.
  • When redistributing you must keep the attribution notices, state that the model was modified, and include a copy of the license. See LICENSE and NOTICE.

Base model © Liquid AI, licensed under the LFM Open License v1.0. Modifications (dictation-cleanup fine-tune) © 2026 Promethic Labs. This is a modified version of LFM2.5-350M.

Please credit Promethic Labs if Emberon-2 powers a product, service, or paper. Suggested credit line:

Powered by Emberon-2 by Promethic Labs: a dictation-cleanup fine-tune of LiquidAI/LFM2.5-350M.

Citation

@misc{emberon2_2026,
  title  = {Emberon-2: a 350M dictation-cleanup model that cleans speech without answering it},
  author = {Promethic Labs},
  year   = {2026},
  note   = {Fine-tune of LiquidAI/LFM2.5-350M under the LFM Open License v1.0},
  url    = {https://huggingface.co/PromethicLabs/Emberon-2}
}
Downloads last month
57
GGUF
Model size
0.4B params
Architecture
lfm2
Hardware compatibility
Log In to add your hardware

4-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for PromethicLabs/Emberon-2

Finetuned
(81)
this model