project restructure with Rust workspaces
This commit is contained in:
parent
1f03a44f33
commit
6e585dd37d
428 changed files with 19372 additions and 6061 deletions
36
crates/jarvis-core/src/stt.rs
Normal file
36
crates/jarvis-core/src/stt.rs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
mod vosk;
|
||||
|
||||
use crate::config;
|
||||
use once_cell::sync::OnceCell;
|
||||
|
||||
use crate::config::structs::SpeechToTextEngine;
|
||||
|
||||
static STT_TYPE: OnceCell<SpeechToTextEngine> = OnceCell::new();
|
||||
|
||||
pub fn init() -> Result<(), ()> {
|
||||
if !STT_TYPE.get().is_none() {
|
||||
return Ok(());
|
||||
} // already initialized
|
||||
|
||||
// set default stt type
|
||||
// @TODO. Make it configurable?
|
||||
STT_TYPE.set(config::DEFAULT_SPEECH_TO_TEXT_ENGINE).unwrap();
|
||||
|
||||
// load given recorder
|
||||
match STT_TYPE.get().unwrap() {
|
||||
SpeechToTextEngine::Vosk => {
|
||||
// Init Vosk
|
||||
info!("Initializing Vosk STT backend.");
|
||||
vosk::init_vosk();
|
||||
info!("STT backend initialized.");
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn recognize(data: &[i16], partial: bool) -> Option<String> {
|
||||
match STT_TYPE.get().unwrap() {
|
||||
SpeechToTextEngine::Vosk => vosk::recognize(data, partial),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue