diff --git a/app/src/listener.rs b/app/src/listener.rs index bb4190e..19f96ab 100644 --- a/app/src/listener.rs +++ b/app/src/listener.rs @@ -55,7 +55,10 @@ pub fn init() -> Result<(), ()> { pub fn data_callback(frame_buffer: &[i16]) -> Option { match WAKE_WORD_ENGINE.get().unwrap() { - WakeWordEngine::Porcupine => porcupine::data_callback(frame_buffer), + WakeWordEngine::Porcupine => { + // porcupine::data_callback(frame_buffer) + unimplemented!("f*ck picovoice"); + }, WakeWordEngine::Rustpotter => rustpotter::data_callback(frame_buffer), WakeWordEngine::Vosk => vosk::data_callback(frame_buffer), } diff --git a/app/src/stt/vosk.rs b/app/src/stt/vosk.rs index cf82fba..3b3aa25 100644 --- a/app/src/stt/vosk.rs +++ b/app/src/stt/vosk.rs @@ -33,41 +33,50 @@ pub fn recognize(data: &[i16], include_partial: bool) -> Option { .accept_waveform(data); match state { - DecodingState::Running => { - if include_partial { - Some( - RECOGNIZER - .get() - .unwrap() - .lock() - .unwrap() - .partial_result() - .partial - .into(), - ) - } else { - None + Ok(ds) => { + match ds { + DecodingState::Running => { + if include_partial { + Some( + RECOGNIZER + .get() + .unwrap() + .lock() + .unwrap() + .partial_result() + .partial + .into(), + ) + } else { + None + } + } + DecodingState::Finalized => { + // Result will always be multiple because we called set_max_alternatives + Some( + RECOGNIZER + .get() + .unwrap() + .lock() + .unwrap() + .result() + .multiple() + .unwrap() + .alternatives + .first() + .unwrap() + .text + .into(), + ) + } + DecodingState::Failed => None, } + }, + Err(err) => { + error!("Vosk accept waveform error.\nError details: {}", err); + + None } - DecodingState::Finalized => { - // Result will always be multiple because we called set_max_alternatives - Some( - RECOGNIZER - .get() - .unwrap() - .lock() - .unwrap() - .result() - .multiple() - .unwrap() - .alternatives - .first() - .unwrap() - .text - .into(), - ) - } - DecodingState::Failed => None, } } diff --git a/app/src/tray.rs b/app/src/tray.rs index 6ef58cd..21a583c 100644 --- a/app/src/tray.rs +++ b/app/src/tray.rs @@ -1,6 +1,5 @@ mod menu; -use image; use tray_icon::{ menu::{AboutMetadata, Menu, MenuEvent, MenuItem, PredefinedMenuItem}, TrayIconBuilder, TrayIconEvent,