forked from mediar-ai/screenpipe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
102 lines (78 loc) · 2.53 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
[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
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Cross-platform audio capture
# cpal = "0.15.2"
# Temporary hack check https://github.com/RustAudio/cpal/pull/894
# cpal = { git = "https://github.com/louis030195/cpal-d.git", rev = "6751589" }
cpal = { git = "https://github.com/mediar-ai/cpal.git" }
# 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.3"
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 }
[target.'cfg(target_os = "windows")'.dependencies]
ort = { version = "2.0.0-rc.5", 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"
[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