-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
128 lines (102 loc) · 3.32 KB
/
Cargo.toml
File metadata and controls
128 lines (102 loc) · 3.32 KB
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
126
127
128
[package]
name = "context-switch"
version.workspace = true
edition.workspace = true
rust-version = "1.94"
[workspace]
members = [
"audio-knife",
"audio-test",
"core",
"filter-test",
"services/aristech",
"services/azure",
"services/elevenlabs",
"services/google-transcribe",
"services/openai-dialog",
"services/playback",
]
[workspace.package]
version = "2.1.0"
edition = "2024"
[dependencies]
# ours
context-switch-core = { workspace = true }
openai-dialog = { path = "services/openai-dialog" }
azure = { workspace = true }
azure-speech = { workspace = true }
aristech = { workspace = true }
elevenlabs = { workspace = true }
# basic
static_assertions = { workspace = true }
anyhow = { workspace = true }
base64 = { workspace = true }
tracing = {workspace = true }
futures = "0.3.31"
derive_more = { workspace = true }
# serialization / async runtime
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
tracing-futures = "0.2.5"
# todo: is this needed?
uuid = { workspace = true }
# audio tracing
hound = { workspace = true }
chrono = { workspace = true }
[dev-dependencies]
tracing-subscriber = { workspace = true }
context-switch-core = { workspace = true }
dotenvy = { workspace = true }
# audio input
cpal = "0.17.3"
rodio = { workspace = true, features = ["playback"] }
azure = { workspace = true }
aristech = { workspace = true }
google-transcribe = { path = "services/google-transcribe" }
tokio = { workspace = true, features = ["rt-multi-thread"] }
# For advanced params in openai-dialog
openai-api-rs = { workspace = true }
serde_json = { workspace = true }
chrono-tz = { version = "0.10.3" }
# For recognizing audio files in azure-transcribe.
playback = { path = "services/playback" }
[workspace.dependencies]
tracing-subscriber = { version = "0.3.23" }
context-switch-core = { path = "core" }
azure = { path = "services/azure" }
playback = { path = "services/playback" }
aristech = { path = "services/aristech" }
elevenlabs = { path = "services/elevenlabs" }
anyhow = "1.0.102"
derive_more = { version = "2.1.1", features = ["full"] }
static_assertions = "1.1.0"
async-stream = { version = "0.3.6" }
tokio = { version = "1.50.0", features = ["sync"] }
futures = "0.3.31"
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.149"
base64 = "0.22.1"
async-fn-stream = "0.3.2"
async-trait = "0.1.83"
tracing = "0.1.41"
dotenvy = { version = "0.15.7" }
url = { version = "2.5.8" }
reqwest = { version = "0.13.2" }
mime_guess2 = { version = "2.3.1" }
hound = { version = "3.5.1" }
chrono = { version = "0.4.44" }
#
# external dependencies.
#
azure-speech = { path = "external/azure-speech-sdk-rs" }
# openai-api-rs = "5.2.3"
openai-api-rs = { path = "external/openai-api-rs" }
# - `symphonia-wav` is mandatory: The default WAV decoder does not seem to support A-Law and also
# panics with a few of our testcases.
# - No default features because we don't want to pull alsa on Linux by default for local playback.
# - We have to define at least _one_ decoder, otherwise `cargo clippy --all-targets` fails, so we select `symphonia-mp3`.
rodio = { version = "0.22.2", default-features = false, features = ["symphonia-mp3"] }
rstest = { version = "0.26.1" }
uuid = { version = "1.17.0", features = ["v4"] }