Model · ASR post-processing

Gemma 3 270M ASR Paragraph Breaks: paragraphs for dictated text

Adds paragraph breaks to flat speech-to-text output and changes nothing else. Small enough to run on a phone after the speech model.

  • r2 · first release · 20 October 2026
  • Base: google/gemma-3-270m-it
  • Licence: Gemma Terms of Use
  • Runs offline: Transformers · ONNX Runtime

About the model

Speech recognition, such as a Parakeet fine-tune, returns punctuated, cased text as one block. This model returns the same text with paragraphs separated by blank lines. It is a full fine-tune of Gemma 3 270M, the smallest Gemma, so it can run on-device after the ASR pass.

It must not change a word. Because it is generative it retypes the whole text, so every call is checked: if anything other than whitespace changed, the input is used instead. On the test set that fallback fired on 2 of 26 memos.

The paragraphing style is mine: short paragraphs, with the opening line and each sign-off line on their own.

Which file should I download?

Recommended

safetensors (Transformers) 536 MB

Python on CPU or GPU, at full precision. Use the prompt and fallback check from the model card.

Run with Hugging Face Transformers Download safetensors (Transformers) →

ONNX fp32 1.66 GB

ONNX Runtime, on the same runtime as an ONNX speech model. Matched the PyTorch output on 6 of 6 test memos.

Run with ONNX Runtime / Optimum Download ONNX fp32 →

ONNX int8 417 MB

Experimental: about twice as fast on CPU, but matched PyTorch on only 2 of 6 memos and changed the text in one.

Run with ONNX Runtime / Optimum Download ONNX int8 →

Results

r2, run asr-paragraph-r2-gemma270m, evaluated 20 October 2026. Scored on 26 held-out synthetic voice memos whose paragraph breaks were reviewed by hand, as break-position precision and recall. Higher is better. A fallback is an output that changed a non-whitespace character, so the input is returned unchanged.

Test setUntrained Gemma 3 270MFine-tune r2
Break precision0.000.84
Break recall0.000.72
F10.000.78
Fallbacks (fewer is better)26 of 262 of 26
  • A longer run (r3: 804 pairs, 6 epochs) scored the same F1 with 1 fallback and was not published.
  • The rule-based labeller that made most of the training data starts from an already-paragraphed draft, so it is a ceiling in the chart, not a like-for-like baseline.
Paragraph-break F1 by method: untrained Gemma, the fine-tunes and the rule-based referenceParagraph length distribution in the model output and the reference

Training

  • Full fine-tune of google/gemma-3-270m-it with TRL SFT on prompt/completion pairs (completion-only loss): 505 training pairs, 3 epochs, learning rate 5e-05, bf16, one NVIDIA L4 on Modal.
  • Synthetic voice-memo transcripts written by Claude Haiku 5.5. A minority were paragraphed by hand; the rest were labelled by rules derived from those hand edits.

Training data

Checkpoints and roadmap

Where the model is now and the checkpoints still to come. Planned stages are the current plan, not promises.

  1. r2 Done 20 October 2026

    First release: 505 pairs, 3 epochs. F1 0.78.

  2. ONNX export Done 20 October 2026

    fp32 and int8 for ONNX Runtime, checked against the PyTorch model.

Limitations

  • English only, and trained on synthetic memos rather than real ASR output.
  • Memos longer than about 700 words were not in training: split longer transcripts first.
  • It retypes the whole text, so keep the fallback check. Generation on a CPU is slow for long memos.

Related

GemmaASR post-processingparagraph segmentationdictationvoice noteson-device