alt.freeweights.speech / whisper-tiny-sundanese
From: souba67 <huggingface.co/souba67>Newsgroups: alt.freeweights.speechSubject:

whisper-tiny-sundanese

Date: 2026-11-15Commit: 4337c3fSigned: 2DC28CC7B26A283B ✓

Automatic speech recognition model with 38M parameters. Onnx and safetensors weights, 347 MB in all. Published by souba67 under Apache-2.0.

38M params347MBwhisper-tiny-sundaneseonnx safetensorspermissive
FactsParams38MSize347 MBFormatsonnx, safetensorsTaskautomatic speech recognitionLicenseApache-2.0From sourcepermissive
$ fw get souba67/whisper-tiny-sundanese
# manifest sha256 aab880d0c04f… · 347 MB · 14 files
$ fw verify ./whisper-tiny-sundanese souba67/whisper-tiny-sundanese
From sourceHosted (signed)souba67/whisper-tiny-sundaneseLast check: 2026-11-15 05:30 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of whisper-tiny.

Works with

Overview

Size
347 MB
Weights
151 MB (safetensors)
Parameters
38M
Formats
onnx, safetensors
Task
automatic speech recognition
License
Apache-2.0 (permissive)
Files
14, each with a sha256
Publisher
souba67
Added
2026-11-15
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

Base model: openai/whisper-tiny

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 05:30 UTCpassed

Model card

From the publisher at commit 4337c3f. Shown as plain text with links; images open at the publisher.

whisper-tiny-sundanese#

Sundanese fine-tune of openai/whisper-tiny, with ONNX weights for in-browser inference through transformers.js.

Accuracy#

modelWER
stock openai/whisper-tiny83.4%
this fine-tune10.6%

Measured in Kaggle notebook phase_b_whisper_sundanese89b32c3026, version 2. OpenSLR SLR44, 2,401 female and 1,812 male utterances for 4,213 total, split 3,791 train and 422 test with train_test_split(test_size=0.1, seed=42). Normalisation was .strip().lower() on both sides and nothing else, so punctuation mismatches count as errors. WER moves by several points on normalisation choices alone, which is why the rule is stated here.

An independent re-run on 13 August 2026 rebuilt the corpus and the split from scratch and scored the PyTorch weights at 10.44% on 60 clips of that test split, which is the same number within sampling noise and confirms the split is genuinely held out.

Microphone accuracy: 69.68% WER#

SLR44 is studio read speech from a small set of speakers, and the test split above is a random slice of those same recordings. Same speakers, same conditions, same read-aloud prompts. On 13 August 2026 the model was measured on audio that shares none of that.

Sixty utterances, written for the purpose and checked against SLR44 for overlap (no exact match, no shared 5-gram), read into a laptop's built-in microphone and captured through a browser at 16kHz mono with echo cancellation, noise suppression and auto gain on, which is the audio path the in-browser demo uses. 531 reference words. Same .strip().lower() normalisation as above.

SLR44 read speechlaptop microphone
stock openai/whisper-tiny83.4%87.01%
this fine-tune10.6%69.68%
advantage73 points17 points

The fine-tune is still the better model on real audio, by 17 points, so use it rather than stock. But roughly three quarters of its headline advantage belongs to SLR44's recording conditions rather than to the language. Quoting 10.6% as this model's accuracy without the second column would be misleading, which is why both are here.

The recordings split into a neutral half and a colloquial half. The gap between them is vocabulary, not acoustics: 39% of the colloquial half's word tokens never appear anywhere in SLR44, against 27% for the neutral half.

neutralcolloquial
PyTorch64.48%74.63%
int8 ONNX66.41%81.99%

The audio was checked before the number was believed: 76% of its energy sits below 1kHz with 6% above 4kHz, level varies with a std/mean ratio of 0.86, and stock Whisper transcribes the same files into recognisable-if-wrong Sundanese. It is speech, and the model hears it. One clip of the sixty clipped.

Do not rank quantisations on the read-speech split#

A per-channel int8 build of this decoder beats the published per-tensor one on read speech, 10.09% against 10.82% on the full 422-clip held-out split, for 110KB more. On the microphone recordings the ordering inverts:

variantread speechlaptop microphone
int8 per-tensor (published here)10.82%74.39%
int8 per-channel10.09%81.17%

On the colloquial half the per-channel build reaches 93.38%. It is not published here for that reason. If you quantise this model yourself, the clean benchmark will not tell you which variant to ship.

ONNX#

Four variants were transcribed over the same 60 held-out SLR44 clips and scored against the PyTorch weights. Exact match is the share of clips where the transcript is character-for-character identical to PyTorch's, which catches a variant that is differently wrong at a similar WER.

variantWERexact match vs PyTorchsize
PyTorch10.44%––
fp32 ONNX10.44%100%118.4MB decoder
int8 ONNX11.61%76.7%30.1MB decoder

The int8 files are what dtype: 'q8' loads, and the whole Sundanese pipeline is 40.1MB: a 30.1MB merged decoder and a 10.1MB encoder.

The int8 files were wrong until 13 August 2026#

Earlier versions of this repo shipped a decoder_model_merged_quantized.onnx that was fp32 in substance. Dynamic quantisation left it at 118.5MB against the fp32 file's 118.4MB, because quantize_dynamic does not descend into the subgraphs of the If node a merged decoder uses unless it is told to. That was disclosed here rather than hidden, but it was still a file whose name promised a size it did not have.

Passing extra_options={"EnableSubgraph": True} fixes it: 118.4MB to 30.1MB, a genuine fourfold shrink.

Note what this correction did to the accuracy table. The previous card reported int8 at 100% exact match, and that was true only because the file was fp32. A real int8 decoder costs 1.17 points of WER and disagrees with PyTorch on roughly a quarter of clips. The honest trade is 88MB of download for that.

Two details worth recording for anyone reproducing this:

  • The quantisation was applied to the already-published fp32 files, not to a fresh export. Re-exporting with optimum 2.1.0 unties the lm_head from the token embedding, so the [51865, 384] matrix appears twice and the fp32 merged decoder comes out at 198.1MB instead of 118.4MB. Its int8 is 50.1MB rather than 30.1MB, at identical accuracy. The duplication is pure download cost.
  • A size check alone is not enough, and neither is an accuracy check alone. The broken file passed every accuracy test precisely because it was fp32, and a file that quantised correctly could still be silently degraded. Both gates have to run.

Correction history#

An earlier version of this card reported 0.00% WER and described the evaluation clips as held out. Both were wrong. The clips were selected from the tail of the download, but the corpus had been shuffled before splitting, so they were training data and the score was memorisation.

On 13 August 2026 the int8 ONNX files were replaced with genuinely quantised ones, and the accuracy table above was rewritten. The previous table's int8 row read 100% exact match, which was accurate for the file that was then published and is not accurate for the one published now.

Also on 13 August 2026 the microphone section stopped saying the figure was unmeasured and started giving it. Earlier versions of this card promised a number "when there is a run behind it". There is one now: 69.68%.

Usage#

import { pipeline } from '@huggingface/transformers'
const asr = await pipeline('automatic-speech-recognition',
  'souba67/whisper-tiny-sundanese', { dtype: 'q8' })
const out = await asr(audio, { language: 'su', task: 'transcribe' })

Files

14 files · 347 MBWeights 151 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 14 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md6.86 KBf8d24528efc3ce3852bd3b6a64fe7a2a761ecfbff1dc8e879e1ac12190eb1437
config.json1.32 KBd6abd48ff8ad04d67971d1c9a91183a35f4a1f1d0cb270721e050e9c7e229a1e
generation_config.json3.73 KB67cc50d2e80cce3846f79043dfd32019a48c529f0be91c53611c02172a2b9ac7
model.safetensors151 MBae922a5d081219b03a0b4e28922530c00e72617241654fd3170f022980a076f8
onnx/decoder_model_merged.onnx118 MB0b14c8efac652dc3e65f1d04b5982cc4ee44fee2504eec3e0f734c3839660402
onnx/decoder_model_merged_quantized.onnx30.1 MBd449654067379d5be40920c7e172ab03f44744f0f0a3cc3ad5ed6d5ef5c3052a
onnx/encoder_model.onnx32.9 MB9b90a06ab67facb59eda82415b6f767c795646233911fa63ed32362fdd813535
onnx/encoder_model_quantized.onnx10.1 MB7691957efa96b5907a148b42675ba23534c68dbb279e203e12c8fe71ee53accc
preprocessor_config.json356 B994838f1fa6462c8b9b3c90edada831f11f3dd8b4664634e18f4694d005c9dbf
processor_config.json409 B8c648fa85aafc59a07435ed751322499bd4238b819ca9200ddd2b5ba4df50e68
special_tokens_map.json2.19 KBe67ae3a0aaa99abcd9f187138e12db1f65c16a14761c50ef10eef2c174a7a691
tokenizer.json3.93 MB7b469ff15eb7816315aa45eec391f5943d639b9d73d110f5c003df5192fd54e3
tokenizer_config.json283 KB21a4fc0483c14b87f4e0bbc177a9a357479bfa7c95aaf21ad53d71e9c5afafb9
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
4337c3fc34 pinned now2026-11-15 05:30 UTC14 files · 347 MB

Use it

$ fw get souba67/whisper-tiny-sundanese
# manifest sha256 aab880d0c04f… · 347 MB · 14 files
$ fw verify ./whisper-tiny-sundanese souba67/whisper-tiny-sundanese
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/souba67/whisper-tiny-sundanese.json --dir ./whisper-tiny-sundanese $ python3 fw.py verify ./whisper-tiny-sundanese ./souba67__whisper-tiny-sundanese.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download souba67/whisper-tiny-sundanese --revision 4337c3fc3421553608be4a33aa38821eb617fa6a --local-dir ./whisper-tiny-sundanese
transformersSpeech recognition with the transformers pipeline.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import pipeline asr = pipeline("automatic-speech-recognition", model="souba67/whisper-tiny-sundanese", revision="4337c3fc3421553608be4a33aa38821eb617fa6a") print(asr("audio.wav")["text"])

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
f8d24528efc3ce3852bd3b6a64fe7a2a761ecfbff1dc8e879e1ac12190eb1437
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: souba67 <huggingface.co/souba67>Newsgroups: alt.freeweights.speechSubject: whisper-tiny-sundaneseDate: 2026-11-15Commit: 4337c3fSigned: 2DC28CC7B26A283B ✓
Upstream
souba67/whisper-tiny-sundanese
Pinned commit
4337c3fc3421553608be4a33aa38821eb617fa6a
Manifest
whisper-tiny-sundanese.json · .minisig
Manifest sha256
aab880d0c04fd415a674feb710eb1127afb18acdd2c35e43511bb0426acb9aae
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:30 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/souba67/whisper-tiny-sundanese.json $ curl -O https://freeweights.allternit.com/manifests/souba67/whisper-tiny-sundanese.json.minisig $ minisign -Vm whisper-tiny-sundanese.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

openai/whisper-tiny · this model is a quantization of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download souba67/whisper-tiny-sundanese
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. whisper-tiny-sundanese.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of whisper-tiny-sundanese. Each has its own license check and page.

From: MIT <huggingface.co/MIT>Subject: ast-finetuned-audioset-10-10-0.4593
From: onnx-community <huggingface.co/onnx-community>Subject: ast-finetuned-audioset-10-10-0.4593-ONNX
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Preview-0.6b
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Realistic-Air
From: facebook <huggingface.co/facebook>Subject: audiobox-aesthetics
From: mlx-community <huggingface.co/mlx-community>Subject: chatterbox-4bit