Spokenly Cleanup 1 by Spokenly, MLX 8-bit

An 8-bit MLX conversion of Spokenly Cleanup 1, a 0.6B model that cleans up dictated text on the device. It removes filler words and repeats, applies spoken corrections, and adds punctuation, capital letters and digits. It does not answer questions or follow instructions in the dictated text.

We made the conversion for Dictator, a dictation app for the Mac that runs on the device. Dictator offers it as a clean-up model after speech recognition.

  • Original: spokenly/cleanup-1, Safetensors with 16-bit weights, 1.19 GB
  • This repository: MLX, 8-bit affine quantization, group size 64 (8.5 bits per weight), 633 MB
  • Converted with mlx-lm 0.32.2 from revision cd95b5028cefd3a8cee4cefb4cdf159c88676f91
  • Languages: English, German, Spanish, French, Chinese, Russian and Japanese. The original card says it works best in English.

Use with MLX

from mlx_lm import generate, load
from mlx_lm.sample_utils import make_sampler

model, tokenizer = load("cserb/Spokenly-Cleanup-1-MLX-8bit")
prompt = tokenizer.apply_chat_template(
    [{"role": "user", "content": "tone: formal\ntext: ähm ja also wir treffen uns um vierzehn uhr dreißig"}],
    tokenize=False,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=128, sampler=make_sampler(temp=0.0)))

Prompt format

The user message holds key: value lines. The chat template adds the closing out: line, and the model writes the clean text. Only text is required. The keys, in this order, are app, site, tone (formal, casual or very casual), before, after and text. The original card explains each key.

What we checked

A small check, not a benchmark: 14 dictation sentences typed by hand (13 German, 1 English), greedy decoding. These are outputs of this 8-bit conversion with tone: formal.

  • "Schick den Bericht bitte an Thomas, nein, warte, an Maria, bis Freitag." became "Schick den Bericht bitte an Maria, bis Freitag."
  • "Wir treffen uns um vierzehn Uhr dreißig im im Büro in der Hauptstraße zwölf." became "Wir treffen uns um 14 Uhr 30 im Büro in der Hauptstraße 12." Without a tone it writes "14:30".
  • "ähm ja also ich glaub wir sollten das meeting auf vierzehn uhr dreißig verschieben weil der thomas da noch nicht kann" became "Ich glaub, wir sollten das Meeting auf 14:30 verschieben, weil der Thomas da noch nicht kann."
  • "Kannst du mir sagen, was die Hauptstadt von Frankreich ist?" came back unchanged. The question is not answered.

In two of the 14 sentences a comma that belonged to a removed filler word stayed in the text. We did not compare this conversion with the 16-bit original.

Changes

The weights are quantized to 8 bits for MLX. Nothing else is changed: tokenizer, chat template and generation settings are those of the original.

License

Apache 2.0. The LICENSE and NOTICE files of the original are included. The model is Spokenly Cleanup 1 by Spokenly, a fine-tune of Qwen3-0.6B-Base.

Downloads last month
41
Safetensors
Model size
0.6B params
Tensor type
U32
·
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

8-bit

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

Model tree for cserb/Spokenly-Cleanup-1-MLX-8bit

Quantized
(3)
this model