Draft successful build, versions bump, crates up to date + custom forks of certain crates
This commit is contained in:
parent
0fbb5ac5aa
commit
3ffbe876f3
3 changed files with 46 additions and 35 deletions
|
|
@ -55,7 +55,10 @@ pub fn init() -> Result<(), ()> {
|
||||||
|
|
||||||
pub fn data_callback(frame_buffer: &[i16]) -> Option<i32> {
|
pub fn data_callback(frame_buffer: &[i16]) -> Option<i32> {
|
||||||
match WAKE_WORD_ENGINE.get().unwrap() {
|
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::Rustpotter => rustpotter::data_callback(frame_buffer),
|
||||||
WakeWordEngine::Vosk => vosk::data_callback(frame_buffer),
|
WakeWordEngine::Vosk => vosk::data_callback(frame_buffer),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,41 +33,50 @@ pub fn recognize(data: &[i16], include_partial: bool) -> Option<String> {
|
||||||
.accept_waveform(data);
|
.accept_waveform(data);
|
||||||
|
|
||||||
match state {
|
match state {
|
||||||
DecodingState::Running => {
|
Ok(ds) => {
|
||||||
if include_partial {
|
match ds {
|
||||||
Some(
|
DecodingState::Running => {
|
||||||
RECOGNIZER
|
if include_partial {
|
||||||
.get()
|
Some(
|
||||||
.unwrap()
|
RECOGNIZER
|
||||||
.lock()
|
.get()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.partial_result()
|
.lock()
|
||||||
.partial
|
.unwrap()
|
||||||
.into(),
|
.partial_result()
|
||||||
)
|
.partial
|
||||||
} else {
|
.into(),
|
||||||
None
|
)
|
||||||
|
} 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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
mod menu;
|
mod menu;
|
||||||
|
|
||||||
use image;
|
|
||||||
use tray_icon::{
|
use tray_icon::{
|
||||||
menu::{AboutMetadata, Menu, MenuEvent, MenuItem, PredefinedMenuItem},
|
menu::{AboutMetadata, Menu, MenuEvent, MenuItem, PredefinedMenuItem},
|
||||||
TrayIconBuilder, TrayIconEvent,
|
TrayIconBuilder, TrayIconEvent,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue