feat: optional whisper, fix 1.7b model loading & tray error state - #106
Merged
Conversation
chore(deps): update all dependencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make whisper-rs an optional dependency behind a
whisperfeature flag, fix Qwen3-ASR 1.7b model loading, distinguish the tray Error state from Recording, and fix flaky config tests.Optional Whisper (
whisperfeature flag)whisper-rsis nowoptional = truein murmur-core, gated behind a newwhisperfeature[onnx]— Qwen3-ASR is the default, slim builds exclude whisper entirelymetal/cuda/vulkanfeatures implywhisper(they're whisper-rs hardware backends)murmur-whisper-workerbinary usesrequired-features = ["whisper"]transcriber.rs,whisper_engine.rs,prompt::rank_vocabulary) gated with#[cfg(feature = "whisper")]Fix Qwen3-ASR 1.7b model loading
The 1.7b model's
config.jsonuses a nested structure (decoder.hidden_size = 2048) but the parser only read the top-levelhidden_size, defaulting to 1024. This causedGot invalid dimensions for input: input_embedserrors during inference. The 0.6b model worked only by coincidence (its decoder hidden_size happens to be 1024).Fix tray Error vs Recording icon
Error state previously used the same red icon as Recording, making failed engine loads look like stuck recordings. Error now uses the idle icon, and the error message is shown in the tray status text.
Fix flaky tests
test_cmd_set_model_validandtest_cmd_set_model_prints_download_hintraced on the shared config file. Fixed by adding aCONFIG_MUTEXfor test serialization and eliminating the doubleConfig::load()TOCTOU incmd_set_model.Build configurations
cargo build -p murmurcargo build -p murmur --features metalcargo build -p murmur --features whisper