Tags: qluto/echo
Tags
Release v0.6.0 - Full-Rust in-process ASR (no Python sidecar) - ASR now runs fully in-process in Rust via the rust-asr crate: Whisper (whisper.cpp/Metal, default), Parakeet-TDT JA (MLX), Cohere Transcribe (MLX, gated) - Qwen3 LLM post-processing/summarization ported to Rust (mlx-rs, BF16 parity) - Python sidecar removed entirely; lighter build (~0.7s vs ~3.1s spawn->result) - Silero VAD gating to prevent silence hallucination on hotkey input - Free GPU memory on model switch - UI: show raw + post-processed text, icon-only per-text copy, compact mode cards - Release workflow drops Python build, adds Metal toolchain step
Release v0.5.1 - Hotfix for transcription parsing
Fixes a regression introduced in v0.5.0 where every transcription
failed with "Failed to parse response: invalid type: sequence,
expected a string". Caused by mlx-audio 0.4.x changing Qwen3-ASR's
STTOutput.language from a single string to a per-segment list.
Adds defensive _coerce_language helper across all three transcription
paths (Qwen3, Cohere, Whisper) that flattens str | list[str] | None to
a single string and treats sentinel values ("None", "null", "auto",
"unknown") as no-detection -> "auto".
Verified locally against Qwen3-ASR-0.6B/1.7B, Whisper Large v3 Turbo,
Whisper Tiny, and Cohere Transcribe — all five models now return
parseable JSON-RPC responses.
Users on v0.5.0 should upgrade.
Release v0.5.0 - Cohere Transcribe with gated model access Adds optional support for CohereLabs/cohere-transcribe-03-2026 (2B, 14 languages) as a third ASR model family alongside Qwen3-ASR and Whisper. Gated by an explicit opt-in in Settings > Gated Models (Advanced) — users must accept the Cohere model license on HuggingFace and provide a personal access token, which is then injected into the Python sidecar via HF_TOKEN. Tokens never appear in logs. Bumps mlx-audio dependency to >=0.4.0 (required for Cohere support).
PreviousNext