Custom pv_recorder git repo (reverted)

This commit is contained in:
Priler
2025-12-12 01:36:39 +05:00
parent 1a146e9505
commit 76aca1e34a
7 changed files with 51 additions and 466 deletions

16
app/.cargo/config.toml Normal file
View File

@@ -0,0 +1,16 @@
# Cargo configuration file
[build]
jobs = 4
rustflags = [
# "-Ctarget-feature=+fp16,+fhm"
]
[profile.dev]
opt-level = 0
debug = true
[profile.release]
opt-level = 3
debug = false
lto = true

472
app/Cargo.lock generated
View File

@@ -232,7 +232,7 @@ dependencies = [
"arg_enum_proc_macro",
"arrayvec",
"log",
"num-rational 0.4.2",
"num-rational",
"num-traits",
"pastey",
"rayon",
@@ -251,7 +251,7 @@ dependencies = [
"arrayvec",
"log",
"nom",
"num-rational 0.4.2",
"num-rational",
"v_frame",
]
@@ -330,12 +330,6 @@ version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "byteorder-lite"
version = "0.1.0"
@@ -399,166 +393,6 @@ dependencies = [
"wayland-client",
]
[[package]]
name = "candle-core"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dde6b117b2e56ee68959aad0cb5fdfe65f39328c8c82e5bd356a6b95ade471c7"
dependencies = [
"byteorder",
"candle-gemm",
"half",
"memmap2 0.7.1",
"num-traits",
"num_cpus",
"rand 0.8.5",
"rand_distr 0.4.3",
"rayon",
"safetensors",
"thiserror 1.0.69",
"zip",
]
[[package]]
name = "candle-gemm"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef9b07a4b0ba1a304b44432006580980ddff9748c201261c279437e7b11bba68"
dependencies = [
"candle-gemm-c32",
"candle-gemm-c64",
"candle-gemm-common",
"candle-gemm-f16",
"candle-gemm-f32",
"candle-gemm-f64",
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-c32"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f595241dad99811de285e029889f57c29dd98e33de7a8a6b881867b1488d7d4a"
dependencies = [
"candle-gemm-common",
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-c64"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "648f22fd8f5a4f330e29d791845b514966421308a6a2b5fedb949ee07e54c77f"
dependencies = [
"candle-gemm-common",
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-common"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e03c01b4ca3b9d71e4eb89e42946a08f8b0d2f1b861f7fa2ea0966233f1e0b08"
dependencies = [
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-f16"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97f8af2a482131713d28a337abff6debf26c529afa1837caf2ba190909b2107c"
dependencies = [
"candle-gemm-common",
"candle-gemm-f32",
"dyn-stack",
"half",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-f32"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "938927961e2f0c0a6064fcf3524ea3f7f455fe5708419532a6fea9aea1ab45ae"
dependencies = [
"candle-gemm-common",
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-gemm-f64"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d192d7126e59b81ef4cf13cd9f194e6dbdc09171f65d0074d059dc009ac06775"
dependencies = [
"candle-gemm-common",
"dyn-stack",
"lazy_static",
"num-complex 0.4.6",
"num-traits",
"paste",
"raw-cpuid",
"rayon",
"seq-macro",
]
[[package]]
name = "candle-nn"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f65727276854c62e0d5b65e9e71b491d055477964943816e04da7dcda33852c"
dependencies = [
"candle-core",
"half",
"num-traits",
"rayon",
"safetensors",
"serde",
"thiserror 1.0.69",
]
[[package]]
name = "cc"
version = "1.2.49"
@@ -610,33 +444,6 @@ dependencies = [
"windows-link",
]
[[package]]
name = "ciborium"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
dependencies = [
"ciborium-io",
"ciborium-ll",
"serde",
]
[[package]]
name = "ciborium-io"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
[[package]]
name = "ciborium-ll"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
dependencies = [
"ciborium-io",
"half",
]
[[package]]
name = "color_quant"
version = "1.1.0"
@@ -913,16 +720,6 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
[[package]]
name = "dyn-stack"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fe7f8d7bcc523381d3c437b82cf74805de3931de0da69309ae0fe1bdf7a256e"
dependencies = [
"bytemuck",
"reborrow",
]
[[package]]
name = "either"
version = "1.15.0"
@@ -1406,9 +1203,6 @@ checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
dependencies = [
"cfg-if",
"crunchy",
"num-traits",
"rand 0.9.2",
"rand_distr 0.5.1",
"zerocopy",
]
@@ -1550,7 +1344,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jarvis-app"
version = "0.0.3"
version = "0.1.0"
dependencies = [
"atomic_enum",
"hound",
@@ -1559,10 +1353,9 @@ dependencies = [
"log",
"once_cell",
"platform-dirs",
"portaudio",
"rand 0.9.2",
"pv_recorder",
"rand 0.8.5",
"rodio",
"rustpotter",
"seqdiff",
"serde",
"serde_json",
@@ -1715,12 +1508,6 @@ dependencies = [
"windows-link",
]
[[package]]
name = "libm"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
[[package]]
name = "libredox"
version = "0.1.10"
@@ -1850,15 +1637,6 @@ version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
[[package]]
name = "memmap2"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
dependencies = [
"libc",
]
[[package]]
name = "memmap2"
version = "0.9.9"
@@ -1981,19 +1759,6 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
[[package]]
name = "num"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
dependencies = [
"num-complex 0.2.4",
"num-integer",
"num-iter",
"num-rational 0.2.4",
"num-traits",
]
[[package]]
name = "num-bigint"
version = "0.4.6"
@@ -2004,25 +1769,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
dependencies = [
"num-traits",
]
[[package]]
name = "num-derive"
version = "0.4.2"
@@ -2043,28 +1789,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-iter"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.2"
@@ -2083,17 +1807,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
"libm",
]
[[package]]
name = "num_cpus"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
dependencies = [
"hermit-abi",
"libc",
]
[[package]]
@@ -2604,27 +2317,6 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "portaudio"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d64242ed9c0236ba1470729856c0e69363ecd2339940230161383f1238804f6"
dependencies = [
"bitflags 2.10.0",
"libc",
"num",
"portaudio-sys2",
]
[[package]]
name = "portaudio-sys2"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86a36ee35d719327fee8827321bd41f3ee7a2cc2335aa28f9168ffed3e82c6b8"
dependencies = [
"pkg-config",
]
[[package]]
name = "ppv-lite86"
version = "0.2.21"
@@ -2634,15 +2326,6 @@ dependencies = [
"zerocopy",
]
[[package]]
name = "primal-check"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08"
dependencies = [
"num-integer",
]
[[package]]
name = "proc-macro-crate"
version = "1.3.1"
@@ -2724,6 +2407,15 @@ dependencies = [
"syn 2.0.111",
]
[[package]]
name = "pv_recorder"
version = "1.2.6"
source = "git+https://github.com/Priler/pvrecorder#db9d80cde8df5e51a2634cd6756b7fd7b7010316"
dependencies = [
"libc",
"libloading 0.8.9",
]
[[package]]
name = "pxfm"
version = "0.1.27"
@@ -2831,26 +2523,6 @@ dependencies = [
"getrandom 0.3.4",
]
[[package]]
name = "rand_distr"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
dependencies = [
"num-traits",
"rand 0.8.5",
]
[[package]]
name = "rand_distr"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463"
dependencies = [
"num-traits",
"rand 0.9.2",
]
[[package]]
name = "rav1e"
version = "0.8.1"
@@ -2901,15 +2573,6 @@ dependencies = [
"rgb",
]
[[package]]
name = "raw-cpuid"
version = "10.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
dependencies = [
"bitflags 1.3.2",
]
[[package]]
name = "raw-window-handle"
version = "0.6.2"
@@ -2936,21 +2599,6 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "realfft"
version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f821338fddb99d089116342c46e9f1fbf3828dba077674613e734e01d6ea8677"
dependencies = [
"rustfft",
]
[[package]]
name = "reborrow"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430"
[[package]]
name = "redox_syscall"
version = "0.4.1"
@@ -3005,7 +2653,7 @@ checksum = "e40ecf59e742e03336be6a3d53755e789fd05a059fa22dfa0ed624722319e183"
dependencies = [
"cpal",
"dasp_sample",
"num-rational 0.4.2",
"num-rational",
"symphonia",
]
@@ -3015,18 +2663,6 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad8388ea1a9e0ea807e442e8263a699e7edcb320ecbcd21b4fa8ff859acce3ba"
[[package]]
name = "rubato"
version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6dd52e80cfc21894deadf554a5673002938ae4625f7a283e536f9cf7c17b0d5"
dependencies = [
"num-complex 0.4.6",
"num-integer",
"num-traits",
"realfft",
]
[[package]]
name = "rustc_version"
version = "0.4.1"
@@ -3036,20 +2672,6 @@ dependencies = [
"semver",
]
[[package]]
name = "rustfft"
version = "6.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21db5f9893e91f41798c88680037dba611ca6674703c1a18601b01a72c8adb89"
dependencies = [
"num-complex 0.4.6",
"num-integer",
"num-traits",
"primal-check",
"strength_reduce",
"transpose",
]
[[package]]
name = "rustix"
version = "0.38.44"
@@ -3076,21 +2698,6 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "rustpotter"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc656425c55521e7fbd6445b66d588827dbe673f89c0491628345f073147696c"
dependencies = [
"candle-core",
"candle-nn",
"ciborium",
"hound",
"rubato",
"rustfft",
"serde",
]
[[package]]
name = "rustversion"
version = "1.0.22"
@@ -3103,16 +2710,6 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "safetensors"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d93279b86b3de76f820a8854dd06cbc33cfa57a417b19c47f6a25280112fb1df"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "same-file"
version = "1.0.6"
@@ -3142,7 +2739,7 @@ checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec"
dependencies = [
"ab_glyph",
"log",
"memmap2 0.9.9",
"memmap2",
"smithay-client-toolkit",
"tiny-skia",
]
@@ -3159,12 +2756,6 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
[[package]]
name = "seq-macro"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
[[package]]
name = "seqdiff"
version = "0.3.0"
@@ -3304,7 +2895,7 @@ dependencies = [
"cursor-icon",
"libc",
"log",
"memmap2 0.9.9",
"memmap2",
"rustix 0.38.44",
"thiserror 1.0.69",
"wayland-backend",
@@ -3332,12 +2923,6 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]]
name = "strength_reduce"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
[[package]]
name = "strict-num"
version = "0.1.1"
@@ -3711,16 +3296,6 @@ version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
[[package]]
name = "transpose"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e"
dependencies = [
"num-integer",
"strength_reduce",
]
[[package]]
name = "tray-icon"
version = "0.21.2"
@@ -4411,7 +3986,7 @@ dependencies = [
"dpi",
"js-sys",
"libc",
"memmap2 0.9.9",
"memmap2",
"ndk",
"objc2 0.5.2",
"objc2-app-kit 0.2.2",
@@ -4559,17 +4134,6 @@ dependencies = [
"syn 2.0.111",
]
[[package]]
name = "zip"
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
dependencies = [
"byteorder",
"crc32fast",
"crossbeam-utils",
]
[[package]]
name = "zune-core"
version = "0.4.12"

View File

@@ -1,11 +1,12 @@
[package]
name = "jarvis-app"
version = "0.0.3"
version = "0.1.0"
description = "Jarvis Voice Assistant"
authors = ["Abraham Tugalov"]
license = "GPL-3.0-only"
repository = "https://github.com/Priler/jarvis"
edition = "2021"
edition = "2024"
keywords = ["assistant", "ai", "offline"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -13,17 +14,17 @@ edition = "2021"
serde = { version = "1.0.197", features = ["derive"] }
serde_json = "1.0.114"
hound = "3.5.1"
# pv_recorder = "1.2.2"
pv_recorder = { git = "https://github.com/Priler/pvrecorder" }
# pv_porcupine = "3.0.2"
seqdiff = "0.3.0"
vosk = "0.3.1"
rand = "0.9.0-alpha.1"
rand = "^0.8.5"
rodio = "0.21.1"
rustpotter = "3.0.2"
# rustpotter = "3.0.2"
log = "0.4.21"
once_cell = "1.19.0"
atomic_enum = "0.3.0"
portaudio = "0.8.0"
# portaudio = "0.8.0"
platform-dirs = "0.3.0"
simple-log = "2.4.0"
tray-icon = { version = "0.21.2" }
@@ -32,6 +33,9 @@ image = "0.25.9"
serde_yaml = "0.9.33"
kira = "0.11.0"
#[patch.crates-io]
#candle-core = { git = "https://github.com/huggingface/candle", tag = "v0.9.0" }
[features]
default = ["jarvis_app"]
jarvis_app = [] # feature flag saying this is an app

View File

@@ -1,7 +1,7 @@
use std::time::SystemTime;
use crate::{audio, commands, config, listener, recorder, stt, COMMANDS_LIST};
use rand::seq::IndexedRandom;
use rand::prelude::*;
pub fn start() -> Result<(), ()> {
// start the loop

View File

@@ -1,4 +1,4 @@
use rand::seq::IndexedRandom;
use rand::prelude::*;
use seqdiff::ratio;
use serde_yaml;
use std::path::Path;

View File

@@ -1,4 +1,4 @@
mod porcupine;
// mod porcupine;
mod rustpotter;
@@ -34,7 +34,8 @@ pub fn init() -> Result<(), ()> {
// Init Porcupine wake-word engine
info!("Initializing Porcupine wake-word engine.");
return porcupine::init();
// return porcupine::init();
unimplemented!("f*ck picovoice");
}
WakeWordEngine::Rustpotter => {
// Init Rustpotter wake-word engine

View File

@@ -13,8 +13,8 @@ pub fn init_logging() -> Result<(), String> {
))
.size(1 * 100)
.roll_count(10)
.time_format("%Y-%m-%d %H:%M:%S.%f") //E.g:%H:%M:%S.%f
.level("debug")
.time_format("%Y-%m-%d %H:%M:%S.%f")
.level("debug")?
.output_file()
.output_console()
.build();