diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-20 07:14:30 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-20 07:14:30 +0800 |
| commit | 69354929928d1d071698262c259cdffbf9aec468 (patch) | |
| tree | fd02cb43e17e619cdbf800046560231974bf6a9d | |
| parent | d1cda84f0d9acf2700e4c2eeafff4dbb63cc51fe (diff) | |
feat: add verbose mode and update vtx-engine dependency
- Enable whisper.cpp C library logs when verbose flag is set
- Replace direct eprintln usage with debug_log macro for non-error
messages
- Update vtx-engine dependency to latest commit
| -rw-r--r-- | Cargo.lock | 2 | ||||
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/main.rs | 26 |
3 files changed, 18 insertions, 12 deletions
@@ -2566,7 +2566,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vtx-engine" version = "0.3.1" -source = "git+https://github.com/Weicao-CatilGrass/vtx-engine?rev=efa61f80156c226f76bf12e5cedf11c92af22ccb#efa61f80156c226f76bf12e5cedf11c92af22ccb" +source = "git+https://github.com/Weicao-CatilGrass/vtx-engine?rev=864889b97c52d31098670d33e10d62a96ec8c41e#864889b97c52d31098670d33e10d62a96ec8c41e" dependencies = [ "aec3", "block2", @@ -15,7 +15,7 @@ tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } [dependencies.vtx-engine] git = "https://github.com/Weicao-CatilGrass/vtx-engine" -rev = "efa61f80156c226f76bf12e5cedf11c92af22ccb" +rev = "864889b97c52d31098670d33e10d62a96ec8c41e" [profile.dev] opt-level = 0 diff --git a/src/main.rs b/src/main.rs index 5b2bb0a..875ac39 100644 --- a/src/main.rs +++ b/src/main.rs @@ -63,6 +63,12 @@ async fn main() { // Set global verbose flag VERBOSE.store(args.verbose, std::sync::atomic::Ordering::Relaxed); + // When verbose, let whisper.cpp print its C lib logs to stderr + if args.verbose { + vtx_engine::transcription::whisper_ffi::WHISPER_LOGS_ENABLED + .store(true, std::sync::atomic::Ordering::Relaxed); + } + // --------------------------------------------------------------- // --list-models: show available models and exit // --------------------------------------------------------------- @@ -82,7 +88,7 @@ async fn main() { // --------------------------------------------------------------- // 1. Build the vtx-engine (needed for both listing and capture) // --------------------------------------------------------------- - eprintln!("[dmvop] Initializing voice engine..."); + debug_log!("[dmvop] Initializing voice engine..."); let model = vtx_engine::WhisperModel::parse_identifier(&args.model).unwrap_or_else(|| { eprintln!( @@ -92,7 +98,7 @@ async fn main() { std::process::exit(1); }); - eprintln!( + debug_log!( "[dmvop] Using model: {} ({})", model.config_key(), model.display_name() @@ -101,7 +107,7 @@ async fn main() { let mut builder = EngineBuilder::new().app_name("dmvop").model(model); if let Some(ref lang) = args.lang { - eprintln!("[dmvop] Language hint: {}", lang); + debug_log!("[dmvop] Language hint: {}", lang); builder = builder.language(lang.as_str()); } @@ -118,7 +124,7 @@ async fn main() { eprintln!("[dmvop] Model not found at: {}", model_status.path); eprintln!("[dmvop] Downloading model, please wait..."); match engine.download_model().await { - Ok(_) => eprintln!("[dmvop] Model downloaded successfully"), + Ok(_) => debug_log!("[dmvop] Model downloaded successfully"), Err(e) => { eprintln!("[dmvop] Failed to download model: {}", e); eprintln!("[dmvop] You can manually download a model from:"); @@ -128,7 +134,7 @@ async fn main() { } } } else { - eprintln!("[dmvop] Model found: {}", model_status.path); + debug_log!("[dmvop] Model found: {}", model_status.path); } // --------------------------------------------------------------- @@ -199,7 +205,7 @@ async fn main() { match &device { Some(d) => { - eprintln!("[dmvop] Using input device: {} (id: {})", d.name, d.id); + debug_log!("[dmvop] Using input device: {} (id: {})", d.name, d.id); } None => { eprintln!( @@ -215,7 +221,7 @@ async fn main() { .await .expect("Failed to start audio capture"); - eprintln!("[dmvop] Capture started. Waiting for speech..."); + debug_log!("[dmvop] Capture started. Waiting for speech..."); // --------------------------------------------------------------- // 5. Event loop — listen for transcription & audio level events @@ -280,7 +286,7 @@ async fn main() { } } - eprintln!("[dmvop] Shutting down."); + debug_log!("[dmvop] Shutting down."); } /// Resolve the format pattern from either the command-line `--format` value @@ -406,11 +412,11 @@ async fn download_model_cli(model_name: &str) { let status = engine.check_model_status(); if status.available { - eprintln!("[dmvop] Model already exists at: {}", status.path); + debug_log!("[dmvop] Model already exists at: {}", status.path); return; } - eprintln!( + debug_log!( "[dmvop] Downloading {} ({} MB)...", model.config_key(), model.size_mb() |
