Skip to content

Migrate to transcribe-rs-0.3.1 and add Canary support#1023

Merged
cjpais merged 4 commits intocjpais:mainfrom
intech:feat/transcribe-rs-v0.3.0
Mar 16, 2026
Merged

Migrate to transcribe-rs-0.3.1 and add Canary support#1023
cjpais merged 4 commits intocjpais:mainfrom
intech:feat/transcribe-rs-v0.3.0

Conversation

@intech
Copy link
Copy Markdown
Contributor

@intech intech commented Mar 12, 2026

Summary

Closed #1022

Migrates Handy from transcribe-rs v0.2.8 to v0.3.0 API. Canary 1B v2 is now part of transcribe-rs with full SpeechModel trait support.

Requires: cjpais/transcribe-rs#55

Canary 1B v2 model

Model files can be downloaded from https://huggingface.co/istupakov/canary-1b-v2-onnx

Note: This repository does not include nemo128.onnx (mel spectrogram preprocessor). Copy it from parakeet-tdt-0.6b-v3-onnx — it is the same NeMo 128-bin mel frontend.

Changes

src-tauri/src/managers/transcription.rs (-96/+111 lines)

Imports: transcribe_rs::engines::* to transcribe_rs::onnx::* / whisper_cpp::*, TranscriptionEngine to SpeechModel

Model loading (all 7 engines): Engine::new() + load_model() to Model::load(path, &Quantization)

Transcription: transcribe_samples(audio, params) to transcribe(&audio, &options) / transcribe_with(&audio, &params)

Unloading: explicit unload_model() to RAII drop

Test plan

  • cargo check compiles
  • Tested with real models in local build (daily use)

@intech intech force-pushed the feat/transcribe-rs-v0.3.0 branch 2 times, most recently from f81bdcf to 41ccb7b Compare March 12, 2026 22:05
@cjpais
Copy link
Copy Markdown
Owner

cjpais commented Mar 14, 2026

@intech if you don't mind 0.3.1 is out, you can use that version here. I think we can also add Canary support directly. We need to make sure to get the languages correct as per each model card. Note these are int8

I've uploaded the models:
Canary 180m Flash - https://blob.handy.computer/canary-180m-flash.tar.gz
Canary 1B v2 - https://blob.handy.computer/canary-1b-v2.tar.gz

I will be doing a once over the whole PR as well

@intech
Copy link
Copy Markdown
Contributor Author

intech commented Mar 14, 2026

Updated to transcribe-rs v0.3.1 as requested. Here's what changed:

Dependency: transcribe-rs upgraded from v0.2.8 to v0.3.1 with restructured features (whisper + onnx — the onnx feature covers all ONNX models including Canary).

Canary models added:

Model Size Languages Translation
Canary 180M Flash 146 MB en, de, es, fr ✅ X↔English
Canary 1B v2 692 MB 25 EU languages ✅ X↔English

Language verification — checked against HuggingFace model cards:

  • canary-180m-flash: en, de, es, fr
  • canary-1b-v2: bg, hr, cs, da, nl, en, et, fi, fr, de, el, hu, it, lv, lt, mt, pl, pt, ro, sk, sl, es, sv, ru, uk

Tested locally:

  • Both models download and load correctly
  • Transcription works with and without translation
  • Release binary builds clean

i18n translations added for all 17 locales.

intech and others added 2 commits March 14, 2026 17:03
Breaking API migration:
- engines::* → onnx::* module paths, whisper_cpp::* for Whisper
- TranscriptionEngine trait → SpeechModel trait
- Two-step new()+load_model() → one-step Model::load()
- transcribe_samples(Vec<f32>) → transcribe(&[f32])
- Explicit unload_model() → RAII drop
- Canary engine now from transcribe-rs instead of local crate

Removes canary-engine local crate dependency.
Uses path dependency to local transcribe-rs clone (temporary).

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Update transcribe-rs dependency from v0.2.8 to v0.3.1 with
restructured features (whisper + onnx). Add Canary 180M Flash
(4 languages, 146MB) and Canary 1B v2 (25 EU languages, 692MB)
with translation support. Add i18n translations for all 17 locales.

Languages verified against HuggingFace model cards:
- Canary 180M Flash: en, de, es, fr
- Canary 1B v2: bg, hr, cs, da, nl, en, et, fi, fr, de, el, hu,
  it, lv, lt, mt, pl, pt, ro, sk, sl, es, sv, ru, uk

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@intech intech force-pushed the feat/transcribe-rs-v0.3.0 branch from 8ae7945 to 65b138e Compare March 14, 2026 13:04
@github-actions
Copy link
Copy Markdown

🧪 Test Build Ready

Build artifacts for PR #1023 are available for testing.

Download artifacts from workflow run

Artifacts expire after 30 days.

@cjpais cjpais changed the title refactor: migrate to transcribe-rs v0.3.0 API Migrate to transcribe-rs-0.3.1 and add Canary support Mar 16, 2026
@cjpais cjpais merged commit f8bbcd7 into cjpais:main Mar 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to transcribe-rs v0.3.0 and remove local canary-engine crate

2 participants