-
Notifications
You must be signed in to change notification settings - Fork 892
/
Copy pathCargo.toml
125 lines (101 loc) · 2.91 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
[package]
name = "screenpipe-audio"
version = { workspace = true }
authors = { workspace = true }
description = { workspace = true }
repository = { workspace = true }
license = { workspace = true }
edition = { workspace = true }
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
reqwest = { workspace = true }
which = "7.0.0"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Cross-platform audio capture
cpal = { git = "https://github.com/Kree0/cpal.git", branch = "master" }
# Wav encoding
hound = "3.5"
# Cli ! shouldn't be required if using as lib
clap = { version = "4.3", features = ["derive"] }
# Dates
chrono = { version = "0.4.31", features = ["serde"] }
# Local Embeddings + STT
# TODO: feature metal, cuda, etc. see https://github.com/huggingface/candle/blob/main/candle-core/Cargo.toml
candle = { workspace = true }
candle-nn = { workspace = true }
candle-transformers = { workspace = true }
vad-rs = "0.1.4"
tokenizers = { workspace = true }
anyhow = "1.0.86"
byteorder = "1.5.0"
hf-hub = "0.3.2"
# https://github.com/pdeljanov/Symphonia/tree/master?tab=readme-ov-file#optimizations
symphonia = { version = "0.5.4", features = ["aac", "isomp4", "opt-simd"] }
rand = "0.8.5"
rubato = "0.15.0"
# Log
log = { workspace = true }
tracing = { workspace = true }
env_logger = "0.10"
# Bytes
bytemuck = "1.16.1"
# Async
tokio = { workspace = true }
# Detect speech/silence
webrtc-vad = "0.4.0"
# Deepgram
reqwest = { workspace = true }
screenpipe-core = { path = "../screenpipe-core" }
# crossbeam
crossbeam = { workspace = true }
dashmap = { workspace = true }
# Directories
dirs = "5.0.1"
lazy_static = { version = "1.4.0" }
realfft = "3.4.0"
regex = "1.11.0"
ndarray = "0.16"
ort = "=2.0.0-rc.6"
knf-rs = { git = "https://github.com/Neptune650/knf-rs.git" }
ort-sys = "=2.0.0-rc.8"
futures = "0.3.31"
deepgram = "0.6.4"
bytes = { version = "1.9.0", features = ["serde"] }
[target.'cfg(target_os = "windows")'.dependencies]
ort = { version = "=2.0.0-rc.6", features = [
"download-binaries",
"copy-dylibs",
"directml",
"cuda",
] }
esaxx-rs = "0.1.10"
samplerate = { version = "0.2.4" }
libsamplerate-sys = "0.1.10"
[target.'cfg(target_os = "macos")'.dependencies]
once_cell = "1.17.1"
objc = "0.2.7"
[dev-dependencies]
tempfile = "3.3.0"
infer = "0.15"
criterion = { workspace = true }
memory-stats = "1.0"
strsim = "0.10.0"
futures = "0.3.31"
tracing-subscriber = "0.3.16"
[features]
metal = ["candle/metal", "candle-nn/metal", "candle-transformers/metal"]
cuda = ["candle/cuda", "candle-nn/cuda", "candle-transformers/cuda"]
mkl = ["candle/mkl", "candle-nn/mkl", "candle-transformers/mkl"]
[[bin]]
name = "screenpipe-audio"
path = "src/bin/screenpipe-audio.rs"
[[bench]]
name = "pcm_decode_benchmark"
harness = false
[[bench]]
name = "record_and_transcribe_benchmark"
harness = false
[package.metadata.cargo-machete]
ignored = ["ort-sys"]