Skip to content

v1.0.7

Choose a tag to compare

@malashkadev malashkadev released this 14 Jul 23:36
· 137 commits to main since this release

What's Changed:

  • Windowed-Sinc Anti-Aliasing Filter: Added a 64-tap windowed-sinc (Blackman) low-pass filter to the audio resampler in src-tauri/src/audio_recorder.rs. This filters frequencies above 8kHz before downsampling, eliminating high-frequency aliasing artifacts on sibilants (like "s", "sh", "ch") and improving local Whisper accuracy.
  • Greedy Whisper Decoding: Switched the local Whisper runner to greedy decoding (--best-of 1, --beam-size -1) in src-tauri/src/whisper_runner.rs. This enforces a faster search method, yielding a 20–40% transcription speed boost for real-time dictation with negligible quality trade-off.
  • Context-Aware Cyrillic Replacements: Refined how "<unk>" tokens are handled in the Parakeet model in src-tauri/src/whisper_runner.rs. The replacement to "ё" now only applies when Cyrillic text is present in the transcript; otherwise, unknown tokens are stripped to avoid corruption in Latin or Chinese dictations.
  • Streamed Punctuation Downloader: Replaced full-memory buffering of the punctuation model archive with a RAM-efficient chunked downloader in src-tauri/src/whisper_runner.rs. It includes automatic cleanup of stale downloads, timeout protections, and robust error propagation for failed extractions.
  • Process Buffer Safety: Added a 4,000 character safety limit for local punctuation in src-tauri/src/whisper_runner.rs. Exceptionally long dictations will now skip formatting to prevent silent process crashes caused by the Windows CreateProcess command-line argument limits.
  • Terminal-Safe Dictation Mode: Added a copy_context_on_start toggle under settings in src-tauri/src/settings.rs. This allows users to disable automatic selection capture (which sends Ctrl+C to copy text) when dictating into terminals where Ctrl+C would abort running shell tasks.
  • Precise Error Classification: Refined the network error checking in src-tauri/src/lib.rs to distinguish account-level failures (like quota limits or invalid API keys) from transport-level unreachable networks. This prevents authorization issues from triggering a silent, unwanted local model fallback.
  • Mutex Livelock Protection: Replaced unsafe mutex lock unwrapping in src-tauri/src/lib.rs with safe fallback handlers, preventing application-wide panics if a background thread poisons a shared mutex.
  • Reduced Streaming Latency: Halved the initial background streaming loop startup wait time from 4s to 2s in src-tauri/src/lib.rs to provide a more responsive real-time typing feedback loop.

Full Changelog: v1.0.6...v1.0.7