Skip to content

Commit e2bb7ec

Browse files
committed
bunch of fixes
1 parent d53c179 commit e2bb7ec

File tree

16 files changed

+154
-79
lines changed

16 files changed

+154
-79
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/desktop/src-tauri/src/lib.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ pub async fn main() {
1717
tauri::async_runtime::set(tokio::runtime::Handle::current());
1818

1919
{
20-
let env_filter =
21-
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
20+
let env_filter = EnvFilter::try_from_default_env()
21+
.unwrap_or_else(|_| EnvFilter::new("info"))
22+
.add_directive("ort=warn".parse().unwrap());
2223

2324
tracing_subscriber::Registry::default()
2425
.with(fmt::layer())

apps/desktop/src/locales/en/messages.po

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ msgstr "After you grant system audio access, app will restart to apply the chang
376376
#~ msgid "AI notepad for meetings"
377377
#~ msgstr "AI notepad for meetings"
378378

379-
#: src/components/welcome-modal/download-progress-view.tsx:224
379+
#: src/components/welcome-modal/download-progress-view.tsx:221
380380
msgid "All models ready!"
381381
msgstr "All models ready!"
382382

@@ -600,9 +600,9 @@ msgstr "Connect your Obsidian vault to export notes"
600600
msgid "Contacts Access"
601601
msgstr "Contacts Access"
602602

603-
#: src/components/welcome-modal/model-selection-view.tsx:137
603+
#: src/components/welcome-modal/model-selection-view.tsx:94
604604
#: src/components/welcome-modal/llm-selection-view.tsx:94
605-
#: src/components/welcome-modal/download-progress-view.tsx:258
605+
#: src/components/welcome-modal/download-progress-view.tsx:255
606606
#: src/components/welcome-modal/custom-endpoint-view.tsx:595
607607
#: src/components/welcome-modal/calendar-permissions-view.tsx:153
608608
#: src/components/welcome-modal/audio-permissions-view.tsx:189
@@ -705,7 +705,7 @@ msgstr "Display language"
705705
#~ msgid "Download {0}"
706706
#~ msgstr "Download {0}"
707707

708-
#: src/components/welcome-modal/download-progress-view.tsx:204
708+
#: src/components/welcome-modal/download-progress-view.tsx:201
709709
msgid "Downloading AI Models"
710710
msgstr "Downloading AI Models"
711711

@@ -911,7 +911,7 @@ msgstr "Invite"
911911
msgid "Invite members"
912912
msgstr "Invite members"
913913

914-
#: src/components/welcome-modal/download-progress-view.tsx:262
914+
#: src/components/welcome-modal/download-progress-view.tsx:259
915915
msgid "It's ok to move on, downloads will continue in the background"
916916
msgstr "It's ok to move on, downloads will continue in the background"
917917

@@ -1233,7 +1233,7 @@ msgstr "Primary language for the interface"
12331233
msgid "Publish your note"
12341234
msgstr "Publish your note"
12351235

1236-
#: src/components/welcome-modal/download-progress-view.tsx:67
1236+
#: src/components/welcome-modal/download-progress-view.tsx:66
12371237
msgid "Ready"
12381238
msgstr "Ready"
12391239

@@ -1350,7 +1350,7 @@ msgstr "Select a template to enhance your meeting notes"
13501350
#~ msgid "Select a transcribing model"
13511351
#~ msgstr "Select a transcribing model"
13521352

1353-
#: src/components/welcome-modal/model-selection-view.tsx:73
1353+
#: src/components/welcome-modal/model-selection-view.tsx:40
13541354
msgid "Select a transcribing model (STT)"
13551355
msgstr "Select a transcribing model (STT)"
13561356

@@ -1410,7 +1410,7 @@ msgstr "Show notifications when you join a meeting."
14101410
#~ msgid "Single sign-on for all users"
14111411
#~ msgstr "Single sign-on for all users"
14121412

1413-
#: src/components/welcome-modal/download-progress-view.tsx:230
1413+
#: src/components/welcome-modal/download-progress-view.tsx:227
14141414
msgid "Some downloads failed, but you can continue"
14151415
msgstr "Some downloads failed, but you can continue"
14161416

apps/desktop/src/locales/ko/messages.po

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ msgstr ""
376376
#~ msgid "AI notepad for meetings"
377377
#~ msgstr ""
378378

379-
#: src/components/welcome-modal/download-progress-view.tsx:224
379+
#: src/components/welcome-modal/download-progress-view.tsx:221
380380
msgid "All models ready!"
381381
msgstr ""
382382

@@ -600,9 +600,9 @@ msgstr ""
600600
msgid "Contacts Access"
601601
msgstr ""
602602

603-
#: src/components/welcome-modal/model-selection-view.tsx:137
603+
#: src/components/welcome-modal/model-selection-view.tsx:94
604604
#: src/components/welcome-modal/llm-selection-view.tsx:94
605-
#: src/components/welcome-modal/download-progress-view.tsx:258
605+
#: src/components/welcome-modal/download-progress-view.tsx:255
606606
#: src/components/welcome-modal/custom-endpoint-view.tsx:595
607607
#: src/components/welcome-modal/calendar-permissions-view.tsx:153
608608
#: src/components/welcome-modal/audio-permissions-view.tsx:189
@@ -705,7 +705,7 @@ msgstr ""
705705
#~ msgid "Download {0}"
706706
#~ msgstr ""
707707

708-
#: src/components/welcome-modal/download-progress-view.tsx:204
708+
#: src/components/welcome-modal/download-progress-view.tsx:201
709709
msgid "Downloading AI Models"
710710
msgstr ""
711711

@@ -911,7 +911,7 @@ msgstr ""
911911
msgid "Invite members"
912912
msgstr ""
913913

914-
#: src/components/welcome-modal/download-progress-view.tsx:262
914+
#: src/components/welcome-modal/download-progress-view.tsx:259
915915
msgid "It's ok to move on, downloads will continue in the background"
916916
msgstr ""
917917

@@ -1233,7 +1233,7 @@ msgstr ""
12331233
msgid "Publish your note"
12341234
msgstr ""
12351235

1236-
#: src/components/welcome-modal/download-progress-view.tsx:67
1236+
#: src/components/welcome-modal/download-progress-view.tsx:66
12371237
msgid "Ready"
12381238
msgstr ""
12391239

@@ -1350,7 +1350,7 @@ msgstr ""
13501350
#~ msgid "Select a transcribing model"
13511351
#~ msgstr ""
13521352

1353-
#: src/components/welcome-modal/model-selection-view.tsx:73
1353+
#: src/components/welcome-modal/model-selection-view.tsx:40
13541354
msgid "Select a transcribing model (STT)"
13551355
msgstr ""
13561356

@@ -1410,7 +1410,7 @@ msgstr ""
14101410
#~ msgid "Single sign-on for all users"
14111411
#~ msgstr ""
14121412

1413-
#: src/components/welcome-modal/download-progress-view.tsx:230
1413+
#: src/components/welcome-modal/download-progress-view.tsx:227
14141414
msgid "Some downloads failed, but you can continue"
14151415
msgstr ""
14161416

crates/transcribe-whisper-local/src/service/recorded.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ pub fn process_recorded(
2222
let mut model = hypr_whisper_local::Whisper::builder()
2323
.model_path(model_path.as_ref().to_str().unwrap())
2424
.languages(vec![])
25-
.build();
25+
.build()
26+
.unwrap();
2627

2728
let mut segmenter = hypr_pyannote_local::segmentation::Segmenter::new(16000).unwrap();
2829
let segments = segmenter.process(&samples, 16000).unwrap();

crates/transcribe-whisper-local/src/service/streaming.rs

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,33 @@ where
9090
}
9191
};
9292

93+
let model = match hypr_whisper_local::Whisper::builder()
94+
.model_path(model_path.to_str().unwrap())
95+
.languages(
96+
params
97+
.languages
98+
.iter()
99+
.filter_map(|lang| lang.clone().try_into().ok())
100+
.collect::<Vec<hypr_whisper::Language>>(),
101+
)
102+
.build()
103+
{
104+
Ok(model) => model,
105+
Err(e) => {
106+
let res = (
107+
StatusCode::INTERNAL_SERVER_ERROR,
108+
format!("failed_to_build_whisper: {}", e),
109+
)
110+
.into_response();
111+
return Ok(res);
112+
}
113+
};
114+
93115
let guard = connection_manager.acquire_connection();
94116

95117
Ok(ws_upgrade
96118
.on_upgrade(move |socket| async move {
97-
handle_websocket_connection(socket, params, model_path, guard).await
119+
handle_websocket_connection(socket, params, model, guard).await;
98120
})
99121
.into_response())
100122
})
@@ -104,20 +126,9 @@ where
104126
async fn handle_websocket_connection(
105127
socket: WebSocket,
106128
params: ListenParams,
107-
model_path: PathBuf,
129+
model: hypr_whisper_local::Whisper,
108130
guard: ConnectionGuard,
109131
) {
110-
let languages: Vec<hypr_whisper::Language> = params
111-
.languages
112-
.into_iter()
113-
.filter_map(|lang| lang.try_into().ok())
114-
.collect();
115-
116-
let model = hypr_whisper_local::Whisper::builder()
117-
.model_path(model_path.to_str().unwrap())
118-
.languages(languages)
119-
.build();
120-
121132
let (ws_sender, ws_receiver) = socket.split();
122133

123134
let redemption_time = Duration::from_millis(std::cmp::min(

crates/whisper-local/src/error.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ use serde::{ser::Serializer, Serialize};
22

33
#[derive(Debug, thiserror::Error)]
44
pub enum Error {
5+
#[error("model_not_found")]
6+
ModelNotFound,
57
#[error(transparent)]
68
LocalWhisperError(#[from] whisper_rs::WhisperError),
79
}

crates/whisper-local/src/model.rs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ impl WhisperBuilder {
3131
self
3232
}
3333

34-
pub fn build(self) -> Whisper {
34+
pub fn build(self) -> Result<Whisper, crate::Error> {
3535
unsafe { Self::suppress_log() };
3636

3737
let context_param = {
@@ -44,19 +44,22 @@ impl WhisperBuilder {
4444
};
4545

4646
let model_path = self.model_path.unwrap();
47+
if !std::path::Path::new(&model_path).exists() {
48+
return Err(crate::Error::ModelNotFound);
49+
}
4750

48-
let ctx = WhisperContext::new_with_params(&model_path, context_param).unwrap();
49-
let state = ctx.create_state().unwrap();
51+
let ctx = WhisperContext::new_with_params(&model_path, context_param)?;
52+
let state = ctx.create_state()?;
5053
let token_eot = ctx.token_eot();
5154
let token_beg = ctx.token_beg();
5255

53-
Whisper {
56+
Ok(Whisper {
5457
languages: self.languages.unwrap_or_default(),
5558
dynamic_prompt: "".to_string(),
5659
state,
5760
token_eot,
5861
token_beg,
59-
}
62+
})
6063
}
6164

6265
unsafe fn suppress_log() {
@@ -173,11 +176,13 @@ impl Whisper {
173176

174177
fn get_language(&mut self, audio: &[f32]) -> Result<Option<String>, super::Error> {
175178
if self.languages.len() == 0 {
179+
tracing::info!("no_language_specified");
176180
return Ok(None);
177181
}
178182

179183
if self.languages.len() == 1 {
180184
let lang = &self.languages[0];
185+
tracing::info!("single_language_specified: {}", lang);
181186
return Ok(Some(lang.to_string()));
182187
}
183188

@@ -198,7 +203,7 @@ impl Whisper {
198203
}
199204
}
200205
}
201-
206+
tracing::info!("predicted: {:#?}, from: {:#?}", best_lang, self.languages);
202207
best_lang
203208
};
204209

@@ -338,7 +343,8 @@ mod tests {
338343
fn test_whisper() {
339344
let mut whisper = Whisper::builder()
340345
.model_path(concat!(env!("CARGO_MANIFEST_DIR"), "/model.bin"))
341-
.build();
346+
.build()
347+
.unwrap();
342348

343349
let audio: Vec<f32> = hypr_data::english_1::AUDIO
344350
.chunks_exact(2)
@@ -360,7 +366,8 @@ mod tests {
360366

361367
let mut whisper = Whisper::builder()
362368
.model_path(concat!(env!("CARGO_MANIFEST_DIR"), "/model.bin"))
363-
.build();
369+
.build()
370+
.unwrap();
364371

365372
let request = hypr_llama::LlamaRequest {
366373
messages: vec![hypr_llama::LlamaChatMessage::new(

crates/ws/src/client.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ impl WebSocketClient {
3737
)
3838
.when(|e| {
3939
tracing::error!("ws_connect_failed: {:?}", e);
40+
41+
if let crate::Error::Connection(tokio_tungstenite::tungstenite::Error::Http(
42+
response,
43+
)) = e
44+
{
45+
if response.status().as_u16() >= 500 && response.status().as_u16() < 600 {
46+
tracing::warn!("not_retrying_status_code: {}", response.status());
47+
return false;
48+
}
49+
}
50+
4051
true
4152
})
4253
.sleep(tokio::time::sleep)

owhisper/owhisper-client/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ hypr-ws = { workspace = true }
1212
owhisper-interface = { workspace = true }
1313

1414
bytes = { workspace = true }
15-
futures-util = { workspace = true }
1615
serde_json = { workspace = true }
1716
url = { workspace = true }
1817

18+
futures-util = { workspace = true }
19+
tracing = { workspace = true }
20+
1921
[dev-dependencies]
2022
deepgram = { workspace = true, features = ["listen"] }
2123
hypr-data = { workspace = true }

0 commit comments

Comments
 (0)