NathanRoll commited on
Commit
74673cf
路
verified 路
1 Parent(s): df78b75

Add validated Parakeet TDT v3 ONNX INT8 deployment format

Browse files
onnx/README.md ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Orukeet for sherpa-onnx
2
+
3
+ The released Orukeet r3 checkpoint in the standard **Parakeet TDT v3 ONNX layout**.
4
+ Use it with sherpa-onnx's existing offline-transducer loader. The fitted Gabor
5
+ filters are ordinary convolution weights; this export requires no
6
+ Orukeet-specific operator or frontend.
7
+
8
+ [Download the INT8 package](https://huggingface.co/oruk/orukeet/resolve/main/onnx/sherpa-onnx-orukeet-v0.1.0-int8.tar.bz2)
9
+ 路 [Model card](https://huggingface.co/oruk/orukeet)
10
+ 路 [Export code](https://github.com/Oruk-AI/orukeet/tree/main/export/onnx)
11
+ 路 [Validation receipts](https://github.com/Oruk-AI/orukeet/tree/main/evidence/onnx-r3-20260910)
12
+
13
+ The download is **486,664,389 bytes** and extracts to **670,718,459 bytes**.
14
+ Archive SHA-256:
15
+
16
+ ```text
17
+ c4ad85bbfb0835167c097dedcec0bb3f50cc468edfe7e690442e2221427b95bf
18
+ ```
19
+
20
+ ```text
21
+ sherpa-onnx-orukeet-v0.1.0-int8/
22
+ encoder.int8.onnx
23
+ decoder.int8.onnx
24
+ joiner.int8.onnx
25
+ tokens.txt
26
+ bpe.vocab
27
+ LICENSE-WEIGHTS
28
+ NOTICE.md
29
+ ```
30
+
31
+ ## Transcribe
32
+
33
+ Extract the archive, then install the runtime:
34
+
35
+ ```sh
36
+ tar -xjf sherpa-onnx-orukeet-v0.1.0-int8.tar.bz2
37
+ python -m pip install sherpa-onnx==1.13.4 soundfile numpy
38
+ ```
39
+
40
+ ```python
41
+ from pathlib import Path
42
+
43
+ import sherpa_onnx
44
+ import soundfile as sf
45
+
46
+ model = Path("sherpa-onnx-orukeet-v0.1.0-int8")
47
+ recognizer = sherpa_onnx.OfflineRecognizer.from_transducer(
48
+ encoder=str(model / "encoder.int8.onnx"),
49
+ decoder=str(model / "decoder.int8.onnx"),
50
+ joiner=str(model / "joiner.int8.onnx"),
51
+ tokens=str(model / "tokens.txt"),
52
+ model_type="nemo_transducer",
53
+ sample_rate=16000,
54
+ feature_dim=128,
55
+ decoding_method="greedy_search",
56
+ provider="cpu",
57
+ num_threads=4,
58
+ )
59
+
60
+ samples, sample_rate = sf.read("audio.wav", dtype="float32", always_2d=True)
61
+ stream = recognizer.create_stream()
62
+ stream.accept_waveform(sample_rate, samples.mean(axis=1))
63
+ recognizer.decode_stream(stream)
64
+ print(stream.result.text)
65
+ ```
66
+
67
+ Applications can retain their existing VAD and chunking. For long recordings,
68
+ use bounded speech segments. The model retains full-context Parakeet attention.
69
+
70
+ ## Export details
71
+
72
+ The graphs use opset 17, unsigned INT8 encoder quantization, and signed INT8
73
+ decoder/joiner quantization. The decoder uses ONNX Runtime's
74
+ `DynamicQuantizeLSTM`, as the stock Parakeet export does. The original
75
+ 128-bin features, 8脳 subsampling, 8,192-token vocabulary plus blank, and TDT
76
+ durations `[0, 1, 2, 3, 4]` are retained.
77
+
78
+ sherpa-onnx 1.13.4 identifies TDT through `tdt` in the encoder's `url` metadata.
79
+ This export sets that field to
80
+ `https://huggingface.co/oruk/orukeet#parakeet-tdt-v3`; keep it when repackaging.
81
+
82
+ Source checkpoint SHA-256:
83
+
84
+ ```text
85
+ 031c8ddab4845aeced904a7cde8e8aa57993b2e344716cf83a545b079c473b56
86
+ ```
87
+
88
+ [Reproduce the export](https://github.com/Oruk-AI/orukeet/blob/main/export/onnx/README.md)
89
+ 路 [Per-file hashes](https://github.com/Oruk-AI/orukeet/blob/main/evidence/onnx-r3-20260910/package-manifest.json)
90
+
91
+ The ONNX weights inherit **CC BY-SA 4.0** from the released Orukeet checkpoint,
92
+ including attribution to NVIDIA Parakeet TDT 0.6B v3. The complete license and
93
+ attribution are included in the archive.
onnx/manifest.json ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "source_sha256": "031c8ddab4845aeced904a7cde8e8aa57993b2e344716cf83a545b079c473b56",
3
+ "archive": "sherpa-onnx-orukeet-v0.1.0-int8.tar.bz2",
4
+ "archive_bytes": 486664389,
5
+ "archive_sha256": "c4ad85bbfb0835167c097dedcec0bb3f50cc468edfe7e690442e2221427b95bf",
6
+ "extract_dir": "sherpa-onnx-orukeet-v0.1.0-int8",
7
+ "files": [
8
+ {
9
+ "path": "encoder.int8.onnx",
10
+ "bytes": 652282402,
11
+ "sha256": "d10711f1b8f3a516e2d7a93adb219caf8aba2b55295305db92f3e80e78c1499a"
12
+ },
13
+ {
14
+ "path": "decoder.int8.onnx",
15
+ "bytes": 11845332,
16
+ "sha256": "c185c2afb4c77c94bb1314807ecb3dc1623057a3dc540b83e10301af9bf4cfca"
17
+ },
18
+ {
19
+ "path": "joiner.int8.onnx",
20
+ "bytes": 6355335,
21
+ "sha256": "1a7e90abf7172d926dd7e2edac2a5d5035c24dfb641a15e131d57b6a5f63cdd3"
22
+ },
23
+ {
24
+ "path": "tokens.txt",
25
+ "bytes": 93939,
26
+ "sha256": "d58544679ea4bc6ac563d1f545eb7d474bd6cfa467f0a6e2c1dc1c7d37e3c35d"
27
+ },
28
+ {
29
+ "path": "bpe.vocab",
30
+ "bytes": 117408,
31
+ "sha256": "41d5e71b3591642eff088151efd7acd4e750124cc0054c8ba9fa3245187a4804"
32
+ },
33
+ {
34
+ "path": "LICENSE-WEIGHTS",
35
+ "bytes": 20137,
36
+ "sha256": "23ee78c8bae49cf08ea2f0c84945c66b987ebe4520881fb51b3dad4fb43d07c2"
37
+ },
38
+ {
39
+ "path": "NOTICE.md",
40
+ "bytes": 3906,
41
+ "sha256": "c1c90ecec7c9ff8056aada8979bf4f3f4dba901c54297c14a328815160e20c6e"
42
+ }
43
+ ],
44
+ "export_receipt_sha256": "9fc487cdfa076b4d210a526c68ff24ea9ff7ff9da78e058b21f7d610f95ccc6e",
45
+ "packager_sha256": "8acbfe6475a5ea3144311127a04b1cc319cac6a875835bce7ac6d50c19de9f9d"
46
+ }
onnx/sherpa-onnx-orukeet-v0.1.0-int8.tar.bz2 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4ad85bbfb0835167c097dedcec0bb3f50cc468edfe7e690442e2221427b95bf
3
+ size 486664389