Skip to content

v2.48.0 — biosignal switches (off by default), a lighter-memory option, and honest language docs

Released 2026-11-02. Upgrade:

sudo snap refresh yazses     # snap
pipx upgrade yazses          # or: uv tool upgrade yazses
scoop update yazses          # Windows

Restart the daemon afterwards (yazses restart). Nothing changes for an existing install until you turn something on: every new feature below is off by default.

Fixes

  • Persian (and other non-Latin) text was silently damaged. The [compute] calculator (on for new installs) replaced a Persian sentence with a number, so "سال 1403 - 1404" was typed as -1. Russian and Chinese sentences were affected the same way. [corrdict] scored every non-Latin pair as a perfect mishearing. [stt] language = "fa-IR" passed the check and then failed at the first decode; region tags (fa-IR, pt-BR, zh-TW) are now folded everywhere. The Arabic question mark ؟ now ends a sentence for "delete the last sentence", condense, reflow and sembr. yazses doctor warns when dictation is not English but [recimport] or [meeting] language is still en.
  • 22 translated pages promised voice commands their language does not have. Voice commands such as "save file" exist in English and Mandarin only; a sentence in another language is typed as text, while dictation in that language works with [stt] language and a multilingual model. The German and Indonesian pages were checked against the real command classifier; the other 20 were corrected by the same rule. The wording is not yet checked by native speakers.
  • Documentation sweep: about twenty claims that described the repository as it was before 2.47.0 now match it (benchmark harness location, the pipx repair, Hands-free button names, the Windows installer, the Android core modules, the hosted-demo wording).

New, and off by default

  • Biosignal switches. An opt-in yazses.biosignal package turns raw muscle, eye or brain-signal samples (a synthetic source, a recording, an OpenBCI or Muse board through BrainFlow, an LSL stream, a NeuroSky headset, a BITalino kit or a Myo armband) into a small set of events: a graded squeeze, a blink or double blink, and a jaw clench. A quality gate answers flatline, saturation, mains interference, drift and dropped samples with silence, and a stream-integrity guard closes the switch on dropped packets or clock problems. file: replays EDF, EDF+, BDF and XDF recordings. See Use a muscle, blink or jaw-clench switch. None of it has been used on a real person or real hardware yet. Each device was built against its published protocol and tested with fixtures and fakes. Treat it as a preview.
  • [residency] latency_keep_alive_s. With [latency] on, the governor can keep a second, smaller model loaded. Set this to a number of seconds and that extra model is released once it has been idle that long and reloaded when needed. Default 0 changes nothing. How much memory this gives back has not been measured on a real machine.

Under the hood

  • sherpa-onnx 2.0.1 (a major version, used for speaker labelling), PyAV 18.1.0 and the routine dependency group were updated. PySide6 is held below 6.12 and the docs plugin below 1.6 on purpose; the reasons are in the changelog.
  • Documentation-site pages gained their own descriptions and titles that fit a search result.

What was checked: the full test suite (35,425 passed on the tree before the release commit), ruff and mypy are clean, the documentation builds with warnings as errors, and the sherpa-onnx upgrade was run on a recorded clip with both versions and gave identical segments.

What was not checked: any biosignal device on real hardware, the memory the new option frees, and the translated sentences by native speakers.

The complete list is in the changelog.