jarvis-cli added for dev tests
This commit is contained in:
parent
03da13ed73
commit
36acacf259
39 changed files with 369652 additions and 5 deletions
147
Cargo.lock
generated
147
Cargo.lock
generated
|
|
@ -137,6 +137,56 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anstream"
|
||||||
|
version = "0.6.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a"
|
||||||
|
dependencies = [
|
||||||
|
"anstyle",
|
||||||
|
"anstyle-parse",
|
||||||
|
"anstyle-query",
|
||||||
|
"anstyle-wincon",
|
||||||
|
"colorchoice",
|
||||||
|
"is_terminal_polyfill",
|
||||||
|
"utf8parse",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anstyle"
|
||||||
|
version = "1.0.13"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anstyle-parse"
|
||||||
|
version = "0.2.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
|
||||||
|
dependencies = [
|
||||||
|
"utf8parse",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anstyle-query"
|
||||||
|
version = "1.1.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
|
||||||
|
dependencies = [
|
||||||
|
"windows-sys 0.61.2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anstyle-wincon"
|
||||||
|
version = "3.0.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
|
||||||
|
dependencies = [
|
||||||
|
"anstyle",
|
||||||
|
"once_cell_polyfill",
|
||||||
|
"windows-sys 0.61.2",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.100"
|
version = "1.0.100"
|
||||||
|
|
@ -725,6 +775,12 @@ version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colorchoice"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "combine"
|
name = "combine"
|
||||||
version = "4.6.7"
|
version = "4.6.7"
|
||||||
|
|
@ -1359,6 +1415,29 @@ dependencies = [
|
||||||
"syn 2.0.113",
|
"syn 2.0.113",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "env_filter"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"regex",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "env_logger"
|
||||||
|
version = "0.11.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f"
|
||||||
|
dependencies = [
|
||||||
|
"anstream",
|
||||||
|
"anstyle",
|
||||||
|
"env_filter",
|
||||||
|
"jiff",
|
||||||
|
"log",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "equator"
|
name = "equator"
|
||||||
version = "0.4.2"
|
version = "0.4.2"
|
||||||
|
|
@ -2724,6 +2803,12 @@ dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "is_terminal_polyfill"
|
||||||
|
version = "1.70.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itertools"
|
name = "itertools"
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
|
|
@ -2759,6 +2844,17 @@ dependencies = [
|
||||||
"winit",
|
"winit",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jarvis-cli"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"env_logger",
|
||||||
|
"jarvis-core",
|
||||||
|
"log",
|
||||||
|
"parking_lot",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jarvis-core"
|
name = "jarvis-core"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
@ -2829,6 +2925,30 @@ dependencies = [
|
||||||
"system-deps 6.2.2",
|
"system-deps 6.2.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jiff"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a87d9b8105c23642f50cbbae03d1f75d8422c5cb98ce7ee9271f7ff7505be6b8"
|
||||||
|
dependencies = [
|
||||||
|
"jiff-static",
|
||||||
|
"log",
|
||||||
|
"portable-atomic",
|
||||||
|
"portable-atomic-util",
|
||||||
|
"serde_core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jiff-static"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b787bebb543f8969132630c51fd0afab173a86c6abae56ff3b9e5e3e3f9f6e58"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.113",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jni"
|
name = "jni"
|
||||||
version = "0.21.1"
|
version = "0.21.1"
|
||||||
|
|
@ -3935,6 +4055,12 @@ version = "1.21.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "once_cell_polyfill"
|
||||||
|
version = "1.70.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "open"
|
name = "open"
|
||||||
version = "5.3.3"
|
version = "5.3.3"
|
||||||
|
|
@ -4319,6 +4445,21 @@ dependencies = [
|
||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "portable-atomic"
|
||||||
|
version = "1.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "portable-atomic-util"
|
||||||
|
version = "0.2.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
|
||||||
|
dependencies = [
|
||||||
|
"portable-atomic",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "potential_utf"
|
name = "potential_utf"
|
||||||
version = "0.1.4"
|
version = "0.1.4"
|
||||||
|
|
@ -6808,6 +6949,12 @@ version = "1.0.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "utf8parse"
|
||||||
|
version = "0.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uuid"
|
name = "uuid"
|
||||||
version = "1.19.0"
|
version = "1.19.0"
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ members = [
|
||||||
"crates/jarvis-core",
|
"crates/jarvis-core",
|
||||||
"crates/jarvis-app",
|
"crates/jarvis-app",
|
||||||
"crates/jarvis-gui",
|
"crates/jarvis-gui",
|
||||||
|
"crates/jarvis-cli"
|
||||||
]
|
]
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
14
crates/jarvis-cli/Cargo.toml
Normal file
14
crates/jarvis-cli/Cargo.toml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
[package]
|
||||||
|
name = "jarvis-cli"
|
||||||
|
version.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
jarvis-core = { path = "../jarvis-core", default-features = false, features = ["intent"]}
|
||||||
|
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
|
||||||
|
log.workspace = true
|
||||||
|
env_logger = "0.11"
|
||||||
|
parking_lot.workspace = true
|
||||||
194
crates/jarvis-cli/src/main.rs
Normal file
194
crates/jarvis-cli/src/main.rs
Normal file
|
|
@ -0,0 +1,194 @@
|
||||||
|
use std::{io::{self, Write}, sync::Arc};
|
||||||
|
use parking_lot::RwLock;
|
||||||
|
|
||||||
|
use jarvis_core::{COMMANDS_LIST, DB, JCommandsList, commands, config, db, intent};
|
||||||
|
|
||||||
|
fn print_help() {
|
||||||
|
println!("
|
||||||
|
--## Jarvis CLI - Testing Tool ##--
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
classify <text> - Test intent classification
|
||||||
|
execute <text> - Simulate voice input and execute command
|
||||||
|
list - List all loaded commands
|
||||||
|
phrases - List all training phrases
|
||||||
|
hash - Show commands hash
|
||||||
|
reload - Reload commands from disk
|
||||||
|
help - Show this help
|
||||||
|
exit - Exit the CLI
|
||||||
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn list_commands(commands: &Vec<JCommandsList>) {
|
||||||
|
println!("\n[ Loaded Commands ]");
|
||||||
|
for cmd_list in commands {
|
||||||
|
println!(" 📁 {}", cmd_list.path.display());
|
||||||
|
for cmd in &cmd_list.commands {
|
||||||
|
println!(" ├─ id: {}", cmd.id);
|
||||||
|
println!(" ├─ action: {}", cmd.action);
|
||||||
|
println!(" └─ phrases: {} total", cmd.phrases.len());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn list_phrases(commands: &Vec<JCommandsList>) {
|
||||||
|
println!("\n[ Training Phrases ]");
|
||||||
|
for cmd_list in commands {
|
||||||
|
for cmd in &cmd_list.commands {
|
||||||
|
println!(" [{}]", cmd.id);
|
||||||
|
for phrase in &cmd.phrases {
|
||||||
|
println!(" - {}", phrase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!();
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn classify_text(text: &str) {
|
||||||
|
match intent::classify(text).await {
|
||||||
|
Some((intent_id, confidence)) => {
|
||||||
|
println!(" ✓ Intent: {} (confidence: {:.2}%)", intent_id, confidence * 100.0);
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
println!(" ✗ No intent matched (below threshold)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn execute_text(commands: &'static Vec<JCommandsList>, text: &str) {
|
||||||
|
// try intent classification first
|
||||||
|
if let Some((intent_id, confidence)) = intent::classify(text).await {
|
||||||
|
println!(" Intent: {} (confidence: {:.2}%)", intent_id, confidence * 100.0);
|
||||||
|
|
||||||
|
if let Some((cmd_path, cmd)) = intent::get_command_by_intent(commands, &intent_id) {
|
||||||
|
println!(" Command: {:?}", cmd_path);
|
||||||
|
println!(" Action: {}", cmd.action);
|
||||||
|
println!(" Executing...");
|
||||||
|
|
||||||
|
match commands::execute_command(cmd_path, cmd) {
|
||||||
|
Ok(chain) => println!(" ✓ Success (chain: {})", chain),
|
||||||
|
Err(e) => println!(" ✗ Error: {}", e),
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// fallback to levenshtein
|
||||||
|
println!(" Intent not matched, trying levenshtein fallback...");
|
||||||
|
if let Some((cmd_path, cmd)) = commands::fetch_command(text, commands) {
|
||||||
|
println!(" Command: {:?}", cmd_path);
|
||||||
|
println!(" Action: {}", cmd.action);
|
||||||
|
println!(" Executing...");
|
||||||
|
|
||||||
|
match commands::execute_command(cmd_path, cmd) {
|
||||||
|
Ok(chain) => println!(" ✓ Success (chain: {})", chain),
|
||||||
|
Err(e) => println!(" ✗ Error: {}", e),
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
println!(" ✗ No command matched");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
// init logging
|
||||||
|
env_logger::Builder::from_env(
|
||||||
|
env_logger::Env::default().default_filter_or("info")
|
||||||
|
).init();
|
||||||
|
|
||||||
|
println!("Jarvis CLI v{}", config::APP_VERSION.unwrap_or("unknown"));
|
||||||
|
|
||||||
|
// init dirs
|
||||||
|
config::init_dirs()?;
|
||||||
|
|
||||||
|
// parse commands
|
||||||
|
println!("\n[*] Loading commands...");
|
||||||
|
let cmds = match commands::parse_commands() {
|
||||||
|
Ok(c) => {
|
||||||
|
println!(" Loaded {} command groups", c.len());
|
||||||
|
c
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
println!(" Warning: {}", e);
|
||||||
|
Vec::new()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
COMMANDS_LIST.set(cmds).expect("Failed to set commands list");
|
||||||
|
|
||||||
|
// init intent classifier
|
||||||
|
println!("[*] Initializing intent classifier...");
|
||||||
|
match intent::init(COMMANDS_LIST.get().unwrap()).await {
|
||||||
|
Ok(_) => println!(" Intent classifier ready"),
|
||||||
|
Err(e) => println!(" Warning: {}", e),
|
||||||
|
}
|
||||||
|
|
||||||
|
print_help();
|
||||||
|
|
||||||
|
// init db
|
||||||
|
DB.set(Arc::new(RwLock::new(db::init_settings())))
|
||||||
|
.expect("DB already initialized");
|
||||||
|
|
||||||
|
|
||||||
|
// init sound
|
||||||
|
println!("[*] Initializing audio...");
|
||||||
|
if let Err(e) = jarvis_core::audio::init() {
|
||||||
|
println!(" Warning: Audio init failed: {:?}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// REPL loop
|
||||||
|
let mut input = String::new();
|
||||||
|
loop {
|
||||||
|
print!("jarvis> ");
|
||||||
|
io::stdout().flush()?;
|
||||||
|
|
||||||
|
input.clear();
|
||||||
|
io::stdin().read_line(&mut input)?;
|
||||||
|
let input = input.trim();
|
||||||
|
|
||||||
|
if input.is_empty() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let parts: Vec<&str> = input.splitn(2, ' ').collect();
|
||||||
|
let cmd = parts[0];
|
||||||
|
let arg = parts.get(1).map(|s| *s).unwrap_or("");
|
||||||
|
|
||||||
|
match cmd {
|
||||||
|
"exit" | "quit" | "q" => {
|
||||||
|
println!("Bye!");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
"help" | "h" | "?" => print_help(),
|
||||||
|
"list" | "ls" => list_commands(COMMANDS_LIST.get().unwrap()),
|
||||||
|
"phrases" => list_phrases(COMMANDS_LIST.get().unwrap()),
|
||||||
|
"hash" => {
|
||||||
|
let hash = commands::commands_hash(COMMANDS_LIST.get().unwrap());
|
||||||
|
println!(" Commands hash: {}", hash);
|
||||||
|
}
|
||||||
|
"classify" | "c" => {
|
||||||
|
if arg.is_empty() {
|
||||||
|
println!(" Usage: classify <text>");
|
||||||
|
} else {
|
||||||
|
classify_text(arg).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"execute" | "exec" | "e" => {
|
||||||
|
if arg.is_empty() {
|
||||||
|
println!(" Usage: execute <text>");
|
||||||
|
} else {
|
||||||
|
execute_text(COMMANDS_LIST.get().unwrap(), arg).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"reload" => {
|
||||||
|
println!(" Note: Reload requires app restart (statics can't be reset)");
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
// treat unknown commands as text to classify
|
||||||
|
classify_text(input).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
@ -34,3 +34,4 @@ tokio = { version = "1", features = ["sync"], optional = true }
|
||||||
[features]
|
[features]
|
||||||
default = ["jarvis_app"]
|
default = ["jarvis_app"]
|
||||||
jarvis_app = ["vosk", "intent-classifier", "tokio"]
|
jarvis_app = ["vosk", "intent-classifier", "tokio"]
|
||||||
|
intent = ["intent-classifier", "tokio"]
|
||||||
|
|
@ -20,7 +20,7 @@ pub mod recorder;
|
||||||
#[cfg(feature = "jarvis_app")]
|
#[cfg(feature = "jarvis_app")]
|
||||||
pub mod stt;
|
pub mod stt;
|
||||||
|
|
||||||
#[cfg(feature = "jarvis_app")]
|
#[cfg(feature = "intent")]
|
||||||
pub mod intent;
|
pub mod intent;
|
||||||
|
|
||||||
// shared statics
|
// shared statics
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ pub fn init() -> Result<(), ()> {
|
||||||
// wake word files list
|
// wake word files list
|
||||||
// @TODO. Make it configurable via GUI for custom user voice.
|
// @TODO. Make it configurable via GUI for custom user voice.
|
||||||
let rustpotter_wake_word_files: [&str; 1] = [
|
let rustpotter_wake_word_files: [&str; 1] = [
|
||||||
"rustpotter/jarvis-default.rpw",
|
"resources/rustpotter/jarvis-default.rpw",
|
||||||
// "rustpotter/jarvis-community-1.rpw",
|
// "rustpotter/jarvis-community-1.rpw",
|
||||||
// "rustpotter/jarvis-community-2.rpw",
|
// "rustpotter/jarvis-community-2.rpw",
|
||||||
// "rustpotter/jarvis-community-3.rpw",
|
// "rustpotter/jarvis-community-3.rpw",
|
||||||
|
|
@ -58,6 +58,8 @@ pub fn data_callback(frame_buffer: &[i16]) -> Option<i32> {
|
||||||
// let detection = rustpotter.process_samples(frame_buffer.to_vec()); // @TODO. Temp crutch. Fix optimization issue, frame_buffer should not be copied to a new vector!
|
// let detection = rustpotter.process_samples(frame_buffer.to_vec()); // @TODO. Temp crutch. Fix optimization issue, frame_buffer should not be copied to a new vector!
|
||||||
let detection = rustpotter.process_samples(frame_buffer);
|
let detection = rustpotter.process_samples(frame_buffer);
|
||||||
|
|
||||||
|
// info!("Ruspotter data callback");
|
||||||
|
|
||||||
if let Some(detection) = detection {
|
if let Some(detection) = detection {
|
||||||
if detection.score > config::RUSPOTTER_MIN_SCORE {
|
if detection.score > config::RUSPOTTER_MIN_SCORE {
|
||||||
info!("Rustpotter detection info:\n{:?}", detection);
|
info!("Rustpotter detection info:\n{:?}", detection);
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,15 @@ exe_path = "ahk/Run browser.exe"
|
||||||
sounds = ["ok1", "ok2", "ok3"]
|
sounds = ["ok1", "ok2", "ok3"]
|
||||||
phrases = [
|
phrases = [
|
||||||
"открой браузер",
|
"открой браузер",
|
||||||
|
"запусти браузер",
|
||||||
"открой хром",
|
"открой хром",
|
||||||
"гугл хром",
|
"запусти хром",
|
||||||
|
"открой гугл хром",
|
||||||
|
"запусти гугл хром",
|
||||||
|
"включи браузер",
|
||||||
|
"браузер открой",
|
||||||
|
"нужен браузер",
|
||||||
|
"мне нужен браузер",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[commands]]
|
[[commands]]
|
||||||
|
|
@ -15,10 +22,15 @@ action = "ahk"
|
||||||
exe_path = "ahk/Close browser.exe"
|
exe_path = "ahk/Close browser.exe"
|
||||||
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
||||||
phrases = [
|
phrases = [
|
||||||
"закрой все браузеры",
|
|
||||||
"закрой браузер",
|
"закрой браузер",
|
||||||
|
"закрой все браузеры",
|
||||||
"выключи браузер",
|
"выключи браузер",
|
||||||
"убери браузер",
|
"убери браузер",
|
||||||
|
"закрой хром",
|
||||||
|
"выключи хром",
|
||||||
|
"закрой гугл хром",
|
||||||
|
"браузер закрой",
|
||||||
|
"сверни браузер",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[commands]]
|
[[commands]]
|
||||||
|
|
@ -29,6 +41,12 @@ exe_args = ["http://google.com"]
|
||||||
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
||||||
phrases = [
|
phrases = [
|
||||||
"открой гугл",
|
"открой гугл",
|
||||||
|
"открой гугл поиск",
|
||||||
"запусти гугл",
|
"запусти гугл",
|
||||||
"перейди в гугл",
|
"перейди в гугл",
|
||||||
|
"перейди на гугл",
|
||||||
|
"открой поисковик",
|
||||||
|
"зайди в гугл",
|
||||||
|
"гугл поиск",
|
||||||
|
"поиск гугл",
|
||||||
]
|
]
|
||||||
5
resources/vosk/vosk-model-en-us-0.22-lgraph/README
Normal file
5
resources/vosk/vosk-model-en-us-0.22-lgraph/README
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
Accurate universal English model (both for callcenter and wideband)
|
||||||
|
|
||||||
|
Based on Appen Kaldi model https://github.com/Appen/UHV-OTS-Speech
|
||||||
|
|
||||||
|
Dynamic graph version
|
||||||
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/am/final.mdl
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/am/final.mdl
Normal file
Binary file not shown.
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/am/tree
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/am/tree
Normal file
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
||||||
|
--sample-frequency=16000
|
||||||
|
--use-energy=false
|
||||||
|
--num-mel-bins=40
|
||||||
|
--num-ceps=40
|
||||||
|
--low-freq=20
|
||||||
|
--high-freq=7600
|
||||||
|
--allow-upsample=true
|
||||||
|
--allow-downsample=true
|
||||||
|
|
||||||
10
resources/vosk/vosk-model-en-us-0.22-lgraph/conf/model.conf
Normal file
10
resources/vosk/vosk-model-en-us-0.22-lgraph/conf/model.conf
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
--min-active=200
|
||||||
|
--max-active=7000
|
||||||
|
--beam=13.0
|
||||||
|
--lattice-beam=6.0
|
||||||
|
--acoustic-scale=1.0
|
||||||
|
--frame-subsampling-factor=3
|
||||||
|
--endpoint.silence-phones=1:2:3:4:5:11:12:13:14:15
|
||||||
|
--endpoint.rule2.min-trailing-silence=0.5
|
||||||
|
--endpoint.rule3.min-trailing-silence=1.0
|
||||||
|
--endpoint.rule4.min-trailing-silence=2.0
|
||||||
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/Gr.fst
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/Gr.fst
Normal file
Binary file not shown.
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/HCLr.fst
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/HCLr.fst
Normal file
Binary file not shown.
|
|
@ -0,0 +1,39 @@
|
||||||
|
23613
|
||||||
|
23614
|
||||||
|
23615
|
||||||
|
23616
|
||||||
|
23617
|
||||||
|
23618
|
||||||
|
23619
|
||||||
|
23620
|
||||||
|
23621
|
||||||
|
23622
|
||||||
|
23623
|
||||||
|
23624
|
||||||
|
23625
|
||||||
|
23626
|
||||||
|
23627
|
||||||
|
23628
|
||||||
|
23629
|
||||||
|
23630
|
||||||
|
23631
|
||||||
|
23632
|
||||||
|
23633
|
||||||
|
23634
|
||||||
|
23635
|
||||||
|
23636
|
||||||
|
23637
|
||||||
|
23638
|
||||||
|
23639
|
||||||
|
23640
|
||||||
|
23641
|
||||||
|
23642
|
||||||
|
23643
|
||||||
|
23644
|
||||||
|
23645
|
||||||
|
23646
|
||||||
|
23647
|
||||||
|
23648
|
||||||
|
23649
|
||||||
|
23650
|
||||||
|
23651
|
||||||
267
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/phones.txt
Normal file
267
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/phones.txt
Normal file
|
|
@ -0,0 +1,267 @@
|
||||||
|
<eps> 0
|
||||||
|
SIL 1
|
||||||
|
SIL_B 2
|
||||||
|
SIL_E 3
|
||||||
|
SIL_I 4
|
||||||
|
SIL_S 5
|
||||||
|
LAUGHTER 6
|
||||||
|
LAUGHTER_B 7
|
||||||
|
LAUGHTER_E 8
|
||||||
|
LAUGHTER_I 9
|
||||||
|
LAUGHTER_S 10
|
||||||
|
NOISE 11
|
||||||
|
NOISE_B 12
|
||||||
|
NOISE_E 13
|
||||||
|
NOISE_I 14
|
||||||
|
NOISE_S 15
|
||||||
|
OOV 16
|
||||||
|
OOV_B 17
|
||||||
|
OOV_E 18
|
||||||
|
OOV_I 19
|
||||||
|
OOV_S 20
|
||||||
|
SPN 21
|
||||||
|
SPN_B 22
|
||||||
|
SPN_E 23
|
||||||
|
SPN_I 24
|
||||||
|
SPN_S 25
|
||||||
|
BRH 26
|
||||||
|
BRH_B 27
|
||||||
|
BRH_E 28
|
||||||
|
BRH_I 29
|
||||||
|
BRH_S 30
|
||||||
|
CGH 31
|
||||||
|
CGH_B 32
|
||||||
|
CGH_E 33
|
||||||
|
CGH_I 34
|
||||||
|
CGH_S 35
|
||||||
|
NSN 36
|
||||||
|
NSN_B 37
|
||||||
|
NSN_E 38
|
||||||
|
NSN_I 39
|
||||||
|
NSN_S 40
|
||||||
|
SMK 41
|
||||||
|
SMK_B 42
|
||||||
|
SMK_E 43
|
||||||
|
SMK_I 44
|
||||||
|
SMK_S 45
|
||||||
|
UHH 46
|
||||||
|
UHH_B 47
|
||||||
|
UHH_E 48
|
||||||
|
UHH_I 49
|
||||||
|
UHH_S 50
|
||||||
|
UM 51
|
||||||
|
UM_B 52
|
||||||
|
UM_E 53
|
||||||
|
UM_I 54
|
||||||
|
UM_S 55
|
||||||
|
3`_B 56
|
||||||
|
3`_E 57
|
||||||
|
3`_I 58
|
||||||
|
3`_S 59
|
||||||
|
4_B 60
|
||||||
|
4_E 61
|
||||||
|
4_I 62
|
||||||
|
4_S 63
|
||||||
|
@_B 64
|
||||||
|
@_E 65
|
||||||
|
@_I 66
|
||||||
|
@_S 67
|
||||||
|
@`_B 68
|
||||||
|
@`_E 69
|
||||||
|
@`_I 70
|
||||||
|
@`_S 71
|
||||||
|
A_B 72
|
||||||
|
A_E 73
|
||||||
|
A_I 74
|
||||||
|
A_S 75
|
||||||
|
D_B 76
|
||||||
|
D_E 77
|
||||||
|
D_I 78
|
||||||
|
D_S 79
|
||||||
|
E_B 80
|
||||||
|
E_E 81
|
||||||
|
E_I 82
|
||||||
|
E_S 83
|
||||||
|
E:_B 84
|
||||||
|
E:_E 85
|
||||||
|
E:_I 86
|
||||||
|
E:_S 87
|
||||||
|
I_B 88
|
||||||
|
I_E 89
|
||||||
|
I_I 90
|
||||||
|
I_S 91
|
||||||
|
N_B 92
|
||||||
|
N_E 93
|
||||||
|
N_I 94
|
||||||
|
N_S 95
|
||||||
|
O_B 96
|
||||||
|
O_E 97
|
||||||
|
O_I 98
|
||||||
|
O_S 99
|
||||||
|
OI_B 100
|
||||||
|
OI_E 101
|
||||||
|
OI_I 102
|
||||||
|
OI_S 103
|
||||||
|
S_B 104
|
||||||
|
S_E 105
|
||||||
|
S_I 106
|
||||||
|
S_S 107
|
||||||
|
T_B 108
|
||||||
|
T_E 109
|
||||||
|
T_I 110
|
||||||
|
T_S 111
|
||||||
|
U_B 112
|
||||||
|
U_E 113
|
||||||
|
U_I 114
|
||||||
|
U_S 115
|
||||||
|
V_B 116
|
||||||
|
V_E 117
|
||||||
|
V_I 118
|
||||||
|
V_S 119
|
||||||
|
Z_B 120
|
||||||
|
Z_E 121
|
||||||
|
Z_I 122
|
||||||
|
Z_S 123
|
||||||
|
aI_B 124
|
||||||
|
aI_E 125
|
||||||
|
aI_I 126
|
||||||
|
aI_S 127
|
||||||
|
aU_B 128
|
||||||
|
aU_E 129
|
||||||
|
aU_I 130
|
||||||
|
aU_S 131
|
||||||
|
b_B 132
|
||||||
|
b_E 133
|
||||||
|
b_I 134
|
||||||
|
b_S 135
|
||||||
|
d_B 136
|
||||||
|
d_E 137
|
||||||
|
d_I 138
|
||||||
|
d_S 139
|
||||||
|
dZ_B 140
|
||||||
|
dZ_E 141
|
||||||
|
dZ_I 142
|
||||||
|
dZ_S 143
|
||||||
|
eI_B 144
|
||||||
|
eI_E 145
|
||||||
|
eI_I 146
|
||||||
|
eI_S 147
|
||||||
|
f_B 148
|
||||||
|
f_E 149
|
||||||
|
f_I 150
|
||||||
|
f_S 151
|
||||||
|
g_B 152
|
||||||
|
g_E 153
|
||||||
|
g_I 154
|
||||||
|
g_S 155
|
||||||
|
h_B 156
|
||||||
|
h_E 157
|
||||||
|
h_I 158
|
||||||
|
h_S 159
|
||||||
|
i_B 160
|
||||||
|
i_E 161
|
||||||
|
i_I 162
|
||||||
|
i_S 163
|
||||||
|
j_B 164
|
||||||
|
j_E 165
|
||||||
|
j_I 166
|
||||||
|
j_S 167
|
||||||
|
k_B 168
|
||||||
|
k_E 169
|
||||||
|
k_I 170
|
||||||
|
k_S 171
|
||||||
|
l_B 172
|
||||||
|
l_E 173
|
||||||
|
l_I 174
|
||||||
|
l_S 175
|
||||||
|
m_B 176
|
||||||
|
m_E 177
|
||||||
|
m_I 178
|
||||||
|
m_S 179
|
||||||
|
n_B 180
|
||||||
|
n_E 181
|
||||||
|
n_I 182
|
||||||
|
n_S 183
|
||||||
|
oU_B 184
|
||||||
|
oU_E 185
|
||||||
|
oU_I 186
|
||||||
|
oU_S 187
|
||||||
|
p_B 188
|
||||||
|
p_E 189
|
||||||
|
p_I 190
|
||||||
|
p_S 191
|
||||||
|
r_B 192
|
||||||
|
r_E 193
|
||||||
|
r_I 194
|
||||||
|
r_S 195
|
||||||
|
s_B 196
|
||||||
|
s_E 197
|
||||||
|
s_I 198
|
||||||
|
s_S 199
|
||||||
|
t_B 200
|
||||||
|
t_E 201
|
||||||
|
t_I 202
|
||||||
|
t_S 203
|
||||||
|
tS_B 204
|
||||||
|
tS_E 205
|
||||||
|
tS_I 206
|
||||||
|
tS_S 207
|
||||||
|
u_B 208
|
||||||
|
u_E 209
|
||||||
|
u_I 210
|
||||||
|
u_S 211
|
||||||
|
v_B 212
|
||||||
|
v_E 213
|
||||||
|
v_I 214
|
||||||
|
v_S 215
|
||||||
|
w_B 216
|
||||||
|
w_E 217
|
||||||
|
w_I 218
|
||||||
|
w_S 219
|
||||||
|
z_B 220
|
||||||
|
z_E 221
|
||||||
|
z_I 222
|
||||||
|
z_S 223
|
||||||
|
{_B 224
|
||||||
|
{_E 225
|
||||||
|
{_I 226
|
||||||
|
{_S 227
|
||||||
|
#0 228
|
||||||
|
#1 229
|
||||||
|
#2 230
|
||||||
|
#3 231
|
||||||
|
#4 232
|
||||||
|
#5 233
|
||||||
|
#6 234
|
||||||
|
#7 235
|
||||||
|
#8 236
|
||||||
|
#9 237
|
||||||
|
#10 238
|
||||||
|
#11 239
|
||||||
|
#12 240
|
||||||
|
#13 241
|
||||||
|
#14 242
|
||||||
|
#15 243
|
||||||
|
#16 244
|
||||||
|
#17 245
|
||||||
|
#18 246
|
||||||
|
#19 247
|
||||||
|
#20 248
|
||||||
|
#21 249
|
||||||
|
#22 250
|
||||||
|
#23 251
|
||||||
|
#24 252
|
||||||
|
#25 253
|
||||||
|
#26 254
|
||||||
|
#27 255
|
||||||
|
#28 256
|
||||||
|
#29 257
|
||||||
|
#30 258
|
||||||
|
#31 259
|
||||||
|
#32 260
|
||||||
|
#33 261
|
||||||
|
#34 262
|
||||||
|
#35 263
|
||||||
|
#36 264
|
||||||
|
#37 265
|
||||||
|
#38 266
|
||||||
|
|
@ -0,0 +1,227 @@
|
||||||
|
1 nonword
|
||||||
|
2 begin
|
||||||
|
3 end
|
||||||
|
4 internal
|
||||||
|
5 singleton
|
||||||
|
6 nonword
|
||||||
|
7 begin
|
||||||
|
8 end
|
||||||
|
9 internal
|
||||||
|
10 singleton
|
||||||
|
11 nonword
|
||||||
|
12 begin
|
||||||
|
13 end
|
||||||
|
14 internal
|
||||||
|
15 singleton
|
||||||
|
16 nonword
|
||||||
|
17 begin
|
||||||
|
18 end
|
||||||
|
19 internal
|
||||||
|
20 singleton
|
||||||
|
21 nonword
|
||||||
|
22 begin
|
||||||
|
23 end
|
||||||
|
24 internal
|
||||||
|
25 singleton
|
||||||
|
26 nonword
|
||||||
|
27 begin
|
||||||
|
28 end
|
||||||
|
29 internal
|
||||||
|
30 singleton
|
||||||
|
31 nonword
|
||||||
|
32 begin
|
||||||
|
33 end
|
||||||
|
34 internal
|
||||||
|
35 singleton
|
||||||
|
36 nonword
|
||||||
|
37 begin
|
||||||
|
38 end
|
||||||
|
39 internal
|
||||||
|
40 singleton
|
||||||
|
41 nonword
|
||||||
|
42 begin
|
||||||
|
43 end
|
||||||
|
44 internal
|
||||||
|
45 singleton
|
||||||
|
46 nonword
|
||||||
|
47 begin
|
||||||
|
48 end
|
||||||
|
49 internal
|
||||||
|
50 singleton
|
||||||
|
51 nonword
|
||||||
|
52 begin
|
||||||
|
53 end
|
||||||
|
54 internal
|
||||||
|
55 singleton
|
||||||
|
56 begin
|
||||||
|
57 end
|
||||||
|
58 internal
|
||||||
|
59 singleton
|
||||||
|
60 begin
|
||||||
|
61 end
|
||||||
|
62 internal
|
||||||
|
63 singleton
|
||||||
|
64 begin
|
||||||
|
65 end
|
||||||
|
66 internal
|
||||||
|
67 singleton
|
||||||
|
68 begin
|
||||||
|
69 end
|
||||||
|
70 internal
|
||||||
|
71 singleton
|
||||||
|
72 begin
|
||||||
|
73 end
|
||||||
|
74 internal
|
||||||
|
75 singleton
|
||||||
|
76 begin
|
||||||
|
77 end
|
||||||
|
78 internal
|
||||||
|
79 singleton
|
||||||
|
80 begin
|
||||||
|
81 end
|
||||||
|
82 internal
|
||||||
|
83 singleton
|
||||||
|
84 begin
|
||||||
|
85 end
|
||||||
|
86 internal
|
||||||
|
87 singleton
|
||||||
|
88 begin
|
||||||
|
89 end
|
||||||
|
90 internal
|
||||||
|
91 singleton
|
||||||
|
92 begin
|
||||||
|
93 end
|
||||||
|
94 internal
|
||||||
|
95 singleton
|
||||||
|
96 begin
|
||||||
|
97 end
|
||||||
|
98 internal
|
||||||
|
99 singleton
|
||||||
|
100 begin
|
||||||
|
101 end
|
||||||
|
102 internal
|
||||||
|
103 singleton
|
||||||
|
104 begin
|
||||||
|
105 end
|
||||||
|
106 internal
|
||||||
|
107 singleton
|
||||||
|
108 begin
|
||||||
|
109 end
|
||||||
|
110 internal
|
||||||
|
111 singleton
|
||||||
|
112 begin
|
||||||
|
113 end
|
||||||
|
114 internal
|
||||||
|
115 singleton
|
||||||
|
116 begin
|
||||||
|
117 end
|
||||||
|
118 internal
|
||||||
|
119 singleton
|
||||||
|
120 begin
|
||||||
|
121 end
|
||||||
|
122 internal
|
||||||
|
123 singleton
|
||||||
|
124 begin
|
||||||
|
125 end
|
||||||
|
126 internal
|
||||||
|
127 singleton
|
||||||
|
128 begin
|
||||||
|
129 end
|
||||||
|
130 internal
|
||||||
|
131 singleton
|
||||||
|
132 begin
|
||||||
|
133 end
|
||||||
|
134 internal
|
||||||
|
135 singleton
|
||||||
|
136 begin
|
||||||
|
137 end
|
||||||
|
138 internal
|
||||||
|
139 singleton
|
||||||
|
140 begin
|
||||||
|
141 end
|
||||||
|
142 internal
|
||||||
|
143 singleton
|
||||||
|
144 begin
|
||||||
|
145 end
|
||||||
|
146 internal
|
||||||
|
147 singleton
|
||||||
|
148 begin
|
||||||
|
149 end
|
||||||
|
150 internal
|
||||||
|
151 singleton
|
||||||
|
152 begin
|
||||||
|
153 end
|
||||||
|
154 internal
|
||||||
|
155 singleton
|
||||||
|
156 begin
|
||||||
|
157 end
|
||||||
|
158 internal
|
||||||
|
159 singleton
|
||||||
|
160 begin
|
||||||
|
161 end
|
||||||
|
162 internal
|
||||||
|
163 singleton
|
||||||
|
164 begin
|
||||||
|
165 end
|
||||||
|
166 internal
|
||||||
|
167 singleton
|
||||||
|
168 begin
|
||||||
|
169 end
|
||||||
|
170 internal
|
||||||
|
171 singleton
|
||||||
|
172 begin
|
||||||
|
173 end
|
||||||
|
174 internal
|
||||||
|
175 singleton
|
||||||
|
176 begin
|
||||||
|
177 end
|
||||||
|
178 internal
|
||||||
|
179 singleton
|
||||||
|
180 begin
|
||||||
|
181 end
|
||||||
|
182 internal
|
||||||
|
183 singleton
|
||||||
|
184 begin
|
||||||
|
185 end
|
||||||
|
186 internal
|
||||||
|
187 singleton
|
||||||
|
188 begin
|
||||||
|
189 end
|
||||||
|
190 internal
|
||||||
|
191 singleton
|
||||||
|
192 begin
|
||||||
|
193 end
|
||||||
|
194 internal
|
||||||
|
195 singleton
|
||||||
|
196 begin
|
||||||
|
197 end
|
||||||
|
198 internal
|
||||||
|
199 singleton
|
||||||
|
200 begin
|
||||||
|
201 end
|
||||||
|
202 internal
|
||||||
|
203 singleton
|
||||||
|
204 begin
|
||||||
|
205 end
|
||||||
|
206 internal
|
||||||
|
207 singleton
|
||||||
|
208 begin
|
||||||
|
209 end
|
||||||
|
210 internal
|
||||||
|
211 singleton
|
||||||
|
212 begin
|
||||||
|
213 end
|
||||||
|
214 internal
|
||||||
|
215 singleton
|
||||||
|
216 begin
|
||||||
|
217 end
|
||||||
|
218 internal
|
||||||
|
219 singleton
|
||||||
|
220 begin
|
||||||
|
221 end
|
||||||
|
222 internal
|
||||||
|
223 singleton
|
||||||
|
224 begin
|
||||||
|
225 end
|
||||||
|
226 internal
|
||||||
|
227 singleton
|
||||||
368707
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/words.txt
Normal file
368707
resources/vosk/vosk-model-en-us-0.22-lgraph/graph/words.txt
Normal file
File diff suppressed because it is too large
Load diff
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.dubm
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.dubm
Normal file
Binary file not shown.
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.ie
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.ie
Normal file
Binary file not shown.
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.mat
Normal file
BIN
resources/vosk/vosk-model-en-us-0.22-lgraph/ivector/final.mat
Normal file
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
||||||
|
[
|
||||||
|
2.74606e+11 7.912398e+09 -1.038969e+11 1.317063e+10 -5.916838e+10 -9.741645e+10 -2.601366e+10 -7.401961e+10 -2.684753e+10 -1.58957e+10 -4.96366e+10 -8.033801e+09 -3.074859e+10 -1.707706e+10 -1.639996e+10 -1.829851e+10 -1.09582e+10 -5.920052e+09 -7.745878e+09 -1.833566e+09 -2.802531e+09 -7.583578e+08 -3.994372e+08 6.940003e+07 8.935535e+08 2.282279e+08 1.745994e+09 -6.372821e+07 8.785109e+08 -1.030507e+08 8.091005e+08 4.407504e+08 1.859903e+09 1.753656e+09 2.066627e+09 1.37222e+09 1.386451e+09 -1.142544e+09 -2.51193e+08 -9.788437e+08 3.129497e+09
|
||||||
|
2.54123e+13 1.928342e+12 6.751519e+12 1.637428e+12 3.016774e+12 5.912373e+12 1.868079e+12 3.886044e+12 1.841588e+12 1.633684e+12 2.137614e+12 1.072133e+12 1.296519e+12 1.00067e+12 8.062336e+11 6.591713e+11 4.603988e+11 3.121481e+11 2.243611e+11 1.153531e+11 6.293688e+10 2.146548e+10 2.735945e+09 7.957589e+08 1.053802e+10 2.59947e+10 4.301262e+10 5.558657e+10 7.239489e+10 8.546533e+10 8.436563e+10 7.792829e+10 8.569881e+10 9.576342e+10 7.780419e+10 5.335785e+10 5.166593e+10 4.813119e+10 3.81959e+10 2.395734e+10 0 ]
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
--left-context=3
|
||||||
|
--right-context=3
|
||||||
Loading…
Add table
Add a link
Reference in a new issue