Skip to content

YazSes v2.11.0-dev.1 — Wave O opens: Diarized Recording Import (developer preview)

Pre-release · not published (publish workflows are pinned to v0.x/v1.x; v2 dev tags do not ship). v1.4.1 remains the stable release. Every feature is OFF by default.

Opens Wave O (design/vision/v2-research/17-diarized-recording-import.md) — offline transcription of pre-recorded audio files, with speaker attribution. YazSes could only transcribe the live mic; now you can point it at a recording.

New

  • Diarized Recording Import (ADR-v2-125, [recimport]) — yazses transcribe <file>:
  • Decodes any common audio format (wav/mp3/m4a/ogg/flac/opus/mp4) offline on CPU and writes a sidecar file next to the input (talk.mp3 → talk.txt).
  • --diarize tags who said what (Speaker 1: …); --names "Alice,Bob" / --rename speaker_0=Alice or an enrolled voiceprint (auto-labels you as "You") put real names in. Unknown speakers stay Speaker N.
  • --format txt|md|srt|vtt|jsontxt (speaker-tagged) by default; json is the lossless canonical (per-word timestamps + speaker); srt/vtt are subtitles.
  • --speakers N / --min-speakers / --max-speakers constrain the clustering; --language translate turns any language into English.

How it's built (and why it stays lean)

  • Diarizer = sherpa-onnx — the only CPU-fit engine that needs no PyTorch, no GPU, and no Hugging-Face token (~15 MB int8 ONNX models), lazy behind the new optional diarization extra. First diarized run downloads the models once (yazses transcribe --download-models).
  • Audio decode adds no dependency — reuses faster_whisper.decode_audio (PyAV), already shipped with the STT stack, so every format is covered for free.
  • STT reuses your configured faster-whisper model — same accuracy as live dictation.
  • Word↔speaker alignment is pure numpy (max-overlap, mirrors WhisperX) — no torch.

Privacy

Fully offline (ADR-011). Diarization labels are transient; speaker naming is opt-in, consent-gated, on-device, and never auto-enrolls anyone — speaker embeddings are biometric data and stay in the encrypted corpus. A future cloud-escalation path is designed but deliberately not implemented (ADR-v2-126); offline is the only path.

Quality

1489 tests green. The new pure cores (word↔turn alignment, speaker-name resolution, rendering) are unit-tested with no model download; the diarizer degrades to a plain transcript when the extra is absent. Verified end-to-end: real PyAV decode + real faster-whisper + sidecar output. Base install and the v1 dictation path are unchanged.