All posts
Open Source2026-07-25

Opening DictatorFlow: Free Local Inference and Interruptible ASR Training

DictatorFlow started as a fast way to replace typing with speech. We are now opening the source around that experience too: the native desktop client, the hosted API code, and the OmniServe Native scheduler that decides when this machine should infer locally, fall back remotely, or spend idle GPU time improving a model.

What is opening
  • > DictatorFlow source under Apache 2.0, alongside the already free desktop downloads and free local inference.
  • > OmniServe Native's C gateway, local/remote ASR router, CUDA/ROCm/CPU worker, and background training controller.
  • > The training recipe, consent manifest validator, WER release gates, model-card template, and reviewed Hugging Face publisher.
  • > Trained variants after they pass privacy, licensing, memorization, and accuracy review.

Serving gets the GPU first

Training on a production inference machine is only useful if it does not make the product worse. OmniServe therefore admits training as an exclusive background job only after interactive work drains. If a paid, subscription, or free inference request arrives, the trainer saves a resumable checkpoint and exits. We do not freeze the Python process with SIGSTOP, because that would leave its tensors sitting in GPU memory.

1. Route
DictatorFlow asks OmniServe first. Healthy local CUDA, ROCm, or CPU inference handles the common path.
2. Spill
If the model is held, unhealthy, or short on VRAM, the same request is replayed to a configured hosted provider.
3. Learn
When every serving queue is empty, one checkpointed training segment can use the idle GPU.

This is a cost decision as much as a latency decision. Warm local inference avoids a metered provider call. Remote fallback avoids buying another always-on GPU just to cover a busy moment. Interruptible training turns genuinely idle compute into model improvement without pretending that a background experiment is more important than a live user.

Speech consent has to be specific

A downloadable model changes the privacy boundary. Generic “help improve the product” language is not enough, and old recordings cannot be made eligible retroactively. Contribution is now a separate opt-in for future cloud dictation, explicitly stating that the result may be publicly downloadable model weights and that the speaker must own or have permission to contribute the speech.

The private trainer rejects any row without that exact consent scope, a consent version and timestamp, confirmed speaker rights, an allowed audio root, and a non-revoked record. Turning contribution off removes queued recordings that have not entered a published version. Recordings, transcripts, and private manifests are never part of the model upload.

No mystery model announcement

We did not find an eligible saved-speech corpus on the build machine, so no customer recordings were trained and no weights are being presented as finished today. The first public DictatorFlow variant will ship only after there is enough explicitly contributed speech and its speaker-disjoint WER is no worse than the unchanged base model on the same evaluation.

What a model release must contain

The Hugging Face release is its own reviewed artifact. It includes weights, processor configuration, aggregate training facts, base-model attribution, intended uses, limitations, and reproducible WER results. The publisher refuses audio and manifest formats, requires explicit privacy and license approval, and stops if the declared candidate WER is worse than its baseline.

We are starting from NVIDIA's Parakeet CTC 0.6B because it has a documented fine-tuning path and a CC BY 4.0 base-model license. VibeVoice-ASR-BitNet remains an experimental local CPU option, not the training base: our first nine-clip evaluation measured 60.45% average WER, which is not close to a default-quality bar.

Free binaries, open source, optional cloud

Anyone can download the desktop binary and run local inference without an account or per-minute fee. Apache 2.0 source makes the client and server auditable and forkable. Hosted transcription, managed fallback, and developer API capacity remain optional paid services because those consume machines and third-party providers we operate.

This is the line we want to hold: local is free, the source is open, contributed speech is explicit, and a public model earns its release with measured WER—not a launch-day promise.