TulipAkiki commited on
Commit
d758025
·
verified ·
1 Parent(s): 7f3c946

Add native quantization folders with unchanged FP32 RealFFT

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. README.md +19 -0
  3. SHA256SUMS +51 -3
  4. provenance/quantization-validation.json +124 -0
  5. quantizations/README.md +50 -0
  6. quantizations/bf16/LICENSE +201 -0
  7. quantizations/bf16/README.md +59 -0
  8. quantizations/bf16/SHA256SUMS +8 -0
  9. quantizations/bf16/SILERO-MIT.txt +21 -0
  10. quantizations/bf16/evaluation.json +121 -0
  11. quantizations/bf16/example.py +25 -0
  12. quantizations/bf16/model.akv +3 -0
  13. quantizations/bf16/quantization.json +58 -0
  14. quantizations/bf16/requirements.txt +1 -0
  15. quantizations/fp16/LICENSE +201 -0
  16. quantizations/fp16/README.md +59 -0
  17. quantizations/fp16/SHA256SUMS +8 -0
  18. quantizations/fp16/SILERO-MIT.txt +21 -0
  19. quantizations/fp16/evaluation.json +121 -0
  20. quantizations/fp16/example.py +25 -0
  21. quantizations/fp16/model.akv +3 -0
  22. quantizations/fp16/quantization.json +58 -0
  23. quantizations/fp16/requirements.txt +1 -0
  24. quantizations/int4/LICENSE +201 -0
  25. quantizations/int4/README.md +59 -0
  26. quantizations/int4/SHA256SUMS +8 -0
  27. quantizations/int4/SILERO-MIT.txt +21 -0
  28. quantizations/int4/evaluation.json +121 -0
  29. quantizations/int4/example.py +25 -0
  30. quantizations/int4/model.akv +3 -0
  31. quantizations/int4/quantization.json +58 -0
  32. quantizations/int4/requirements.txt +1 -0
  33. quantizations/int8-fp32-input/LICENSE +201 -0
  34. quantizations/int8-fp32-input/README.md +59 -0
  35. quantizations/int8-fp32-input/SHA256SUMS +8 -0
  36. quantizations/int8-fp32-input/SILERO-MIT.txt +21 -0
  37. quantizations/int8-fp32-input/evaluation.json +121 -0
  38. quantizations/int8-fp32-input/example.py +25 -0
  39. quantizations/int8-fp32-input/model.akv +3 -0
  40. quantizations/int8-fp32-input/quantization.json +58 -0
  41. quantizations/int8-fp32-input/requirements.txt +1 -0
  42. quantizations/int8/LICENSE +201 -0
  43. quantizations/int8/README.md +59 -0
  44. quantizations/int8/SHA256SUMS +8 -0
  45. quantizations/int8/SILERO-MIT.txt +21 -0
  46. quantizations/int8/evaluation.json +121 -0
  47. quantizations/int8/example.py +25 -0
  48. quantizations/int8/model.akv +3 -0
  49. quantizations/int8/quantization.json +58 -0
  50. quantizations/int8/requirements.txt +1 -0
.gitattributes CHANGED
@@ -2,3 +2,4 @@
2
  *.pt filter=lfs diff=lfs merge=lfs -text
3
  *.safetensors filter=lfs diff=lfs merge=lfs -text
4
  *.gz filter=lfs diff=lfs merge=lfs -text
 
 
2
  *.pt filter=lfs diff=lfs merge=lfs -text
3
  *.safetensors filter=lfs diff=lfs merge=lfs -text
4
  *.gz filter=lfs diff=lfs merge=lfs -text
5
+ *.akv filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -44,6 +44,8 @@ Akiki VAD is a compact, causal voice activity detection model for streaming
44
  16 kHz audio. It returns a speech probability every 16 ms and can be used to
45
  identify speech frames before transcription or other audio processing.
46
 
 
 
47
  ## Model details
48
 
49
  | Property | Value |
@@ -112,6 +114,11 @@ python example.py recording.wav
112
 
113
  ## Evaluation
114
 
 
 
 
 
 
115
  | Benchmark | Average precision | F1 at threshold 0.5 | Precision at recall ≥95% |
116
  |---|---:|---:|---:|
117
  | TEN public test set | 98.0187% | 92.6053% | 90.6487% |
@@ -171,6 +178,18 @@ The Python interface returns individual frame scores and decisions. Applications
171
  that need continuous speech segments must define their own rules for joining
172
  frames and handling brief pauses.
173
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  ## Optional exports
175
 
176
  For custom integrations and research, [exports/](exports/) contains the original
 
44
  16 kHz audio. It returns a speech probability every 16 ms and can be used to
45
  identify speech frames before transcription or other audio processing.
46
 
47
+ [Akiki VAD collection](https://huggingface.co/collections/Akiki-AI/akiki-vad-6ade6178d49bbdd8dd83e493)
48
+
49
  ## Model details
50
 
51
  | Property | Value |
 
114
 
115
  ## Evaluation
116
 
117
+ The following table reports the original **FP32** weights. The Python Rust
118
+ runtime uses INT8 by default while keeping RealFFT FP32. Use
119
+ `VAD(engine="rust", model_precision="fp32")` for the original precision;
120
+ [precision-specific results](quantizations/) cover the other variants.
121
+
122
  | Benchmark | Average precision | F1 at threshold 0.5 | Precision at recall ≥95% |
123
  |---|---:|---:|---:|
124
  | TEN public test set | 98.0187% | 92.6053% | 90.6487% |
 
178
  that need continuous speech segments must define their own rules for joining
179
  frames and handling brief pauses.
180
 
181
+ ## Quantizations
182
+
183
+ [quantizations/](quantizations/) contains FP16, BF16, INT8, INT8 with FP32
184
+ first-projection inputs, and packed INT4 variants of this same model. All retain
185
+ the unchanged FP32 RealFFT frontend. Each folder includes a native artifact,
186
+ source hashes, measured TEN/VoxConverse results and an example using `akiki`.
187
+
188
+ Choose a precision through the same Python API, for example
189
+ `VAD(engine="rust", model_precision="int8", fft_precision="fp32")`.
190
+ The package derives and caches the same artifact from its bundled weights, so
191
+ normal Python inference does not require downloading a quantization folder.
192
+
193
  ## Optional exports
194
 
195
  For custom integrations and research, [exports/](exports/) contains the original
SHA256SUMS CHANGED
@@ -1,6 +1,6 @@
1
- 83b6599f6cfb55627f21a072594fde7911f688d223aed8f10d87c88281bcfe18 .gitattributes
2
  c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
3
- 6e0dc3937ce59ea1b48249499282e16ab24f3f5573848e6046a0465aae719ec6 README.md
4
  2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
5
  1ac9370671fac9664c0f9884036f68424b3c6b6412e9e6d2fa5a4d37d355b7cc attribution/LIBRISPEECH.txt
6
  dafaa9e4fdd2a88f111c4a74f843046ba5a3ac7bf9094a1d4c11fc62d4fc60cd attribution/LOQUACIOUS.md
@@ -37,11 +37,59 @@ ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d model.safetens
37
  e16e6c02f496aa8fd00357e14ada30d427aad423df4c4f900bf37fa704eeeda3 provenance/README.md
38
  c72d573dddf6ddf833a17f93498a6cd32f992c5a9eb205906a73d3fa1c898e7d provenance/environment.json
39
  4d4c1891d9cce025a4536fdf55e0a1e6954baef5579f4acc2d4d4653f2134dc5 provenance/export-verification.json
 
40
  f9186bcbc4efe4222cf58f8ea7c1f40b95eeb29938dafe1dee8b6bf3f3d61b2c provenance/safetensors-export.json
41
  b63cb08920e73e7047bb4eb9261f049d9feb14ecaf8a0c844f27fc65b9a5acd5 provenance/seed1730-complete.json
42
  b379a65980cdd7a55e6fbd4b6f4ab86a8e45498dc55ebf6e34890cc3fc835ee8 provenance/seed1730-history.json
43
  9ae23cd2a40de250df7e09a33e9123f60ef3274c0407b8e5a62435a4f23d39ef provenance/seed1730-results.json
44
  3663d8542efdf62b241e500669e72d399199e129a0bc9510c22aabebc8dfc8c9 provenance/training-data.json
45
- c44458b32bc0ff8047e76ae44090789de3d81665c2ec5dc82f2a3f3cc82232e4 release.json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
47
  9f563cfb34405ff3ebf35346d728f9d785b5a4b5b04ec2fc8e07ee50fc14b2f6 training-recipe.json
 
1
+ 55969811a802a3d17d2b120b10a365072e8e331a217dc6b827e0fef37eaec215 .gitattributes
2
  c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
3
+ c5a7d4364fa936c7c20beb2f0733133c8982e3383fd17a9b682b0a1f31d874d2 README.md
4
  2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
5
  1ac9370671fac9664c0f9884036f68424b3c6b6412e9e6d2fa5a4d37d355b7cc attribution/LIBRISPEECH.txt
6
  dafaa9e4fdd2a88f111c4a74f843046ba5a3ac7bf9094a1d4c11fc62d4fc60cd attribution/LOQUACIOUS.md
 
37
  e16e6c02f496aa8fd00357e14ada30d427aad423df4c4f900bf37fa704eeeda3 provenance/README.md
38
  c72d573dddf6ddf833a17f93498a6cd32f992c5a9eb205906a73d3fa1c898e7d provenance/environment.json
39
  4d4c1891d9cce025a4536fdf55e0a1e6954baef5579f4acc2d4d4653f2134dc5 provenance/export-verification.json
40
+ ba8a6e6b1e5891fe1eb3b3bbf05f72e1e1ff258bf47c71c136cb65dcebfbb088 provenance/quantization-validation.json
41
  f9186bcbc4efe4222cf58f8ea7c1f40b95eeb29938dafe1dee8b6bf3f3d61b2c provenance/safetensors-export.json
42
  b63cb08920e73e7047bb4eb9261f049d9feb14ecaf8a0c844f27fc65b9a5acd5 provenance/seed1730-complete.json
43
  b379a65980cdd7a55e6fbd4b6f4ab86a8e45498dc55ebf6e34890cc3fc835ee8 provenance/seed1730-history.json
44
  9ae23cd2a40de250df7e09a33e9123f60ef3274c0407b8e5a62435a4f23d39ef provenance/seed1730-results.json
45
  3663d8542efdf62b241e500669e72d399199e129a0bc9510c22aabebc8dfc8c9 provenance/training-data.json
46
+ 8e1d776023994d1e394382ed8f7593629c15ff9c68c491cba89d3c103d571185 quantizations/README.md
47
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 quantizations/bf16/LICENSE
48
+ 6126cfd557bfffa12ac3655d70cc8bfa57799fd6a3a918f5d3fe5bf92d3dcff7 quantizations/bf16/README.md
49
+ 172d15a56240575d348056c8135aa5c04a165613c1d3c9d4267b00adcf057c83 quantizations/bf16/SHA256SUMS
50
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b quantizations/bf16/SILERO-MIT.txt
51
+ 3a36322763a99a52743ef6223eb5d050dee43fa12581e88ba58907f05a7b4985 quantizations/bf16/evaluation.json
52
+ 96d6a43e14e06d74606b14cba5a18c4f8e949cc4de1fbd2a45af82fb7b934dff quantizations/bf16/example.py
53
+ e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c quantizations/bf16/model.akv
54
+ be691b45359fb6899cfa61a2c90b0adecfd868807f3eeb81a0b00022aee5290c quantizations/bf16/quantization.json
55
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 quantizations/bf16/requirements.txt
56
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 quantizations/fp16/LICENSE
57
+ 417aba57638dc1f84677bf5b3a7df23241752c8852039c0dfbc17ea92a4f9200 quantizations/fp16/README.md
58
+ 202cbb1583bb0fd1d2392190c16543847d7a872b1f8e5837740b9342d25e47b5 quantizations/fp16/SHA256SUMS
59
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b quantizations/fp16/SILERO-MIT.txt
60
+ fc022bbb2043e0d88f564d687893ef859e04cbd9832ae4b9587411a1f2005309 quantizations/fp16/evaluation.json
61
+ 47c3f2022caec00618b685b24f0bcd56980237b88ec6594149541daea8284d68 quantizations/fp16/example.py
62
+ 7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93 quantizations/fp16/model.akv
63
+ a65bce5850475edfb666caa73b92eab5a5ee525f95161b182763ece49e24e1c7 quantizations/fp16/quantization.json
64
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 quantizations/fp16/requirements.txt
65
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 quantizations/int4/LICENSE
66
+ f3103b7f570f92aacbc194ecfc2a8ea4d48c77e69423010b9137ea9352bf8056 quantizations/int4/README.md
67
+ 66adf809f92f3cbf457b2f7b538c2addac5e5daddf01e951958a96ed08dd298b quantizations/int4/SHA256SUMS
68
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b quantizations/int4/SILERO-MIT.txt
69
+ 74ac3f87e52485371b45f58d92a404e04b04cc2c267bba6e39a7ed47210014df quantizations/int4/evaluation.json
70
+ 8609722c236250409a2324ec403ba883296a0340537a6ea68ce8bb674df6c69c quantizations/int4/example.py
71
+ cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428 quantizations/int4/model.akv
72
+ 361d07b25585c0c308dafe2397994263a3c5245071d4b0413e34aa989604894c quantizations/int4/quantization.json
73
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 quantizations/int4/requirements.txt
74
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 quantizations/int8/LICENSE
75
+ d091b33b442cbf818773c42e4b231bb78bcda09563026a897d5f677880c3862b quantizations/int8/README.md
76
+ 6e5475d90095950d5a5fbd74b6c362f843d74b9e240f014241770e374b694a55 quantizations/int8/SHA256SUMS
77
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b quantizations/int8/SILERO-MIT.txt
78
+ 4038ba3b028346b4d2053a3f6dbdbdc3752695521a213f67695d11e6ad451198 quantizations/int8/evaluation.json
79
+ 4626f51f01d3059cfe63ff5f2cd6b69a62ab8bad853cf07f05565e098f68e0ac quantizations/int8/example.py
80
+ 5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b quantizations/int8/model.akv
81
+ 805995faa1785a0424c30b078e98dc36606c2a93308592e872a040be10f746ff quantizations/int8/quantization.json
82
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 quantizations/int8/requirements.txt
83
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 quantizations/int8-fp32-input/LICENSE
84
+ 707913019d9a08edfbb5dd2613e6eb65180e625ff0d3999a5180228b0f0d10c0 quantizations/int8-fp32-input/README.md
85
+ 6f882a285fd9d4e2a12dd1bc89bfd0cdd07597bd6aab2fdc4b4e02700e85da66 quantizations/int8-fp32-input/SHA256SUMS
86
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b quantizations/int8-fp32-input/SILERO-MIT.txt
87
+ 2bf9a71092654f6965e1660485482f4b26edff4f7199d94fb368238e5dc446f9 quantizations/int8-fp32-input/evaluation.json
88
+ bba9ee67426aa1b1dcc73713f5a6f6284711274173ba0756a2ac12f5be6bb677 quantizations/int8-fp32-input/example.py
89
+ d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c quantizations/int8-fp32-input/model.akv
90
+ 35d090268bc55f10d24c62d3731c5b4801eb1b8cc4057356e4113f74058338df quantizations/int8-fp32-input/quantization.json
91
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 quantizations/int8-fp32-input/requirements.txt
92
+ c25f36dfdf001ab544c719ecb842eadbfc9d3014255c09880867e9e3de5bb8a9 quantizations/manifest.json
93
+ bcdef738a77532fa26cf5aff21b3efe952db6752f809fff9c0c852ce7a4bcb1d release.json
94
  fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
95
  9f563cfb34405ff3ebf35346d728f9d785b5a4b5b04ec2fc8e07ee50fc14b2f6 training-recipe.json
provenance/quantization-validation.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
3
+ "fft_precision": "fp32",
4
+ "model_downloads": 0,
5
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
6
+ "python_api_validation": {
7
+ "model_downloads": 0,
8
+ "source_quantizer_sha256": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094",
9
+ "variants": {
10
+ "bf16": {
11
+ "arbitrary_buffering": "passed",
12
+ "artifact_bytes_match_python_cache": true,
13
+ "fft_precision": "fp32",
14
+ "native_probabilities_match_python": true,
15
+ "python_precision_selector": "passed"
16
+ },
17
+ "fp16": {
18
+ "arbitrary_buffering": "passed",
19
+ "artifact_bytes_match_python_cache": true,
20
+ "fft_precision": "fp32",
21
+ "native_probabilities_match_python": true,
22
+ "python_precision_selector": "passed"
23
+ },
24
+ "fp32": {
25
+ "arbitrary_buffering": "passed",
26
+ "artifact_bytes_match_python_cache": null,
27
+ "fft_precision": "fp32",
28
+ "native_probabilities_match_python": true,
29
+ "python_precision_selector": "passed"
30
+ },
31
+ "int4": {
32
+ "arbitrary_buffering": "passed",
33
+ "artifact_bytes_match_python_cache": true,
34
+ "fft_precision": "fp32",
35
+ "native_probabilities_match_python": true,
36
+ "python_precision_selector": "passed"
37
+ },
38
+ "int8": {
39
+ "arbitrary_buffering": "passed",
40
+ "artifact_bytes_match_python_cache": true,
41
+ "fft_precision": "fp32",
42
+ "native_probabilities_match_python": true,
43
+ "python_precision_selector": "passed"
44
+ },
45
+ "int8-fp32-input": {
46
+ "arbitrary_buffering": "passed",
47
+ "artifact_bytes_match_python_cache": true,
48
+ "fft_precision": "fp32",
49
+ "native_probabilities_match_python": true,
50
+ "python_precision_selector": "passed"
51
+ }
52
+ }
53
+ },
54
+ "source_code_sha256": {
55
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
56
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
57
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
58
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
59
+ },
60
+ "suites": {
61
+ "ten": {
62
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
63
+ "common32_frames": 8179,
64
+ "recordings": 30,
65
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
66
+ },
67
+ "voxconverse": {
68
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
69
+ "common32_frames": 999894,
70
+ "recordings": 48,
71
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
72
+ }
73
+ },
74
+ "variants": {
75
+ "bf16": {
76
+ "biases_and_head_identical": true,
77
+ "bytes": 398560,
78
+ "exporters_byte_identical": true,
79
+ "frontend_config_identical": true,
80
+ "native_load_and_state_continuity": "passed",
81
+ "sha256": "e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c"
82
+ },
83
+ "fp16": {
84
+ "biases_and_head_identical": true,
85
+ "bytes": 398560,
86
+ "exporters_byte_identical": true,
87
+ "frontend_config_identical": true,
88
+ "native_load_and_state_continuity": "passed",
89
+ "sha256": "7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93"
90
+ },
91
+ "fp32": {
92
+ "biases_and_head_identical": true,
93
+ "bytes": 791776,
94
+ "exporters_byte_identical": true,
95
+ "frontend_config_identical": true,
96
+ "native_load_and_state_continuity": "passed",
97
+ "sha256": "c7dfb09319b7084478a88586a7abe636a6b295d1f931d7ef7eb4947b129383c8"
98
+ },
99
+ "int4": {
100
+ "biases_and_head_identical": true,
101
+ "bytes": 112864,
102
+ "exporters_byte_identical": true,
103
+ "frontend_config_identical": true,
104
+ "native_load_and_state_continuity": "passed",
105
+ "sha256": "cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428"
106
+ },
107
+ "int8": {
108
+ "biases_and_head_identical": true,
109
+ "bytes": 211168,
110
+ "exporters_byte_identical": true,
111
+ "frontend_config_identical": true,
112
+ "native_load_and_state_continuity": "passed",
113
+ "sha256": "5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b"
114
+ },
115
+ "int8-fp32-input": {
116
+ "biases_and_head_identical": true,
117
+ "bytes": 211168,
118
+ "exporters_byte_identical": true,
119
+ "frontend_config_identical": true,
120
+ "native_load_and_state_continuity": "passed",
121
+ "sha256": "d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c"
122
+ }
123
+ }
124
+ }
quantizations/README.md ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Native quantizations of Akiki VAD 1.0
2
+
3
+ All variants derive from the same original FP32 model. The **RealFFT frontend
4
+ remains FP32 and unchanged** in every variant. Periodic Hann windowing, magnitude,
5
+ biases, output head, nonlinearities and recurrent state are retained at FP32.
6
+ The convolution and GRU projection matrices use the precision below.
7
+
8
+ | Precision | Native file | Reduction vs native FP32 | TEN AP | TEN F1 | VoxConverse AP | VoxConverse F1 |
9
+ |---|---:|---:|---:|---:|---:|---:|
10
+ | Original FP32 reference | 791,776 bytes | 1.00× | 98.0187% | 92.6053% | 99.3045% | 94.9869% |
11
+ | [FP16](fp16/) | 398,560 bytes | 1.99× | 98.0187% | 92.6141% | 99.3045% | 94.9872% |
12
+ | [BF16](bf16/) | 398,560 bytes | 1.99× | 98.0168% | 92.6053% | 99.3044% | 94.9892% |
13
+ | [INT8](int8/) | 211,168 bytes | 3.75× | 98.0423% | 92.5947% | 99.3106% | 95.0557% |
14
+ | [INT8-FP32-INPUT](int8-fp32-input/) | 211,168 bytes | 3.75× | 98.0087% | 92.5750% | 99.3058% | 94.9858% |
15
+ | [INT4](int4/) | 112,864 bytes | 7.02× | 97.8406% | 92.0614% | 99.2874% | 94.9354% |
16
+
17
+ The original FP32 binary is a local validation reference; the repository root
18
+ already contains the original FP32 safetensors, so it is not duplicated here.
19
+ The size reduction compares native AKVAD003 binaries, not safetensors versus AKV.
20
+ No throughput or loaded-memory claim is implied.
21
+
22
+ Use the same installed `akiki` module for every precision:
23
+
24
+ ```python
25
+ from akiki import VAD
26
+
27
+ with VAD(engine="rust", model_precision="int8", fft_precision="fp32") as vad:
28
+ frames = vad.push(audio, sample_rate=16000)
29
+ ```
30
+
31
+ The package locally derives and caches the same native artifact from its bundled
32
+ weights; no model download is needed. `model_precision` accepts `fp32`, `fp16`,
33
+ `bf16`, `int8`, `int8-fp32-input` and `int4`. The Rust default is `int8`.
34
+ The prebuilt `.akv` files are also available for direct native deployment.
35
+
36
+ FP16 is stored-weight compression with FP32 projection arithmetic. BF16 uses
37
+ BF16 projection inputs with FP32 accumulation. Integer variants use per-row
38
+ symmetric weight scales and dynamic INT8 input scaling; the `int8-fp32-input`
39
+ hybrid retains FP32 inputs to the first projection. Packed INT4 trades additional
40
+ accuracy for the smallest file. None quantizes the FFT.
41
+
42
+ The table covers all 30 TEN recordings (8,179 common32 frames) and 48 VoxConverse
43
+ recordings (999,894 frames). These are previously inspected development benchmarks,
44
+ with unchanged labels and default threshold 0.5. No calibration or tuning was
45
+ performed. Inspect each folder's detailed metrics, including high-recall
46
+ precision and probability drift. Small apparent gains are not evidence of better
47
+ independent accuracy. No precision is automatically promoted over the original.
48
+
49
+ `manifest.json` pins the base-model revision and all artifact hashes. Quantizations
50
+ stay in this model repository; they are not separate Hugging Face or GitHub repos.
quantizations/bf16/LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
quantizations/bf16/README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Akiki VAD 1.0 — BF16
2
+
3
+ Native precision variant of the [main Akiki VAD model](../../), generated from
4
+ the same selected seed-1730 checkpoint. BF16 projection weights and projection activations; FP32 accumulation.
5
+ **RealFFT, periodic Hann windowing and magnitude computation remain FP32 and unchanged.**
6
+ Biases, the output head, nonlinearities and recurrent state also remain FP32.
7
+ Only convolution and GRU projections use the selected reduced precision.
8
+
9
+ ## Use the Python package
10
+
11
+ ```bash
12
+ pip install akiki
13
+ akiki recording.wav --engine rust --model-precision bf16 --fft-precision fp32
14
+ ```
15
+
16
+ ```python
17
+ from akiki import VAD
18
+
19
+ with VAD(engine="rust", model_precision="bf16", fft_precision="fp32") as vad:
20
+ frames = vad.push(audio, sample_rate=16000)
21
+ ```
22
+
23
+ The package derives this exact `model.akv` locally from its bundled FP32 weights
24
+ and caches it. No Hugging Face download is needed for the Python example. The
25
+ included `example.py` uses this same public interface; `requirements.txt` contains
26
+ only `akiki`. Audio must be finite mono float32 at 16 kHz.
27
+
28
+ ## Native artifact
29
+
30
+ `model.akv` is a prebuilt AKVAD003 file for direct Rust deployment through
31
+ `Weights::load("/local/path/model.akv")`. Its geometry and precision are embedded
32
+ in the binary; no files from another precision folder are required. The Python
33
+ precision selector and independent native exporter produced identical bytes.
34
+
35
+ File size: **398,560 bytes**, a **1.99×** reduction
36
+ against the equivalent 791,776-byte native FP32 binary. This comparison
37
+ uses the same native layout, excluding the deterministic Fourier basis stored in
38
+ the main safetensors checkpoint. It is a file-size comparison, not a claim about
39
+ latency, loaded memory use or an entirely reduced-precision pipeline.
40
+
41
+ ## Evaluation
42
+
43
+ | Benchmark | Precision | AP | F1 at 0.5 | Precision at recall ≥95% |
44
+ |---|---|---:|---:|---:|
45
+ | TEN | FP32 | 98.0187% | 92.6053% | 90.6487% |
46
+ | TEN | BF16 | 98.0168% | 92.6053% | 90.7680% |
47
+ | VoxConverse | FP32 | 99.3045% | 94.9869% | 96.1582% |
48
+ | VoxConverse | BF16 | 99.3044% | 94.9892% | 96.1580% |
49
+
50
+ All 30 TEN and 48 VoxConverse recordings were evaluated with the unchanged
51
+ 32 ms reference protocol: average consecutive 16 ms predictions in pairs,
52
+ preserve recurrent state throughout each recording, and reset between recordings.
53
+ These repeatedly inspected benchmarks are development comparisons. Small gains
54
+ or losses do not establish improved generalization. No training, calibration,
55
+ threshold adjustment or FFT quantization was performed.
56
+
57
+ `evaluation.json` includes probability drift and precision at high recall.
58
+ `quantization.json` records source revisions, hashes, scope and precision policy.
59
+ Verify the folder with `sha256sum -c SHA256SUMS`.
quantizations/bf16/SHA256SUMS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ 6126cfd557bfffa12ac3655d70cc8bfa57799fd6a3a918f5d3fe5bf92d3dcff7 README.md
3
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
4
+ 3a36322763a99a52743ef6223eb5d050dee43fa12581e88ba58907f05a7b4985 evaluation.json
5
+ 96d6a43e14e06d74606b14cba5a18c4f8e949cc4de1fbd2a45af82fb7b934dff example.py
6
+ e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c model.akv
7
+ be691b45359fb6899cfa61a2c90b0adecfd868807f3eeb81a0b00022aee5290c quantization.json
8
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
quantizations/bf16/SILERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020-present Silero Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
quantizations/bf16/evaluation.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fft_precision": "fp32",
3
+ "interpretation": "Previously inspected development benchmarks; no calibration or tuning",
4
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
5
+ "precision": "bf16",
6
+ "protocol": "Consecutive 16 ms scores averaged in pairs; exact pooled AP; F1 at 0.5; P90/P95 on 0.01 threshold grid",
7
+ "suites": {
8
+ "ten": {
9
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
10
+ "common32_frames": 8179,
11
+ "metrics": {
12
+ "at_0_5": {
13
+ "f1": 0.9260534513854731,
14
+ "false_negative_rate": 0.08267013155757674,
15
+ "false_positive_rate": 0.1943620178041543,
16
+ "fn": 509,
17
+ "fp": 393,
18
+ "precision": 0.9349445456050323,
19
+ "recall": 0.9173298684424233,
20
+ "threshold": 0.5,
21
+ "tn": 1629,
22
+ "tp": 5648
23
+ },
24
+ "average_precision": 0.9801681269546808,
25
+ "drift_vs_native_fp32": {
26
+ "decision_changes_at_0_5": 2,
27
+ "max_absolute_error": 0.007322728633880615,
28
+ "mean_absolute_error": 0.00025021095643751323
29
+ },
30
+ "precision_at_recall": {
31
+ "0.9": 0.9450306330837305,
32
+ "0.95": 0.9076803723816912
33
+ }
34
+ },
35
+ "native16_frames": 16382,
36
+ "native_fp32_reference": {
37
+ "at_0_5": {
38
+ "f1": 0.9260534513854731,
39
+ "false_negative_rate": 0.08267013155757674,
40
+ "false_positive_rate": 0.1943620178041543,
41
+ "fn": 509,
42
+ "fp": 393,
43
+ "precision": 0.9349445456050323,
44
+ "recall": 0.9173298684424233,
45
+ "threshold": 0.5,
46
+ "tn": 1629,
47
+ "tp": 5648
48
+ },
49
+ "average_precision": 0.980186578540877,
50
+ "drift_vs_native_fp32": {
51
+ "decision_changes_at_0_5": 0,
52
+ "max_absolute_error": 0.0,
53
+ "mean_absolute_error": 0.0
54
+ },
55
+ "precision_at_recall": {
56
+ "0.9": 0.9450025540609569,
57
+ "0.95": 0.9064870723022139
58
+ }
59
+ },
60
+ "native_reference_sha256": "faf799e132e387079b6353d8ab88bc7b47df608af86a4ed93f4f2fe1cb17041e",
61
+ "recordings": 30,
62
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
63
+ },
64
+ "voxconverse": {
65
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
66
+ "common32_frames": 999894,
67
+ "metrics": {
68
+ "at_0_5": {
69
+ "f1": 0.949892019789202,
70
+ "false_negative_rate": 0.07329714605484051,
71
+ "false_positive_rate": 0.20551910822038838,
72
+ "fn": 65491,
73
+ "fp": 21866,
74
+ "precision": 0.9742715105162524,
75
+ "recall": 0.9267028539451595,
76
+ "threshold": 0.5,
77
+ "tn": 84528,
78
+ "tp": 828009
79
+ },
80
+ "average_precision": 0.9930444516359963,
81
+ "drift_vs_native_fp32": {
82
+ "decision_changes_at_0_5": 134,
83
+ "max_absolute_error": 0.015484869480133057,
84
+ "mean_absolute_error": 0.00011748395627364516
85
+ },
86
+ "precision_at_recall": {
87
+ "0.9": 0.9820915769415633,
88
+ "0.95": 0.9615803922678516
89
+ }
90
+ },
91
+ "native16_frames": 1999788,
92
+ "native_fp32_reference": {
93
+ "at_0_5": {
94
+ "f1": 0.9498693603388887,
95
+ "false_negative_rate": 0.07333519865696699,
96
+ "false_positive_rate": 0.20555670432543188,
97
+ "fn": 65525,
98
+ "fp": 21870,
99
+ "precision": 0.9742658955456583,
100
+ "recall": 0.926664801343033,
101
+ "threshold": 0.5,
102
+ "tn": 84524,
103
+ "tp": 827975
104
+ },
105
+ "average_precision": 0.993044994914989,
106
+ "drift_vs_native_fp32": {
107
+ "decision_changes_at_0_5": 0,
108
+ "max_absolute_error": 0.0,
109
+ "mean_absolute_error": 0.0
110
+ },
111
+ "precision_at_recall": {
112
+ "0.9": 0.9820955829427366,
113
+ "0.95": 0.9615820040529373
114
+ }
115
+ },
116
+ "native_reference_sha256": "ca15ea86a882b0fe822736361aa9cf7a644737f09511ff9e391cb34a077caf3e",
117
+ "recordings": 48,
118
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
119
+ }
120
+ }
121
+ }
quantizations/bf16/example.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Run Akiki VAD using the engine and weights bundled with the akiki package."""
2
+ import argparse
3
+ from dataclasses import asdict
4
+ import json
5
+
6
+ import soundfile as sf
7
+ from akiki import VAD
8
+
9
+
10
+ def main():
11
+ parser = argparse.ArgumentParser(description=__doc__)
12
+ parser.add_argument('audio', help='Local mono 16 kHz recording')
13
+ parser.add_argument('--threshold', type=float, default=None)
14
+ args = parser.parse_args()
15
+ with sf.SoundFile(args.audio) as source:
16
+ if source.channels != 1 or source.samplerate != 16000:
17
+ raise ValueError('Expected mono 16 kHz audio')
18
+ with VAD(threshold=args.threshold, engine="rust", model_precision="bf16", fft_precision="fp32") as detector:
19
+ for block in source.blocks(blocksize=16000, dtype='float32'):
20
+ for frame in detector.push(block, sample_rate=source.samplerate):
21
+ print(json.dumps(asdict(frame)))
22
+
23
+
24
+ if __name__ == '__main__':
25
+ main()
quantizations/bf16/model.akv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c
3
+ size 398560
quantizations/bf16/quantization.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact_id": "akiki-vad-1.0-bf16",
3
+ "base_model": "Akiki-AI/akiki-vad-1.0",
4
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
5
+ "biases_precision": "fp32",
6
+ "bytes": 398560,
7
+ "calibration": false,
8
+ "context_samples": 320,
9
+ "description": "BF16 projection weights and projection activations; FP32 accumulation",
10
+ "fft_precision": "fp32",
11
+ "frontend_config": {
12
+ "fft_size": 256,
13
+ "padding_mode": "reflect",
14
+ "right_padding": 64,
15
+ "stft_hop": 128,
16
+ "window_size": 256
17
+ },
18
+ "frontend_implementation": "Unchanged Akiki DSP RealFFT",
19
+ "frontend_unchanged": true,
20
+ "hop_samples": 256,
21
+ "integer_method": null,
22
+ "model_file": "model.akv",
23
+ "model_format": "AKVAD003",
24
+ "model_precision": "bf16",
25
+ "native_fp32_reference_bytes": 791776,
26
+ "python_precision_selector": {
27
+ "arbitrary_buffering": "passed",
28
+ "artifact_bytes_match_python_cache": true,
29
+ "fft_precision": "fp32",
30
+ "native_probabilities_match_python": true,
31
+ "python_precision_selector": "passed"
32
+ },
33
+ "quantized_scope": "Convolution weights and both GRU projection matrices only",
34
+ "readout_precision": "fp32",
35
+ "recurrent_state_precision": "fp32",
36
+ "reduction_vs_native_fp32": 1.9865917302288238,
37
+ "relation": "quantized",
38
+ "sample_rate": 16000,
39
+ "sha256": "e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c",
40
+ "source_checkpoint_sha256": "101466d71a492fd33e699271f4cf7340c7cb26ebe2c83baaaa5b096a1c0bd34f",
41
+ "source_code_sha256": {
42
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
43
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
44
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
45
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
46
+ },
47
+ "source_safetensors_sha256": "ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d",
48
+ "threshold": 0.5,
49
+ "training_updates": 0,
50
+ "validation": {
51
+ "biases_and_head_identical": true,
52
+ "bytes": 398560,
53
+ "exporters_byte_identical": true,
54
+ "frontend_config_identical": true,
55
+ "native_load_and_state_continuity": "passed",
56
+ "sha256": "e7ea3a50df1f3ae419e02562d833d262bd5b8319435ca6a8af794f95c05a768c"
57
+ }
58
+ }
quantizations/bf16/requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ akiki
quantizations/fp16/LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
quantizations/fp16/README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Akiki VAD 1.0 — FP16
2
+
3
+ Native precision variant of the [main Akiki VAD model](../../), generated from
4
+ the same selected seed-1730 checkpoint. FP16 stored projection weights; FP32 activations and accumulation.
5
+ **RealFFT, periodic Hann windowing and magnitude computation remain FP32 and unchanged.**
6
+ Biases, the output head, nonlinearities and recurrent state also remain FP32.
7
+ Only convolution and GRU projections use the selected reduced precision.
8
+
9
+ ## Use the Python package
10
+
11
+ ```bash
12
+ pip install akiki
13
+ akiki recording.wav --engine rust --model-precision fp16 --fft-precision fp32
14
+ ```
15
+
16
+ ```python
17
+ from akiki import VAD
18
+
19
+ with VAD(engine="rust", model_precision="fp16", fft_precision="fp32") as vad:
20
+ frames = vad.push(audio, sample_rate=16000)
21
+ ```
22
+
23
+ The package derives this exact `model.akv` locally from its bundled FP32 weights
24
+ and caches it. No Hugging Face download is needed for the Python example. The
25
+ included `example.py` uses this same public interface; `requirements.txt` contains
26
+ only `akiki`. Audio must be finite mono float32 at 16 kHz.
27
+
28
+ ## Native artifact
29
+
30
+ `model.akv` is a prebuilt AKVAD003 file for direct Rust deployment through
31
+ `Weights::load("/local/path/model.akv")`. Its geometry and precision are embedded
32
+ in the binary; no files from another precision folder are required. The Python
33
+ precision selector and independent native exporter produced identical bytes.
34
+
35
+ File size: **398,560 bytes**, a **1.99×** reduction
36
+ against the equivalent 791,776-byte native FP32 binary. This comparison
37
+ uses the same native layout, excluding the deterministic Fourier basis stored in
38
+ the main safetensors checkpoint. It is a file-size comparison, not a claim about
39
+ latency, loaded memory use or an entirely reduced-precision pipeline.
40
+
41
+ ## Evaluation
42
+
43
+ | Benchmark | Precision | AP | F1 at 0.5 | Precision at recall ≥95% |
44
+ |---|---|---:|---:|---:|
45
+ | TEN | FP32 | 98.0187% | 92.6053% | 90.6487% |
46
+ | TEN | FP16 | 98.0187% | 92.6141% | 90.6487% |
47
+ | VoxConverse | FP32 | 99.3045% | 94.9869% | 96.1582% |
48
+ | VoxConverse | FP16 | 99.3045% | 94.9872% | 96.1582% |
49
+
50
+ All 30 TEN and 48 VoxConverse recordings were evaluated with the unchanged
51
+ 32 ms reference protocol: average consecutive 16 ms predictions in pairs,
52
+ preserve recurrent state throughout each recording, and reset between recordings.
53
+ These repeatedly inspected benchmarks are development comparisons. Small gains
54
+ or losses do not establish improved generalization. No training, calibration,
55
+ threshold adjustment or FFT quantization was performed.
56
+
57
+ `evaluation.json` includes probability drift and precision at high recall.
58
+ `quantization.json` records source revisions, hashes, scope and precision policy.
59
+ Verify the folder with `sha256sum -c SHA256SUMS`.
quantizations/fp16/SHA256SUMS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ 417aba57638dc1f84677bf5b3a7df23241752c8852039c0dfbc17ea92a4f9200 README.md
3
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
4
+ fc022bbb2043e0d88f564d687893ef859e04cbd9832ae4b9587411a1f2005309 evaluation.json
5
+ 47c3f2022caec00618b685b24f0bcd56980237b88ec6594149541daea8284d68 example.py
6
+ 7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93 model.akv
7
+ a65bce5850475edfb666caa73b92eab5a5ee525f95161b182763ece49e24e1c7 quantization.json
8
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
quantizations/fp16/SILERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020-present Silero Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
quantizations/fp16/evaluation.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fft_precision": "fp32",
3
+ "interpretation": "Previously inspected development benchmarks; no calibration or tuning",
4
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
5
+ "precision": "fp16",
6
+ "protocol": "Consecutive 16 ms scores averaged in pairs; exact pooled AP; F1 at 0.5; P90/P95 on 0.01 threshold grid",
7
+ "suites": {
8
+ "ten": {
9
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
10
+ "common32_frames": 8179,
11
+ "metrics": {
12
+ "at_0_5": {
13
+ "f1": 0.9261414870071318,
14
+ "false_negative_rate": 0.08250771479616696,
15
+ "false_positive_rate": 0.1943620178041543,
16
+ "fn": 508,
17
+ "fp": 393,
18
+ "precision": 0.9349553128103277,
19
+ "recall": 0.9174922852038331,
20
+ "threshold": 0.5,
21
+ "tn": 1629,
22
+ "tp": 5649
23
+ },
24
+ "average_precision": 0.9801869850357008,
25
+ "drift_vs_native_fp32": {
26
+ "decision_changes_at_0_5": 1,
27
+ "max_absolute_error": 0.0009500980377197266,
28
+ "mean_absolute_error": 3.360414848430082e-05
29
+ },
30
+ "precision_at_recall": {
31
+ "0.9": 0.9450025540609569,
32
+ "0.95": 0.9064870723022139
33
+ }
34
+ },
35
+ "native16_frames": 16382,
36
+ "native_fp32_reference": {
37
+ "at_0_5": {
38
+ "f1": 0.9260534513854731,
39
+ "false_negative_rate": 0.08267013155757674,
40
+ "false_positive_rate": 0.1943620178041543,
41
+ "fn": 509,
42
+ "fp": 393,
43
+ "precision": 0.9349445456050323,
44
+ "recall": 0.9173298684424233,
45
+ "threshold": 0.5,
46
+ "tn": 1629,
47
+ "tp": 5648
48
+ },
49
+ "average_precision": 0.980186578540877,
50
+ "drift_vs_native_fp32": {
51
+ "decision_changes_at_0_5": 0,
52
+ "max_absolute_error": 0.0,
53
+ "mean_absolute_error": 0.0
54
+ },
55
+ "precision_at_recall": {
56
+ "0.9": 0.9450025540609569,
57
+ "0.95": 0.9064870723022139
58
+ }
59
+ },
60
+ "native_reference_sha256": "faf799e132e387079b6353d8ab88bc7b47df608af86a4ed93f4f2fe1cb17041e",
61
+ "recordings": 30,
62
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
63
+ },
64
+ "voxconverse": {
65
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
66
+ "common32_frames": 999894,
67
+ "metrics": {
68
+ "at_0_5": {
69
+ "f1": 0.9498724871712801,
70
+ "false_negative_rate": 0.07332736429770566,
71
+ "false_positive_rate": 0.20557550237795363,
72
+ "fn": 65518,
73
+ "fp": 21872,
74
+ "precision": 0.9742638147258235,
75
+ "recall": 0.9266726357022943,
76
+ "threshold": 0.5,
77
+ "tn": 84522,
78
+ "tp": 827982
79
+ },
80
+ "average_precision": 0.9930448289980338,
81
+ "drift_vs_native_fp32": {
82
+ "decision_changes_at_0_5": 11,
83
+ "max_absolute_error": 0.002707839012145996,
84
+ "mean_absolute_error": 1.3023872270423453e-05
85
+ },
86
+ "precision_at_recall": {
87
+ "0.9": 0.9820956047857292,
88
+ "0.95": 0.9615822650104833
89
+ }
90
+ },
91
+ "native16_frames": 1999788,
92
+ "native_fp32_reference": {
93
+ "at_0_5": {
94
+ "f1": 0.9498693603388887,
95
+ "false_negative_rate": 0.07333519865696699,
96
+ "false_positive_rate": 0.20555670432543188,
97
+ "fn": 65525,
98
+ "fp": 21870,
99
+ "precision": 0.9742658955456583,
100
+ "recall": 0.926664801343033,
101
+ "threshold": 0.5,
102
+ "tn": 84524,
103
+ "tp": 827975
104
+ },
105
+ "average_precision": 0.993044994914989,
106
+ "drift_vs_native_fp32": {
107
+ "decision_changes_at_0_5": 0,
108
+ "max_absolute_error": 0.0,
109
+ "mean_absolute_error": 0.0
110
+ },
111
+ "precision_at_recall": {
112
+ "0.9": 0.9820955829427366,
113
+ "0.95": 0.9615820040529373
114
+ }
115
+ },
116
+ "native_reference_sha256": "ca15ea86a882b0fe822736361aa9cf7a644737f09511ff9e391cb34a077caf3e",
117
+ "recordings": 48,
118
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
119
+ }
120
+ }
121
+ }
quantizations/fp16/example.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Run Akiki VAD using the engine and weights bundled with the akiki package."""
2
+ import argparse
3
+ from dataclasses import asdict
4
+ import json
5
+
6
+ import soundfile as sf
7
+ from akiki import VAD
8
+
9
+
10
+ def main():
11
+ parser = argparse.ArgumentParser(description=__doc__)
12
+ parser.add_argument('audio', help='Local mono 16 kHz recording')
13
+ parser.add_argument('--threshold', type=float, default=None)
14
+ args = parser.parse_args()
15
+ with sf.SoundFile(args.audio) as source:
16
+ if source.channels != 1 or source.samplerate != 16000:
17
+ raise ValueError('Expected mono 16 kHz audio')
18
+ with VAD(threshold=args.threshold, engine="rust", model_precision="fp16", fft_precision="fp32") as detector:
19
+ for block in source.blocks(blocksize=16000, dtype='float32'):
20
+ for frame in detector.push(block, sample_rate=source.samplerate):
21
+ print(json.dumps(asdict(frame)))
22
+
23
+
24
+ if __name__ == '__main__':
25
+ main()
quantizations/fp16/model.akv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93
3
+ size 398560
quantizations/fp16/quantization.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact_id": "akiki-vad-1.0-fp16",
3
+ "base_model": "Akiki-AI/akiki-vad-1.0",
4
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
5
+ "biases_precision": "fp32",
6
+ "bytes": 398560,
7
+ "calibration": false,
8
+ "context_samples": 320,
9
+ "description": "FP16 stored projection weights; FP32 activations and accumulation",
10
+ "fft_precision": "fp32",
11
+ "frontend_config": {
12
+ "fft_size": 256,
13
+ "padding_mode": "reflect",
14
+ "right_padding": 64,
15
+ "stft_hop": 128,
16
+ "window_size": 256
17
+ },
18
+ "frontend_implementation": "Unchanged Akiki DSP RealFFT",
19
+ "frontend_unchanged": true,
20
+ "hop_samples": 256,
21
+ "integer_method": null,
22
+ "model_file": "model.akv",
23
+ "model_format": "AKVAD003",
24
+ "model_precision": "fp16",
25
+ "native_fp32_reference_bytes": 791776,
26
+ "python_precision_selector": {
27
+ "arbitrary_buffering": "passed",
28
+ "artifact_bytes_match_python_cache": true,
29
+ "fft_precision": "fp32",
30
+ "native_probabilities_match_python": true,
31
+ "python_precision_selector": "passed"
32
+ },
33
+ "quantized_scope": "Convolution weights and both GRU projection matrices only",
34
+ "readout_precision": "fp32",
35
+ "recurrent_state_precision": "fp32",
36
+ "reduction_vs_native_fp32": 1.9865917302288238,
37
+ "relation": "quantized",
38
+ "sample_rate": 16000,
39
+ "sha256": "7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93",
40
+ "source_checkpoint_sha256": "101466d71a492fd33e699271f4cf7340c7cb26ebe2c83baaaa5b096a1c0bd34f",
41
+ "source_code_sha256": {
42
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
43
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
44
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
45
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
46
+ },
47
+ "source_safetensors_sha256": "ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d",
48
+ "threshold": 0.5,
49
+ "training_updates": 0,
50
+ "validation": {
51
+ "biases_and_head_identical": true,
52
+ "bytes": 398560,
53
+ "exporters_byte_identical": true,
54
+ "frontend_config_identical": true,
55
+ "native_load_and_state_continuity": "passed",
56
+ "sha256": "7b8d25eae99b181215c1a8801bfd1a61ee20a21da46fd1187344647e1369ac93"
57
+ }
58
+ }
quantizations/fp16/requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ akiki
quantizations/int4/LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
quantizations/int4/README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Akiki VAD 1.0 — INT4
2
+
3
+ Native precision variant of the [main Akiki VAD model](../../), generated from
4
+ the same selected seed-1730 checkpoint. Packed signed INT4 projection weights; dynamically quantized INT8 activations.
5
+ **RealFFT, periodic Hann windowing and magnitude computation remain FP32 and unchanged.**
6
+ Biases, the output head, nonlinearities and recurrent state also remain FP32.
7
+ Only convolution and GRU projections use the selected reduced precision.
8
+
9
+ ## Use the Python package
10
+
11
+ ```bash
12
+ pip install akiki
13
+ akiki recording.wav --engine rust --model-precision int4 --fft-precision fp32
14
+ ```
15
+
16
+ ```python
17
+ from akiki import VAD
18
+
19
+ with VAD(engine="rust", model_precision="int4", fft_precision="fp32") as vad:
20
+ frames = vad.push(audio, sample_rate=16000)
21
+ ```
22
+
23
+ The package derives this exact `model.akv` locally from its bundled FP32 weights
24
+ and caches it. No Hugging Face download is needed for the Python example. The
25
+ included `example.py` uses this same public interface; `requirements.txt` contains
26
+ only `akiki`. Audio must be finite mono float32 at 16 kHz.
27
+
28
+ ## Native artifact
29
+
30
+ `model.akv` is a prebuilt AKVAD003 file for direct Rust deployment through
31
+ `Weights::load("/local/path/model.akv")`. Its geometry and precision are embedded
32
+ in the binary; no files from another precision folder are required. The Python
33
+ precision selector and independent native exporter produced identical bytes.
34
+
35
+ File size: **112,864 bytes**, a **7.02×** reduction
36
+ against the equivalent 791,776-byte native FP32 binary. This comparison
37
+ uses the same native layout, excluding the deterministic Fourier basis stored in
38
+ the main safetensors checkpoint. It is a file-size comparison, not a claim about
39
+ latency, loaded memory use or an entirely reduced-precision pipeline.
40
+
41
+ ## Evaluation
42
+
43
+ | Benchmark | Precision | AP | F1 at 0.5 | Precision at recall ≥95% |
44
+ |---|---|---:|---:|---:|
45
+ | TEN | FP32 | 98.0187% | 92.6053% | 90.6487% |
46
+ | TEN | INT4 | 97.8406% | 92.0614% | 90.2589% |
47
+ | VoxConverse | FP32 | 99.3045% | 94.9869% | 96.1582% |
48
+ | VoxConverse | INT4 | 99.2874% | 94.9354% | 96.0833% |
49
+
50
+ All 30 TEN and 48 VoxConverse recordings were evaluated with the unchanged
51
+ 32 ms reference protocol: average consecutive 16 ms predictions in pairs,
52
+ preserve recurrent state throughout each recording, and reset between recordings.
53
+ These repeatedly inspected benchmarks are development comparisons. Small gains
54
+ or losses do not establish improved generalization. No training, calibration,
55
+ threshold adjustment or FFT quantization was performed.
56
+
57
+ `evaluation.json` includes probability drift and precision at high recall.
58
+ `quantization.json` records source revisions, hashes, scope and precision policy.
59
+ Verify the folder with `sha256sum -c SHA256SUMS`.
quantizations/int4/SHA256SUMS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ f3103b7f570f92aacbc194ecfc2a8ea4d48c77e69423010b9137ea9352bf8056 README.md
3
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
4
+ 74ac3f87e52485371b45f58d92a404e04b04cc2c267bba6e39a7ed47210014df evaluation.json
5
+ 8609722c236250409a2324ec403ba883296a0340537a6ea68ce8bb674df6c69c example.py
6
+ cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428 model.akv
7
+ 361d07b25585c0c308dafe2397994263a3c5245071d4b0413e34aa989604894c quantization.json
8
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
quantizations/int4/SILERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020-present Silero Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
quantizations/int4/evaluation.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fft_precision": "fp32",
3
+ "interpretation": "Previously inspected development benchmarks; no calibration or tuning",
4
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
5
+ "precision": "int4",
6
+ "protocol": "Consecutive 16 ms scores averaged in pairs; exact pooled AP; F1 at 0.5; P90/P95 on 0.01 threshold grid",
7
+ "suites": {
8
+ "ten": {
9
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
10
+ "common32_frames": 8179,
11
+ "metrics": {
12
+ "at_0_5": {
13
+ "f1": 0.9206139627001154,
14
+ "false_negative_rate": 0.09403930485626116,
15
+ "false_positive_rate": 0.1894164193867458,
16
+ "fn": 579,
17
+ "fp": 383,
18
+ "precision": 0.9357490353967455,
19
+ "recall": 0.9059606951437388,
20
+ "threshold": 0.5,
21
+ "tn": 1639,
22
+ "tp": 5578
23
+ },
24
+ "average_precision": 0.9784055273437777,
25
+ "drift_vs_native_fp32": {
26
+ "decision_changes_at_0_5": 184,
27
+ "max_absolute_error": 0.6882854700088501,
28
+ "mean_absolute_error": 0.023975761607289314
29
+ },
30
+ "precision_at_recall": {
31
+ "0.9": 0.9385682856659333,
32
+ "0.95": 0.9025893958076449
33
+ }
34
+ },
35
+ "native16_frames": 16382,
36
+ "native_fp32_reference": {
37
+ "at_0_5": {
38
+ "f1": 0.9260534513854731,
39
+ "false_negative_rate": 0.08267013155757674,
40
+ "false_positive_rate": 0.1943620178041543,
41
+ "fn": 509,
42
+ "fp": 393,
43
+ "precision": 0.9349445456050323,
44
+ "recall": 0.9173298684424233,
45
+ "threshold": 0.5,
46
+ "tn": 1629,
47
+ "tp": 5648
48
+ },
49
+ "average_precision": 0.980186578540877,
50
+ "drift_vs_native_fp32": {
51
+ "decision_changes_at_0_5": 0,
52
+ "max_absolute_error": 0.0,
53
+ "mean_absolute_error": 0.0
54
+ },
55
+ "precision_at_recall": {
56
+ "0.9": 0.9450025540609569,
57
+ "0.95": 0.9064870723022139
58
+ }
59
+ },
60
+ "native_reference_sha256": "faf799e132e387079b6353d8ab88bc7b47df608af86a4ed93f4f2fe1cb17041e",
61
+ "recordings": 30,
62
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
63
+ },
64
+ "voxconverse": {
65
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
66
+ "common32_frames": 999894,
67
+ "metrics": {
68
+ "at_0_5": {
69
+ "f1": 0.9493535650692885,
70
+ "false_negative_rate": 0.07359932848349189,
71
+ "false_positive_rate": 0.21200443634039515,
72
+ "fn": 65761,
73
+ "fp": 22556,
74
+ "precision": 0.9734727359328234,
75
+ "recall": 0.9264006715165081,
76
+ "threshold": 0.5,
77
+ "tn": 83838,
78
+ "tp": 827739
79
+ },
80
+ "average_precision": 0.9928742477163751,
81
+ "drift_vs_native_fp32": {
82
+ "decision_changes_at_0_5": 8238,
83
+ "max_absolute_error": 0.8107398748397827,
84
+ "mean_absolute_error": 0.008878271095454693
85
+ },
86
+ "precision_at_recall": {
87
+ "0.9": 0.9816668273555051,
88
+ "0.95": 0.9608334087617668
89
+ }
90
+ },
91
+ "native16_frames": 1999788,
92
+ "native_fp32_reference": {
93
+ "at_0_5": {
94
+ "f1": 0.9498693603388887,
95
+ "false_negative_rate": 0.07333519865696699,
96
+ "false_positive_rate": 0.20555670432543188,
97
+ "fn": 65525,
98
+ "fp": 21870,
99
+ "precision": 0.9742658955456583,
100
+ "recall": 0.926664801343033,
101
+ "threshold": 0.5,
102
+ "tn": 84524,
103
+ "tp": 827975
104
+ },
105
+ "average_precision": 0.993044994914989,
106
+ "drift_vs_native_fp32": {
107
+ "decision_changes_at_0_5": 0,
108
+ "max_absolute_error": 0.0,
109
+ "mean_absolute_error": 0.0
110
+ },
111
+ "precision_at_recall": {
112
+ "0.9": 0.9820955829427366,
113
+ "0.95": 0.9615820040529373
114
+ }
115
+ },
116
+ "native_reference_sha256": "ca15ea86a882b0fe822736361aa9cf7a644737f09511ff9e391cb34a077caf3e",
117
+ "recordings": 48,
118
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
119
+ }
120
+ }
121
+ }
quantizations/int4/example.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Run Akiki VAD using the engine and weights bundled with the akiki package."""
2
+ import argparse
3
+ from dataclasses import asdict
4
+ import json
5
+
6
+ import soundfile as sf
7
+ from akiki import VAD
8
+
9
+
10
+ def main():
11
+ parser = argparse.ArgumentParser(description=__doc__)
12
+ parser.add_argument('audio', help='Local mono 16 kHz recording')
13
+ parser.add_argument('--threshold', type=float, default=None)
14
+ args = parser.parse_args()
15
+ with sf.SoundFile(args.audio) as source:
16
+ if source.channels != 1 or source.samplerate != 16000:
17
+ raise ValueError('Expected mono 16 kHz audio')
18
+ with VAD(threshold=args.threshold, engine="rust", model_precision="int4", fft_precision="fp32") as detector:
19
+ for block in source.blocks(blocksize=16000, dtype='float32'):
20
+ for frame in detector.push(block, sample_rate=source.samplerate):
21
+ print(json.dumps(asdict(frame)))
22
+
23
+
24
+ if __name__ == '__main__':
25
+ main()
quantizations/int4/model.akv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428
3
+ size 112864
quantizations/int4/quantization.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact_id": "akiki-vad-1.0-int4",
3
+ "base_model": "Akiki-AI/akiki-vad-1.0",
4
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
5
+ "biases_precision": "fp32",
6
+ "bytes": 112864,
7
+ "calibration": false,
8
+ "context_samples": 320,
9
+ "description": "Packed signed INT4 projection weights; dynamically quantized INT8 activations",
10
+ "fft_precision": "fp32",
11
+ "frontend_config": {
12
+ "fft_size": 256,
13
+ "padding_mode": "reflect",
14
+ "right_padding": 64,
15
+ "stft_hop": 128,
16
+ "window_size": 256
17
+ },
18
+ "frontend_implementation": "Unchanged Akiki DSP RealFFT",
19
+ "frontend_unchanged": true,
20
+ "hop_samples": 256,
21
+ "integer_method": "Per-row symmetric absmax/7, signed [-7,7] packed nibbles; dynamic INT8 activation scales",
22
+ "model_file": "model.akv",
23
+ "model_format": "AKVAD003",
24
+ "model_precision": "int4",
25
+ "native_fp32_reference_bytes": 791776,
26
+ "python_precision_selector": {
27
+ "arbitrary_buffering": "passed",
28
+ "artifact_bytes_match_python_cache": true,
29
+ "fft_precision": "fp32",
30
+ "native_probabilities_match_python": true,
31
+ "python_precision_selector": "passed"
32
+ },
33
+ "quantized_scope": "Convolution weights and both GRU projection matrices only",
34
+ "readout_precision": "fp32",
35
+ "recurrent_state_precision": "fp32",
36
+ "reduction_vs_native_fp32": 7.015310462149135,
37
+ "relation": "quantized",
38
+ "sample_rate": 16000,
39
+ "sha256": "cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428",
40
+ "source_checkpoint_sha256": "101466d71a492fd33e699271f4cf7340c7cb26ebe2c83baaaa5b096a1c0bd34f",
41
+ "source_code_sha256": {
42
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
43
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
44
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
45
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
46
+ },
47
+ "source_safetensors_sha256": "ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d",
48
+ "threshold": 0.5,
49
+ "training_updates": 0,
50
+ "validation": {
51
+ "biases_and_head_identical": true,
52
+ "bytes": 112864,
53
+ "exporters_byte_identical": true,
54
+ "frontend_config_identical": true,
55
+ "native_load_and_state_continuity": "passed",
56
+ "sha256": "cd313d3f94bd80f287ac85c4707bb4e858f0125224bd2d41da572266634b8428"
57
+ }
58
+ }
quantizations/int4/requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ akiki
quantizations/int8-fp32-input/LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
quantizations/int8-fp32-input/README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Akiki VAD 1.0 — INT8-FP32-INPUT
2
+
3
+ Native precision variant of the [main Akiki VAD model](../../), generated from
4
+ the same selected seed-1730 checkpoint. INT8 weights; FP32 first-projection inputs, dynamically quantized INT8 later inputs.
5
+ **RealFFT, periodic Hann windowing and magnitude computation remain FP32 and unchanged.**
6
+ Biases, the output head, nonlinearities and recurrent state also remain FP32.
7
+ Only convolution and GRU projections use the selected reduced precision.
8
+
9
+ ## Use the Python package
10
+
11
+ ```bash
12
+ pip install akiki
13
+ akiki recording.wav --engine rust --model-precision int8-fp32-input --fft-precision fp32
14
+ ```
15
+
16
+ ```python
17
+ from akiki import VAD
18
+
19
+ with VAD(engine="rust", model_precision="int8-fp32-input", fft_precision="fp32") as vad:
20
+ frames = vad.push(audio, sample_rate=16000)
21
+ ```
22
+
23
+ The package derives this exact `model.akv` locally from its bundled FP32 weights
24
+ and caches it. No Hugging Face download is needed for the Python example. The
25
+ included `example.py` uses this same public interface; `requirements.txt` contains
26
+ only `akiki`. Audio must be finite mono float32 at 16 kHz.
27
+
28
+ ## Native artifact
29
+
30
+ `model.akv` is a prebuilt AKVAD003 file for direct Rust deployment through
31
+ `Weights::load("/local/path/model.akv")`. Its geometry and precision are embedded
32
+ in the binary; no files from another precision folder are required. The Python
33
+ precision selector and independent native exporter produced identical bytes.
34
+
35
+ File size: **211,168 bytes**, a **3.75×** reduction
36
+ against the equivalent 791,776-byte native FP32 binary. This comparison
37
+ uses the same native layout, excluding the deterministic Fourier basis stored in
38
+ the main safetensors checkpoint. It is a file-size comparison, not a claim about
39
+ latency, loaded memory use or an entirely reduced-precision pipeline.
40
+
41
+ ## Evaluation
42
+
43
+ | Benchmark | Precision | AP | F1 at 0.5 | Precision at recall ≥95% |
44
+ |---|---|---:|---:|---:|
45
+ | TEN | FP32 | 98.0187% | 92.6053% | 90.6487% |
46
+ | TEN | INT8-FP32-INPUT | 98.0087% | 92.5750% | 90.6487% |
47
+ | VoxConverse | FP32 | 99.3045% | 94.9869% | 96.1582% |
48
+ | VoxConverse | INT8-FP32-INPUT | 99.3058% | 94.9858% | 96.1725% |
49
+
50
+ All 30 TEN and 48 VoxConverse recordings were evaluated with the unchanged
51
+ 32 ms reference protocol: average consecutive 16 ms predictions in pairs,
52
+ preserve recurrent state throughout each recording, and reset between recordings.
53
+ These repeatedly inspected benchmarks are development comparisons. Small gains
54
+ or losses do not establish improved generalization. No training, calibration,
55
+ threshold adjustment or FFT quantization was performed.
56
+
57
+ `evaluation.json` includes probability drift and precision at high recall.
58
+ `quantization.json` records source revisions, hashes, scope and precision policy.
59
+ Verify the folder with `sha256sum -c SHA256SUMS`.
quantizations/int8-fp32-input/SHA256SUMS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ 707913019d9a08edfbb5dd2613e6eb65180e625ff0d3999a5180228b0f0d10c0 README.md
3
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
4
+ 2bf9a71092654f6965e1660485482f4b26edff4f7199d94fb368238e5dc446f9 evaluation.json
5
+ bba9ee67426aa1b1dcc73713f5a6f6284711274173ba0756a2ac12f5be6bb677 example.py
6
+ d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c model.akv
7
+ 35d090268bc55f10d24c62d3731c5b4801eb1b8cc4057356e4113f74058338df quantization.json
8
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
quantizations/int8-fp32-input/SILERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020-present Silero Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
quantizations/int8-fp32-input/evaluation.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fft_precision": "fp32",
3
+ "interpretation": "Previously inspected development benchmarks; no calibration or tuning",
4
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
5
+ "precision": "int8-fp32-input",
6
+ "protocol": "Consecutive 16 ms scores averaged in pairs; exact pooled AP; F1 at 0.5; P90/P95 on 0.01 threshold grid",
7
+ "suites": {
8
+ "ten": {
9
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
10
+ "common32_frames": 8179,
11
+ "metrics": {
12
+ "at_0_5": {
13
+ "f1": 0.9257498770693329,
14
+ "false_negative_rate": 0.08267013155757674,
15
+ "false_positive_rate": 0.1963402571711177,
16
+ "fn": 509,
17
+ "fp": 397,
18
+ "precision": 0.9343258891645988,
19
+ "recall": 0.9173298684424233,
20
+ "threshold": 0.5,
21
+ "tn": 1625,
22
+ "tp": 5648
23
+ },
24
+ "average_precision": 0.9800865755684185,
25
+ "drift_vs_native_fp32": {
26
+ "decision_changes_at_0_5": 12,
27
+ "max_absolute_error": 0.03571438789367676,
28
+ "mean_absolute_error": 0.0013596420176327229
29
+ },
30
+ "precision_at_recall": {
31
+ "0.9": 0.9446714334354783,
32
+ "0.95": 0.9064870723022139
33
+ }
34
+ },
35
+ "native16_frames": 16382,
36
+ "native_fp32_reference": {
37
+ "at_0_5": {
38
+ "f1": 0.9260534513854731,
39
+ "false_negative_rate": 0.08267013155757674,
40
+ "false_positive_rate": 0.1943620178041543,
41
+ "fn": 509,
42
+ "fp": 393,
43
+ "precision": 0.9349445456050323,
44
+ "recall": 0.9173298684424233,
45
+ "threshold": 0.5,
46
+ "tn": 1629,
47
+ "tp": 5648
48
+ },
49
+ "average_precision": 0.980186578540877,
50
+ "drift_vs_native_fp32": {
51
+ "decision_changes_at_0_5": 0,
52
+ "max_absolute_error": 0.0,
53
+ "mean_absolute_error": 0.0
54
+ },
55
+ "precision_at_recall": {
56
+ "0.9": 0.9450025540609569,
57
+ "0.95": 0.9064870723022139
58
+ }
59
+ },
60
+ "native_reference_sha256": "faf799e132e387079b6353d8ab88bc7b47df608af86a4ed93f4f2fe1cb17041e",
61
+ "recordings": 30,
62
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
63
+ },
64
+ "voxconverse": {
65
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
66
+ "common32_frames": 999894,
67
+ "metrics": {
68
+ "at_0_5": {
69
+ "f1": 0.9498578891868416,
70
+ "false_negative_rate": 0.07352658086177952,
71
+ "false_positive_rate": 0.20397766791360414,
72
+ "fn": 65696,
73
+ "fp": 21702,
74
+ "precision": 0.9744533882044388,
75
+ "recall": 0.9264734191382205,
76
+ "threshold": 0.5,
77
+ "tn": 84692,
78
+ "tp": 827804
79
+ },
80
+ "average_precision": 0.9930580482401159,
81
+ "drift_vs_native_fp32": {
82
+ "decision_changes_at_0_5": 597,
83
+ "max_absolute_error": 0.07915478944778442,
84
+ "mean_absolute_error": 0.0005880859098397195
85
+ },
86
+ "precision_at_recall": {
87
+ "0.9": 0.9821969248568175,
88
+ "0.95": 0.9617253543057419
89
+ }
90
+ },
91
+ "native16_frames": 1999788,
92
+ "native_fp32_reference": {
93
+ "at_0_5": {
94
+ "f1": 0.9498693603388887,
95
+ "false_negative_rate": 0.07333519865696699,
96
+ "false_positive_rate": 0.20555670432543188,
97
+ "fn": 65525,
98
+ "fp": 21870,
99
+ "precision": 0.9742658955456583,
100
+ "recall": 0.926664801343033,
101
+ "threshold": 0.5,
102
+ "tn": 84524,
103
+ "tp": 827975
104
+ },
105
+ "average_precision": 0.993044994914989,
106
+ "drift_vs_native_fp32": {
107
+ "decision_changes_at_0_5": 0,
108
+ "max_absolute_error": 0.0,
109
+ "mean_absolute_error": 0.0
110
+ },
111
+ "precision_at_recall": {
112
+ "0.9": 0.9820955829427366,
113
+ "0.95": 0.9615820040529373
114
+ }
115
+ },
116
+ "native_reference_sha256": "ca15ea86a882b0fe822736361aa9cf7a644737f09511ff9e391cb34a077caf3e",
117
+ "recordings": 48,
118
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
119
+ }
120
+ }
121
+ }
quantizations/int8-fp32-input/example.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Run Akiki VAD using the engine and weights bundled with the akiki package."""
2
+ import argparse
3
+ from dataclasses import asdict
4
+ import json
5
+
6
+ import soundfile as sf
7
+ from akiki import VAD
8
+
9
+
10
+ def main():
11
+ parser = argparse.ArgumentParser(description=__doc__)
12
+ parser.add_argument('audio', help='Local mono 16 kHz recording')
13
+ parser.add_argument('--threshold', type=float, default=None)
14
+ args = parser.parse_args()
15
+ with sf.SoundFile(args.audio) as source:
16
+ if source.channels != 1 or source.samplerate != 16000:
17
+ raise ValueError('Expected mono 16 kHz audio')
18
+ with VAD(threshold=args.threshold, engine="rust", model_precision="int8-fp32-input", fft_precision="fp32") as detector:
19
+ for block in source.blocks(blocksize=16000, dtype='float32'):
20
+ for frame in detector.push(block, sample_rate=source.samplerate):
21
+ print(json.dumps(asdict(frame)))
22
+
23
+
24
+ if __name__ == '__main__':
25
+ main()
quantizations/int8-fp32-input/model.akv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c
3
+ size 211168
quantizations/int8-fp32-input/quantization.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact_id": "akiki-vad-1.0-int8-fp32-input",
3
+ "base_model": "Akiki-AI/akiki-vad-1.0",
4
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
5
+ "biases_precision": "fp32",
6
+ "bytes": 211168,
7
+ "calibration": false,
8
+ "context_samples": 320,
9
+ "description": "INT8 weights; FP32 first-projection inputs, dynamically quantized INT8 later inputs",
10
+ "fft_precision": "fp32",
11
+ "frontend_config": {
12
+ "fft_size": 256,
13
+ "padding_mode": "reflect",
14
+ "right_padding": 64,
15
+ "stft_hop": 128,
16
+ "window_size": 256
17
+ },
18
+ "frontend_implementation": "Unchanged Akiki DSP RealFFT",
19
+ "frontend_unchanged": true,
20
+ "hop_samples": 256,
21
+ "integer_method": "Per-row symmetric absmax/127, round-to-nearest-even; dynamic per-input symmetric activation scales",
22
+ "model_file": "model.akv",
23
+ "model_format": "AKVAD003",
24
+ "model_precision": "int8-fp32-input",
25
+ "native_fp32_reference_bytes": 791776,
26
+ "python_precision_selector": {
27
+ "arbitrary_buffering": "passed",
28
+ "artifact_bytes_match_python_cache": true,
29
+ "fft_precision": "fp32",
30
+ "native_probabilities_match_python": true,
31
+ "python_precision_selector": "passed"
32
+ },
33
+ "quantized_scope": "Convolution weights and both GRU projection matrices only",
34
+ "readout_precision": "fp32",
35
+ "recurrent_state_precision": "fp32",
36
+ "reduction_vs_native_fp32": 3.7495075011365357,
37
+ "relation": "quantized",
38
+ "sample_rate": 16000,
39
+ "sha256": "d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c",
40
+ "source_checkpoint_sha256": "101466d71a492fd33e699271f4cf7340c7cb26ebe2c83baaaa5b096a1c0bd34f",
41
+ "source_code_sha256": {
42
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
43
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
44
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
45
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
46
+ },
47
+ "source_safetensors_sha256": "ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d",
48
+ "threshold": 0.5,
49
+ "training_updates": 0,
50
+ "validation": {
51
+ "biases_and_head_identical": true,
52
+ "bytes": 211168,
53
+ "exporters_byte_identical": true,
54
+ "frontend_config_identical": true,
55
+ "native_load_and_state_continuity": "passed",
56
+ "sha256": "d39b0560eecc371ad9e834e51539b569ab687af23f7a145c2f17ef7c0ad44d6c"
57
+ }
58
+ }
quantizations/int8-fp32-input/requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ akiki
quantizations/int8/LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
quantizations/int8/README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Akiki VAD 1.0 — INT8
2
+
3
+ Native precision variant of the [main Akiki VAD model](../../), generated from
4
+ the same selected seed-1730 checkpoint. INT8 projection weights and dynamically quantized INT8 activations.
5
+ **RealFFT, periodic Hann windowing and magnitude computation remain FP32 and unchanged.**
6
+ Biases, the output head, nonlinearities and recurrent state also remain FP32.
7
+ Only convolution and GRU projections use the selected reduced precision.
8
+
9
+ ## Use the Python package
10
+
11
+ ```bash
12
+ pip install akiki
13
+ akiki recording.wav --engine rust --model-precision int8 --fft-precision fp32
14
+ ```
15
+
16
+ ```python
17
+ from akiki import VAD
18
+
19
+ with VAD(engine="rust", model_precision="int8", fft_precision="fp32") as vad:
20
+ frames = vad.push(audio, sample_rate=16000)
21
+ ```
22
+
23
+ The package derives this exact `model.akv` locally from its bundled FP32 weights
24
+ and caches it. No Hugging Face download is needed for the Python example. The
25
+ included `example.py` uses this same public interface; `requirements.txt` contains
26
+ only `akiki`. Audio must be finite mono float32 at 16 kHz.
27
+
28
+ ## Native artifact
29
+
30
+ `model.akv` is a prebuilt AKVAD003 file for direct Rust deployment through
31
+ `Weights::load("/local/path/model.akv")`. Its geometry and precision are embedded
32
+ in the binary; no files from another precision folder are required. The Python
33
+ precision selector and independent native exporter produced identical bytes.
34
+
35
+ File size: **211,168 bytes**, a **3.75×** reduction
36
+ against the equivalent 791,776-byte native FP32 binary. This comparison
37
+ uses the same native layout, excluding the deterministic Fourier basis stored in
38
+ the main safetensors checkpoint. It is a file-size comparison, not a claim about
39
+ latency, loaded memory use or an entirely reduced-precision pipeline.
40
+
41
+ ## Evaluation
42
+
43
+ | Benchmark | Precision | AP | F1 at 0.5 | Precision at recall ≥95% |
44
+ |---|---|---:|---:|---:|
45
+ | TEN | FP32 | 98.0187% | 92.6053% | 90.6487% |
46
+ | TEN | INT8 | 98.0423% | 92.5947% | 90.4541% |
47
+ | VoxConverse | FP32 | 99.3045% | 94.9869% | 96.1582% |
48
+ | VoxConverse | INT8 | 99.3106% | 95.0557% | 96.2425% |
49
+
50
+ All 30 TEN and 48 VoxConverse recordings were evaluated with the unchanged
51
+ 32 ms reference protocol: average consecutive 16 ms predictions in pairs,
52
+ preserve recurrent state throughout each recording, and reset between recordings.
53
+ These repeatedly inspected benchmarks are development comparisons. Small gains
54
+ or losses do not establish improved generalization. No training, calibration,
55
+ threshold adjustment or FFT quantization was performed.
56
+
57
+ `evaluation.json` includes probability drift and precision at high recall.
58
+ `quantization.json` records source revisions, hashes, scope and precision policy.
59
+ Verify the folder with `sha256sum -c SHA256SUMS`.
quantizations/int8/SHA256SUMS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
2
+ d091b33b442cbf818773c42e4b231bb78bcda09563026a897d5f677880c3862b README.md
3
+ 2e63e9a38b6e8fc0c7bc37ce174caca1862870856c6daf5697cfb785e925520b SILERO-MIT.txt
4
+ 4038ba3b028346b4d2053a3f6dbdbdc3752695521a213f67695d11e6ad451198 evaluation.json
5
+ 4626f51f01d3059cfe63ff5f2cd6b69a62ab8bad853cf07f05565e098f68e0ac example.py
6
+ 5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b model.akv
7
+ 805995faa1785a0424c30b078e98dc36606c2a93308592e872a040be10f746ff quantization.json
8
+ fa004b4f40add254e5a27f937f4340324379327ad783226bfcdf32c74603ba62 requirements.txt
quantizations/int8/SILERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020-present Silero Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
quantizations/int8/evaluation.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fft_precision": "fp32",
3
+ "interpretation": "Previously inspected development benchmarks; no calibration or tuning",
4
+ "native_library_sha256": "cd846a2ac14de9a770b7f64b42b45881bcd1f908eabd19c38d001518fd53edfe",
5
+ "precision": "int8",
6
+ "protocol": "Consecutive 16 ms scores averaged in pairs; exact pooled AP; F1 at 0.5; P90/P95 on 0.01 threshold grid",
7
+ "suites": {
8
+ "ten": {
9
+ "cached_native_fp32_max_absolute_error": 6.556510925292969e-06,
10
+ "common32_frames": 8179,
11
+ "metrics": {
12
+ "at_0_5": {
13
+ "f1": 0.9259471401685624,
14
+ "false_negative_rate": 0.08104596394347896,
15
+ "false_positive_rate": 0.20079129574678536,
16
+ "fn": 499,
17
+ "fp": 406,
18
+ "precision": 0.933047493403694,
19
+ "recall": 0.918954036056521,
20
+ "threshold": 0.5,
21
+ "tn": 1616,
22
+ "tp": 5658
23
+ },
24
+ "average_precision": 0.9804233999537153,
25
+ "drift_vs_native_fp32": {
26
+ "decision_changes_at_0_5": 39,
27
+ "max_absolute_error": 0.2942661643028259,
28
+ "mean_absolute_error": 0.005363143049180508
29
+ },
30
+ "precision_at_recall": {
31
+ "0.9": 0.944368832936373,
32
+ "0.95": 0.9045412418906394
33
+ }
34
+ },
35
+ "native16_frames": 16382,
36
+ "native_fp32_reference": {
37
+ "at_0_5": {
38
+ "f1": 0.9260534513854731,
39
+ "false_negative_rate": 0.08267013155757674,
40
+ "false_positive_rate": 0.1943620178041543,
41
+ "fn": 509,
42
+ "fp": 393,
43
+ "precision": 0.9349445456050323,
44
+ "recall": 0.9173298684424233,
45
+ "threshold": 0.5,
46
+ "tn": 1629,
47
+ "tp": 5648
48
+ },
49
+ "average_precision": 0.980186578540877,
50
+ "drift_vs_native_fp32": {
51
+ "decision_changes_at_0_5": 0,
52
+ "max_absolute_error": 0.0,
53
+ "mean_absolute_error": 0.0
54
+ },
55
+ "precision_at_recall": {
56
+ "0.9": 0.9450025540609569,
57
+ "0.95": 0.9064870723022139
58
+ }
59
+ },
60
+ "native_reference_sha256": "faf799e132e387079b6353d8ab88bc7b47df608af86a4ed93f4f2fe1cb17041e",
61
+ "recordings": 30,
62
+ "reference_sha256": "2363c665d13f65304c86532eb8edba53095f32e664d18f2375bdc3bdcffa6bf8"
63
+ },
64
+ "voxconverse": {
65
+ "cached_native_fp32_max_absolute_error": 3.457069396972656e-05,
66
+ "common32_frames": 999894,
67
+ "metrics": {
68
+ "at_0_5": {
69
+ "f1": 0.9505566545257836,
70
+ "false_negative_rate": 0.07174818130945719,
71
+ "false_positive_rate": 0.2084234073350001,
72
+ "fn": 64107,
73
+ "fp": 22175,
74
+ "precision": 0.973959801213761,
75
+ "recall": 0.9282518186905429,
76
+ "threshold": 0.5,
77
+ "tn": 84219,
78
+ "tp": 829393
79
+ },
80
+ "average_precision": 0.9931057710274435,
81
+ "drift_vs_native_fp32": {
82
+ "decision_changes_at_0_5": 2275,
83
+ "max_absolute_error": 0.42997223138809204,
84
+ "mean_absolute_error": 0.002406095154583454
85
+ },
86
+ "precision_at_recall": {
87
+ "0.9": 0.982454126339572,
88
+ "0.95": 0.9624248553799126
89
+ }
90
+ },
91
+ "native16_frames": 1999788,
92
+ "native_fp32_reference": {
93
+ "at_0_5": {
94
+ "f1": 0.9498693603388887,
95
+ "false_negative_rate": 0.07333519865696699,
96
+ "false_positive_rate": 0.20555670432543188,
97
+ "fn": 65525,
98
+ "fp": 21870,
99
+ "precision": 0.9742658955456583,
100
+ "recall": 0.926664801343033,
101
+ "threshold": 0.5,
102
+ "tn": 84524,
103
+ "tp": 827975
104
+ },
105
+ "average_precision": 0.993044994914989,
106
+ "drift_vs_native_fp32": {
107
+ "decision_changes_at_0_5": 0,
108
+ "max_absolute_error": 0.0,
109
+ "mean_absolute_error": 0.0
110
+ },
111
+ "precision_at_recall": {
112
+ "0.9": 0.9820955829427366,
113
+ "0.95": 0.9615820040529373
114
+ }
115
+ },
116
+ "native_reference_sha256": "ca15ea86a882b0fe822736361aa9cf7a644737f09511ff9e391cb34a077caf3e",
117
+ "recordings": 48,
118
+ "reference_sha256": "bf0b711ccd6ec6ab5fb35df3d85c287be96b84117a6cfda9db6ec961f3468ba6"
119
+ }
120
+ }
121
+ }
quantizations/int8/example.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Run Akiki VAD using the engine and weights bundled with the akiki package."""
2
+ import argparse
3
+ from dataclasses import asdict
4
+ import json
5
+
6
+ import soundfile as sf
7
+ from akiki import VAD
8
+
9
+
10
+ def main():
11
+ parser = argparse.ArgumentParser(description=__doc__)
12
+ parser.add_argument('audio', help='Local mono 16 kHz recording')
13
+ parser.add_argument('--threshold', type=float, default=None)
14
+ args = parser.parse_args()
15
+ with sf.SoundFile(args.audio) as source:
16
+ if source.channels != 1 or source.samplerate != 16000:
17
+ raise ValueError('Expected mono 16 kHz audio')
18
+ with VAD(threshold=args.threshold, engine="rust", model_precision="int8", fft_precision="fp32") as detector:
19
+ for block in source.blocks(blocksize=16000, dtype='float32'):
20
+ for frame in detector.push(block, sample_rate=source.samplerate):
21
+ print(json.dumps(asdict(frame)))
22
+
23
+
24
+ if __name__ == '__main__':
25
+ main()
quantizations/int8/model.akv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b
3
+ size 211168
quantizations/int8/quantization.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact_id": "akiki-vad-1.0-int8",
3
+ "base_model": "Akiki-AI/akiki-vad-1.0",
4
+ "base_model_revision": "7f3c9461acdcb49ae5d6df9fd70376947d92ba1f",
5
+ "biases_precision": "fp32",
6
+ "bytes": 211168,
7
+ "calibration": false,
8
+ "context_samples": 320,
9
+ "description": "INT8 projection weights and dynamically quantized INT8 activations",
10
+ "fft_precision": "fp32",
11
+ "frontend_config": {
12
+ "fft_size": 256,
13
+ "padding_mode": "reflect",
14
+ "right_padding": 64,
15
+ "stft_hop": 128,
16
+ "window_size": 256
17
+ },
18
+ "frontend_implementation": "Unchanged Akiki DSP RealFFT",
19
+ "frontend_unchanged": true,
20
+ "hop_samples": 256,
21
+ "integer_method": "Per-row symmetric absmax/127, round-to-nearest-even; dynamic per-input symmetric activation scales",
22
+ "model_file": "model.akv",
23
+ "model_format": "AKVAD003",
24
+ "model_precision": "int8",
25
+ "native_fp32_reference_bytes": 791776,
26
+ "python_precision_selector": {
27
+ "arbitrary_buffering": "passed",
28
+ "artifact_bytes_match_python_cache": true,
29
+ "fft_precision": "fp32",
30
+ "native_probabilities_match_python": true,
31
+ "python_precision_selector": "passed"
32
+ },
33
+ "quantized_scope": "Convolution weights and both GRU projection matrices only",
34
+ "readout_precision": "fp32",
35
+ "recurrent_state_precision": "fp32",
36
+ "reduction_vs_native_fp32": 3.7495075011365357,
37
+ "relation": "quantized",
38
+ "sample_rate": 16000,
39
+ "sha256": "5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b",
40
+ "source_checkpoint_sha256": "101466d71a492fd33e699271f4cf7340c7cb26ebe2c83baaaa5b096a1c0bd34f",
41
+ "source_code_sha256": {
42
+ "model_format.py": "dbdeaa72b5f8deeadc08ff819366bbebb28605261231480922a565e47c6723ac",
43
+ "native_export.py": "f2eaca624250ba31651f1bbfc2eeb92fc2a7b0d089aa368331934bff47180716",
44
+ "paths.py": "69f4f9c534dda07e908b98648f7fa5bcd5481d3097ef4d0bfa800ad58be8f7fd",
45
+ "quantization.py": "8b185eb81e9668d69c0abc26db8ef7399ce12010b5f60b300b2313a6fa878094"
46
+ },
47
+ "source_safetensors_sha256": "ae6f50bed1f95c7a138ae384801871f43ad6965dbd196387ef746ec1f0f2908d",
48
+ "threshold": 0.5,
49
+ "training_updates": 0,
50
+ "validation": {
51
+ "biases_and_head_identical": true,
52
+ "bytes": 211168,
53
+ "exporters_byte_identical": true,
54
+ "frontend_config_identical": true,
55
+ "native_load_and_state_continuity": "passed",
56
+ "sha256": "5a480b87762b5197b1b792d777c5909ab480a9359f33b79284cc1bba5091ca2b"
57
+ }
58
+ }
quantizations/int8/requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ akiki