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",
|
||||
]
|
||||
|
||||
[[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]]
|
||||
name = "anyhow"
|
||||
version = "1.0.100"
|
||||
|
|
@ -725,6 +775,12 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
||||
|
||||
[[package]]
|
||||
name = "colorchoice"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
||||
|
||||
[[package]]
|
||||
name = "combine"
|
||||
version = "4.6.7"
|
||||
|
|
@ -1359,6 +1415,29 @@ dependencies = [
|
|||
"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]]
|
||||
name = "equator"
|
||||
version = "0.4.2"
|
||||
|
|
@ -2724,6 +2803,12 @@ dependencies = [
|
|||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "is_terminal_polyfill"
|
||||
version = "1.70.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.14.0"
|
||||
|
|
@ -2759,6 +2844,17 @@ dependencies = [
|
|||
"winit",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jarvis-cli"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"jarvis-core",
|
||||
"log",
|
||||
"parking_lot",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jarvis-core"
|
||||
version = "0.1.0"
|
||||
|
|
@ -2829,6 +2925,30 @@ dependencies = [
|
|||
"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]]
|
||||
name = "jni"
|
||||
version = "0.21.1"
|
||||
|
|
@ -3935,6 +4055,12 @@ version = "1.21.3"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
||||
|
||||
[[package]]
|
||||
name = "once_cell_polyfill"
|
||||
version = "1.70.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
||||
|
||||
[[package]]
|
||||
name = "open"
|
||||
version = "5.3.3"
|
||||
|
|
@ -4319,6 +4445,21 @@ dependencies = [
|
|||
"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]]
|
||||
name = "potential_utf"
|
||||
version = "0.1.4"
|
||||
|
|
@ -6808,6 +6949,12 @@ version = "1.0.4"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
||||
|
||||
[[package]]
|
||||
name = "utf8parse"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
||||
|
||||
[[package]]
|
||||
name = "uuid"
|
||||
version = "1.19.0"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ members = [
|
|||
"crates/jarvis-core",
|
||||
"crates/jarvis-app",
|
||||
"crates/jarvis-gui",
|
||||
"crates/jarvis-cli"
|
||||
]
|
||||
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(())
|
||||
}
|
||||
|
|
@ -33,4 +33,5 @@ tokio = { version = "1", features = ["sync"], optional = true }
|
|||
|
||||
[features]
|
||||
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")]
|
||||
pub mod stt;
|
||||
|
||||
#[cfg(feature = "jarvis_app")]
|
||||
#[cfg(feature = "intent")]
|
||||
pub mod intent;
|
||||
|
||||
// shared statics
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ pub fn init() -> Result<(), ()> {
|
|||
// wake word files list
|
||||
// @TODO. Make it configurable via GUI for custom user voice.
|
||||
let rustpotter_wake_word_files: [&str; 1] = [
|
||||
"rustpotter/jarvis-default.rpw",
|
||||
"resources/rustpotter/jarvis-default.rpw",
|
||||
// "rustpotter/jarvis-community-1.rpw",
|
||||
// "rustpotter/jarvis-community-2.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);
|
||||
|
||||
// info!("Ruspotter data callback");
|
||||
|
||||
if let Some(detection) = detection {
|
||||
if detection.score > config::RUSPOTTER_MIN_SCORE {
|
||||
info!("Rustpotter detection info:\n{:?}", detection);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,15 @@ exe_path = "ahk/Run browser.exe"
|
|||
sounds = ["ok1", "ok2", "ok3"]
|
||||
phrases = [
|
||||
"открой браузер",
|
||||
"запусти браузер",
|
||||
"открой хром",
|
||||
"гугл хром",
|
||||
"запусти хром",
|
||||
"открой гугл хром",
|
||||
"запусти гугл хром",
|
||||
"включи браузер",
|
||||
"браузер открой",
|
||||
"нужен браузер",
|
||||
"мне нужен браузер",
|
||||
]
|
||||
|
||||
[[commands]]
|
||||
|
|
@ -15,10 +22,15 @@ action = "ahk"
|
|||
exe_path = "ahk/Close browser.exe"
|
||||
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
||||
phrases = [
|
||||
"закрой все браузеры",
|
||||
"закрой браузер",
|
||||
"закрой все браузеры",
|
||||
"выключи браузер",
|
||||
"убери браузер",
|
||||
"закрой хром",
|
||||
"выключи хром",
|
||||
"закрой гугл хром",
|
||||
"браузер закрой",
|
||||
"сверни браузер",
|
||||
]
|
||||
|
||||
[[commands]]
|
||||
|
|
@ -29,6 +41,12 @@ exe_args = ["http://google.com"]
|
|||
sounds = ["ok1", "ok2", "ok3", "ok4"]
|
||||
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