Conversation
🧪 Test Build ReadyBuild artifacts for PR #1041 are available for testing. Download artifacts from workflow run Artifacts expire after 30 days. |
|
It's hard to imagine, but this actually compiles 0.8.0 will have this change. |
|
tested on macos looks good ps: after a brief stint, i am BACK |
🧪 Test Build ReadyBuild artifacts for PR #1041 are available for testing. Download artifacts from workflow run Artifacts expire after 30 days. |
|
pinging nix folks to help me fix the build. this PR will come in soonish. would also love your help testing the pre-release version here. |
|
Thank you @xilec i forgot I made this breaking change. I will make try to make a patch for this case. |
|
Also a special note: really need testers of the 22.04 based .deb, and Intel Mac. If you are a user of either of these, don't just thumbs up but please comment. We need confirmation these builds work before shipping this |
|
|
Beautiful thank you @mawnir i was wondering if this would happen. Let me see if I can resolve. Thank you |
|
pinging some folks who might be running ubuntu 22.04 or generally ubuntu, need confirmation the .deb is working properly. can you try the test build above @kernelwhisperer, @mpgon, @joshribakoff, @camlafit, @nikolayhg, @luleyleo, @pumello, @hanpham32 |
|
I'm on ubuntu. Will give the test build a try and report back. |
|
I tested |
|
Tested on Windows 11 ARM64. Parakeet V3 works flawlessly but Whisper Small crashes Handy when trying to transcribe audio. This appears to be a known issue noted on the README and not a regression. I haven't had much motivation to figure out why Whisper crashes on Windows ARM64, since the Parakeet models work so well. |
|
Tested .deb on Ubuntu 25.04 Wayland. Parakeet works flawlessly with direct paste via ydotool. Whisper Small almost kills my PC while trying to transcribe but does paste successfully after a bit. |
🧪 Test Build ReadyBuild artifacts for PR #1041 are available for testing. Download artifacts from workflow run Artifacts expire after 30 days. |
|
Thanks all for the info so far! We are getting close @mawnir are you able to test the latest build on your x86 Mac and see if it helps? |
Yes, I’m able to use it on an Intel Mac, it works great with Parakeet and Moonshine models. But, with Whisper Small, it’s very slow. When I switched back to Parakeet, it stayed slow, almost as if it didn’t switch. But after switching to Moonshine, it started working normally again. |
|
@mawnir if possible can you share logs, mostly happy its working. Would expect whisper to be slow. Were you using whisper before, is it slower than you had then? |
|
I think it's the same speed. (I didn't use Whisper for long.) |
|
As far as I can tell, I think all of this looks fairly good to me. At least nothing that we should block on. I think maybe the transcription that you had, maybe one of them failed. So far from the feedback on this thread and everything we have now, I think we can say that we can ship this. Likely tomorrow will be the day it gets pushed out. Thank you everyone so much for testing. It was an absolute massive help, and I'm pretty excited for this release, and performance should improve across the board and fix some outstanding issues, which I'm quite excited about, so thank you. |
|
I'm not sure if this is a bug with this version but I am seeing the model unload and the transcript abandoned if "unload immediately" is set. But I haven't checked, it seems it this is the culprit. Logs``` [2026-03-19][01:54:24][handy_app_lib::managers::history][INFO] Initializing database at "/Users/jackson/Library/Application Support/com.pais.handy/history.db" [2026-03-19][01:54:24][handy_app_lib::managers::transcription][INFO] Whisper accelerator set to: auto [2026-03-19][01:54:24][handy_app_lib::managers::transcription][INFO] ORT accelerator set to: auto [2026-03-19][01:54:24][enigo::platform::macos_impl][INFO] The application has the permission to simulate input [2026-03-19][01:54:24][handy_app_lib::commands][INFO] Enigo initialized successfully after permission grant [2026-03-19][01:54:24][handy_app_lib::shortcut::handy_keys][INFO] handy-keys manager thread started [2026-03-19][01:54:24][handy_app_lib::shortcut::handy_keys][INFO] handy-keys shortcuts initialized [2026-03-19][01:54:24][handy_app_lib::commands][INFO] Shortcuts initialized successfully [2026-03-19][01:54:36][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/encoder-model.int8.onnx [2026-03-19][01:54:36][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/decoder_joint-model.int8.onnx [2026-03-19][01:54:36][handy_app_lib::audio_toolkit::audio::recorder][INFO] Using device: Ok("MacBook Pro Microphone") Sample rate: 48000 Channels: 1 Format: F32 [2026-03-19][01:54:36][handy_app_lib::managers::audio][INFO] Microphone stream initialized in 226.746792ms [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=audio_signal, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["audio_signal_dynamic_axes_1", "", "audio_signal_dynamic_axes_2"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=length, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["Transposeoutputs_dim_0", "", "Transposeoutputs_dim_2"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=encoded_lengths, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=encoder_outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["encoder_outputs_dynamic_axes_1", "", "encoder_outputs_dynamic_axes_2"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=targets, type=Tensor { ty: Int32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["targets_dynamic_axes_1", "targets_dynamic_axes_2"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=target_length, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=input_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_1_dynamic_axes_1", ""]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=input_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_2_dynamic_axes_1", ""]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, -1, -1, 1030], dimension_symbols: SymbolicDimensions(["Addoutputs_dim_0", "Addoutputs_dim_1", "Addoutputs_dim_2", ""]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=prednet_lengths, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=output_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_1_dim_1", ""]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=output_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_2_dim_1", ""]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=waveforms, type=Tensor { ty: Float32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["batch_size", "N"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model input: name=waveforms_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=features, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["batch_size", "", "T"]) } [2026-03-19][01:54:37][transcribe_rs::onnx::session][INFO] Model output: name=features_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:37][transcribe_rs::decode::tokens][INFO] Loaded 1025 vocab tokens from "/Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/vocab.txt" [2026-03-19][01:54:37][transcribe_rs::onnx::parakeet][INFO] Loaded vocabulary with 1025 tokens, blank_idx=1024 [2026-03-19][01:54:40][handy_app_lib::managers::transcription][INFO] Transcription completed in 170ms [2026-03-19][01:54:40][handy_app_lib::managers::transcription][INFO] Transcription result: Testing, testing, testing. Hello, hello, hello. [2026-03-19][01:54:40][handy_app_lib::managers::transcription][INFO] Immediately unloading model after transcription [2026-03-19][01:54:40][handy_app_lib::clipboard][INFO] Using paste method: CtrlV, delay: 60ms [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/encoder-model.int8.onnx [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/decoder_joint-model.int8.onnx [2026-03-19][01:54:42][handy_app_lib::audio_toolkit::audio::recorder][INFO] Using device: Ok("MacBook Pro Microphone") Sample rate: 48000 Channels: 1 Format: F32 [2026-03-19][01:54:42][handy_app_lib::managers::audio][INFO] Microphone stream initialized in 133.645709ms [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=audio_signal, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["audio_signal_dynamic_axes_1", "", "audio_signal_dynamic_axes_2"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=length, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["Transposeoutputs_dim_0", "", "Transposeoutputs_dim_2"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=encoded_lengths, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=encoder_outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["encoder_outputs_dynamic_axes_1", "", "encoder_outputs_dynamic_axes_2"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=targets, type=Tensor { ty: Int32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["targets_dynamic_axes_1", "targets_dynamic_axes_2"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=target_length, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=input_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_1_dynamic_axes_1", ""]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=input_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_2_dynamic_axes_1", ""]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, -1, -1, 1030], dimension_symbols: SymbolicDimensions(["Addoutputs_dim_0", "Addoutputs_dim_1", "Addoutputs_dim_2", ""]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=prednet_lengths, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=output_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_1_dim_1", ""]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=output_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_2_dim_1", ""]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=waveforms, type=Tensor { ty: Float32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["batch_size", "N"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model input: name=waveforms_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=features, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["batch_size", "", "T"]) } [2026-03-19][01:54:42][transcribe_rs::onnx::session][INFO] Model output: name=features_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:42][transcribe_rs::decode::tokens][INFO] Loaded 1025 vocab tokens from "/Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/vocab.txt" [2026-03-19][01:54:42][transcribe_rs::onnx::parakeet][INFO] Loaded vocabulary with 1025 tokens, blank_idx=1024 [2026-03-19][01:54:44][handy_app_lib::managers::transcription][INFO] Model idle for 1s (limit: 0s), unloading [2026-03-19][01:54:44][handy_app_lib::managers::transcription][INFO] Model unloaded due to inactivity (took 55ms) [2026-03-19][01:54:46][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/encoder-model.int8.onnx [2026-03-19][01:54:46][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/decoder_joint-model.int8.onnx [2026-03-19][01:54:46][handy_app_lib::audio_toolkit::audio::recorder][INFO] Using device: Ok("MacBook Pro Microphone") Sample rate: 48000 Channels: 1 Format: F32 [2026-03-19][01:54:46][handy_app_lib::managers::audio][INFO] Microphone stream initialized in 127.720709ms [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=audio_signal, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["audio_signal_dynamic_axes_1", "", "audio_signal_dynamic_axes_2"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=length, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["Transposeoutputs_dim_0", "", "Transposeoutputs_dim_2"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=encoded_lengths, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=encoder_outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["encoder_outputs_dynamic_axes_1", "", "encoder_outputs_dynamic_axes_2"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=targets, type=Tensor { ty: Int32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["targets_dynamic_axes_1", "targets_dynamic_axes_2"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=target_length, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=input_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_1_dynamic_axes_1", ""]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=input_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_2_dynamic_axes_1", ""]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, -1, -1, 1030], dimension_symbols: SymbolicDimensions(["Addoutputs_dim_0", "Addoutputs_dim_1", "Addoutputs_dim_2", ""]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=prednet_lengths, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=output_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_1_dim_1", ""]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=output_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_2_dim_1", ""]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=waveforms, type=Tensor { ty: Float32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["batch_size", "N"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model input: name=waveforms_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=features, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["batch_size", "", "T"]) } [2026-03-19][01:54:47][transcribe_rs::onnx::session][INFO] Model output: name=features_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:47][transcribe_rs::decode::tokens][INFO] Loaded 1025 vocab tokens from "/Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/vocab.txt" [2026-03-19][01:54:47][transcribe_rs::onnx::parakeet][INFO] Loaded vocabulary with 1025 tokens, blank_idx=1024 [2026-03-19][01:54:51][handy_app_lib::managers::transcription][INFO] Transcription completed in 218ms [2026-03-19][01:54:51][handy_app_lib::managers::transcription][INFO] Transcription result: Testing, testing, testing, hello, hello, hello, hello, testing, hello. [2026-03-19][01:54:51][handy_app_lib::managers::transcription][INFO] Immediately unloading model after transcription [2026-03-19][01:54:51][handy_app_lib::clipboard][INFO] Using paste method: CtrlV, delay: 60ms [2026-03-19][01:54:52][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/encoder-model.int8.onnx [2026-03-19][01:54:52][transcribe_rs::onnx::session][INFO] Loading int8 model: /Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/decoder_joint-model.int8.onnx [2026-03-19][01:54:52][handy_app_lib::audio_toolkit::audio::recorder][INFO] Using device: Ok("MacBook Pro Microphone") Sample rate: 48000 Channels: 1 Format: F32 [2026-03-19][01:54:52][handy_app_lib::managers::audio][INFO] Microphone stream initialized in 132.621667ms [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=audio_signal, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["audio_signal_dynamic_axes_1", "", "audio_signal_dynamic_axes_2"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=length, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["Transposeoutputs_dim_0", "", "Transposeoutputs_dim_2"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=encoded_lengths, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["length_dynamic_axes_1"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=encoder_outputs, type=Tensor { ty: Float32, shape: [-1, 1024, -1], dimension_symbols: SymbolicDimensions(["encoder_outputs_dynamic_axes_1", "", "encoder_outputs_dynamic_axes_2"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=targets, type=Tensor { ty: Int32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["targets_dynamic_axes_1", "targets_dynamic_axes_2"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=target_length, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=input_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_1_dynamic_axes_1", ""]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=input_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "input_states_2_dynamic_axes_1", ""]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=outputs, type=Tensor { ty: Float32, shape: [-1, -1, -1, 1030], dimension_symbols: SymbolicDimensions(["Addoutputs_dim_0", "Addoutputs_dim_1", "Addoutputs_dim_2", ""]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=prednet_lengths, type=Tensor { ty: Int32, shape: [-1], dimension_symbols: SymbolicDimensions(["target_length_dynamic_axes_1"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=output_states_1, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_1_dim_1", ""]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=output_states_2, type=Tensor { ty: Float32, shape: [2, -1, 640], dimension_symbols: SymbolicDimensions(["", "Concatoutput_states_2_dim_1", ""]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=waveforms, type=Tensor { ty: Float32, shape: [-1, -1], dimension_symbols: SymbolicDimensions(["batch_size", "N"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model input: name=waveforms_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=features, type=Tensor { ty: Float32, shape: [-1, 128, -1], dimension_symbols: SymbolicDimensions(["batch_size", "", "T"]) } [2026-03-19][01:54:53][transcribe_rs::onnx::session][INFO] Model output: name=features_lens, type=Tensor { ty: Int64, shape: [-1], dimension_symbols: SymbolicDimensions(["batch_size"]) } [2026-03-19][01:54:53][transcribe_rs::decode::tokens][INFO] Loaded 1025 vocab tokens from "/Users/jackson/Library/Application Support/com.pais.handy/models/parakeet-tdt-0.6b-v2-int8/vocab.txt" [2026-03-19][01:54:53][transcribe_rs::onnx::parakeet][INFO] Loaded vocabulary with 1025 tokens, blank_idx=1024 [2026-03-19][01:54:54][handy_app_lib::managers::transcription][INFO] Model idle for 1s (limit: 0s), unloading [2026-03-19][01:54:54][handy_app_lib::managers::transcription][INFO] Model unloaded due to inactivity (took 66ms) ``` |
|
There's another PR which should fix this #1085, would love review/testing there @jacksongoode |
|
I think we can say this is good to go! Merging, thanks all for testing |
|
@mawnir can you test this build as well and let me know if it works |
|
I will in 2 days, currently I'm traveling (it's Eid here)
…On Fri, Mar 20, 2026, 2:58 AM CJ Pais ***@***.***> wrote:
*cjpais* left a comment (cjpais/Handy#1041)
<#1041 (comment)>
@mawnir <https://github.com/mawnir> can you test this build as well and
let me know if it works
https://github.com/cjpais/Handy/actions/runs/23295798534
—
Reply to this email directly, view it on GitHub
<#1041?email_source=notifications&email_token=AOZDQJQHLQEJ5L5DODCEPBT4RSXWBA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTIMBZGUYTAMJXGI22M4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4095101725>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOZDQJQ3HSSAZ452C3QQFUT4RSXWBAVCNFSM6AAAAACWRYW5ECVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DAOJVGEYDCNZSGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
no worries, happy Eid! |
|
Hello, I’m on Debian Trixie with Wayland and GNOME. I tried the .deb from the releases page and the latest build from this PR, but without success. With the CLI command laptop ~/ handy
[2026-03-20][10:36:02][arboard::platform::linux][WARN] Tried to initialize the wayland data control protocol clipboard, but failed. Falling back to the X11 clipboard protocol. The error was: Unknown error while interacting
with the clipboard: A required Wayland protocol (ext-data-control, or wlr-data-control version 1) is not supported by the compositor
[2026-03-20][10:36:02][handy_app_lib::managers::history][INFO] Initializing database at "~/.local/share/com.pais.handy/history.db"
[2026-03-20][10:36:02][handy_app_lib::managers::transcription][INFO] Whisper accelerator set to: auto
[2026-03-20][10:36:02][handy_app_lib::managers::transcription][INFO] ORT accelerator set to: auto
(handy:2095059): libayatana-appindicator-WARNING **: 11:36:02.440: libayatana-appindicator is deprecated. Please use libayatana-appindicator-glib in newly written code.
** (handy:2095059): WARNING **: 11:36:02.448: It appears your Wayland compositor does not support the Layer Shell protocol
[2026-03-20][10:36:02][handy_app_lib::commands][INFO] Enigo initialized successfully after permission grant
[2026-03-20][10:36:02][handy_app_lib::commands][INFO] Shortcuts initialized successfully
ALSA lib pcm_oss.c:404:(_snd_pcm_oss_open) Cannot open device /dev/dsp
[...] Alsa error in loop
[2026-03-20][10:36:22][handy_app_lib::tray][WARN] No transcription history entries available for tray copy.With during --toggle-transcription [...]
** (handy:2095582): CRITICAL **: 11:47:33.659: GtkWindow is not a layer surface. Make sure you called gtk_layer_init_for_window ()
** (handy:2095582): CRITICAL **: 11:47:33.659: GtkWindow is not a layer surface. Make sure you called gtk_layer_init_for_window ()
[2026-03-20][10:47:33][handy_app_lib::audio_toolkit::audio::recorder][INFO] Using device: Ok("default")
Sample rate: 44100
Channels: 1
Format: F32
[2026-03-20][10:47:33][handy_app_lib::managers::audio][INFO] Microphone stream initialized in 20.166933ms
[2026-03-20][10:47:50][handy_app_lib::tray][INFO] Copied last transcript to clipboard via tray.
** (handy:2095582): CRITICAL **: 11:47:58.491: GtkWindow is not a layer surface. Make sure you called gtk_layer_init_for_window ()
** (handy:2095582): CRITICAL **: 11:47:58.491: GtkWindow is not a layer surface. Make sure you called gtk_layer_init_for_window ()
[2026-03-20][10:47:59][handy_app_lib::managers::transcription][INFO] Transcription completed in 814ms
[2026-03-20][10:47:59][handy_app_lib::managers::transcription][INFO] Transcription result: Je parle et je continue à parler pour voir si cela fonctionne. Et forcer in Italiano, permet de dire, c'est capiché tout au Babenego.
[2026-03-20][10:47:59][handy_app_lib::clipboard][INFO] Using paste method: Direct, delay: 60ms
[2026-03-20][10:47:59][handy_app_lib::clipboard][INFO] Falling back to enigo for direct text input
[2026-03-20][10:47:59][enigo::platform::x11][WARN] fast text entry is not possible on X11
[2026-03-20][10:48:06][handy_app_lib::tray][INFO] Copied last transcript to clipboard via tray. |
|
Hi @camlafit Is this happening only with the new version or also in the older versions? Can you also let me know the model being used? Does it happen with whisper and parakeet? |
Yes it works well on Intel Mac |

No description provided.