alt.freeweights.speech / distil-small.en
From: distil-whisper <huggingface.co/distil-whisper>Newsgroups: alt.freeweights.speechSubject:

distil-small.en

Date: 2026-11-15Commit: 9e4a67cSigned: 2DC28CC7B26A283B ✓

Automatic speech recognition model with 166M parameters. Ggml and onnx and safetensors weights, 5.59 GB in all. Published by distil-whisper under MIT.

166M params5.59GBdistil-small.enggml onnx safetensorspermissive
FactsParams166MSize5.59 GBFormatsggml, onnx, safetensorsTaskautomatic speech recognitionLicenseMITFrom sourcepermissive
$ fw get distil-whisper/distil-small.en
# manifest sha256 8d24ff7493b6… · 5.59 GB · 30 files
$ fw verify ./distil-small.en distil-whisper/distil-small.en
From sourceHosted (signed)distil-whisper/distil-small.enLast check: 2026-11-15 02:45 UTC

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

Works with

Overview

Size
5.59 GB
Weights
997 MB (safetensors)
Parameters
166M
Formats
ggml, onnx, safetensors
Task
automatic speech recognition
License
MIT (permissive)
Files
30, each with a sha256
Publisher
distil-whisper
Added
2026-11-15
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

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 02:45 UTCpassed

Model card

From the publisher at commit 9e4a67c. Shown as plain text with links; images open at the publisher.

Distil-Whisper: distil-small.en#

Distil-Whisper was proposed in the paper Robust Knowledge Distillation via Large-Scale Pseudo Labelling. It is a distilled version of the Whisper model that is 6 times faster, 49% smaller, and performs within 1% WER on out-of-distribution evaluation sets.

This is the repository for distil-small.en, a distilled variant of Whisper small.en. It is the smallest Distil-Whisper checkpoint, with just 166M parameters, making it the ideal choice for memory constrained applications (e.g. on-device).

For most other applications, the distil-medium.en or distil-large-v2 checkpoints are recommended, since they are both faster and achieve better WER results:

ModelParams / MRel. Latency ↑Short-Form WER ↓Long-Form WER ↓
large-v315501.08.411.0
large-v215501.09.111.7
distil-large-v37566.39.710.8
distil-large-v27565.810.111.6
distil-medium.en3946.811.112.4
distil-small.en1665.612.112.8

Note: Distil-Whisper is currently only available for English speech recognition. We are working with the community to distill Whisper on other languages. If you are interested in distilling Whisper in your language, check out the provided training code. We will update the Distil-Whisper repository with multilingual checkpoints when ready!

Why is distil-small.en slower than distil-large-v2?#

While distil-medium.en and distil-large-v2 use two decoder layers each, distil-small.en uses four. Using more decoder layers improves the WER performance of the model, at the expense of slower inference speed. We found that four layers was the minimum required to get reasonable WER performance for distil-small.en, where it performs to within 3% WER of Whisper large-v2 while being 5.6x faster. When we tried distilling with just two layers, the model was over 5% worse than large-v2, albeit 7.8x faster. We leave distilling a two layer small.en model as future works.

Usage#

Distil-Whisper is supported in Hugging Face 🤗 Transformers from version 4.35 onwards. To run the model, first install the latest version of the Transformers library. For this example, we'll also install 🤗 Datasets to load toy audio dataset from the Hugging Face Hub:

pip install --upgrade pip
pip install --upgrade transformers accelerate datasets[audio]
Short-Form Transcription#

The model can be used with the pipeline class to transcribe short-form audio files (< 30-seconds) as follows:

import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_dataset


device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32

model_id = "distil-whisper/distil-small.en"

model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)

processor = AutoProcessor.from_pretrained(model_id)

pipe = pipeline(
    "automatic-speech-recognition",
    model=model,
    tokenizer=processor.tokenizer,
    feature_extractor=processor.feature_extractor,
    max_new_tokens=128,
    torch_dtype=torch_dtype,
    device=device,
)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
sample = dataset[0]["audio"]

result = pipe(sample)
print(result["text"])

To transcribe a local audio file, simply pass the path to your audio file when you call the pipeline:

- result = pipe(sample)
+ result = pipe("audio.mp3")
Long-Form Transcription#

Distil-Whisper uses a chunked algorithm to transcribe long-form audio files (> 30-seconds). In practice, this chunked long-form algorithm is 9x faster than the sequential algorithm proposed by OpenAI in the Whisper paper (see Table 7 of the Distil-Whisper paper).

To enable chunking, pass the chunk_length_s parameter to the pipeline. For Distil-Whisper, a chunk length of 15-seconds is optimal. To activate batching, pass the argument batch_size:

import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_dataset


device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32

model_id = "distil-whisper/distil-small.en"

model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)

processor = AutoProcessor.from_pretrained(model_id)

pipe = pipeline(
    "automatic-speech-recognition",
    model=model,
    tokenizer=processor.tokenizer,
    feature_extractor=processor.feature_extractor,
    max_new_tokens=128,
    chunk_length_s=15,
    batch_size=16,
    torch_dtype=torch_dtype,
    device=device,
)

dataset = load_dataset("distil-whisper/librispeech_long", "default", split="validation")
sample = dataset[0]["audio"]

result = pipe(sample)
print(result["text"])
Speculative Decoding#

Distil-Whisper can be used as an assistant model to Whisper for speculative decoding. Speculative decoding mathematically ensures the exact same outputs as Whisper are obtained while being 2 times faster. This makes it the perfect drop-in replacement for existing Whisper pipelines, since the same outputs are guaranteed.

In the following code-snippet, we load the assistant Distil-Whisper model standalone to the main Whisper pipeline. We then specify it as the "assistant model" for generation:

from transformers import pipeline, AutoModelForSpeechSeq2Seq, AutoProcessor
import torch
from datasets import load_dataset

device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32

assistant_model_id = "distil-whisper/distil-small.en"

assistant_model = AutoModelForSpeechSeq2Seq.from_pretrained(
    assistant_model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
assistant_model.to(device)

model_id = "openai/whisper-medium.en"

model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)

processor = AutoProcessor.from_pretrained(model_id)

pipe = pipeline(
    "automatic-speech-recognition",
    model=model,
    tokenizer=processor.tokenizer,
    feature_extractor=processor.feature_extractor,
    max_new_tokens=128,
    generate_kwargs={"assistant_model": assistant_model},
    torch_dtype=torch_dtype,
    device=device,
)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
sample = dataset[0]["audio"]

result = pipe(sample)
print(result["text"])

Additional Speed & Memory Improvements#

You can apply additional speed and memory improvements to Distil-Whisper which we cover in the following.

Flash Attention#

We recommend using Flash-Attention 2 if your GPU allows for it. To do so, you first need to install Flash Attention:

pip install flash-attn --no-build-isolation

and then all you have to do is to pass use_flash_attention_2=True to from_pretrained:

- model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True)
+ model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True, use_flash_attention_2=True)
Torch Scale-Product-Attention (SDPA)#

If your GPU does not support Flash Attention, we recommend making use of BetterTransformers. To do so, you first need to install optimum:

pip install --upgrade optimum

And then convert your model to a "BetterTransformer" model before using it:

model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True)
+ model = model.to_bettertransformer()
Running Distil-Whisper in openai-whisper#

To use the model in the original Whisper format, first ensure you have the openai-whisper package installed:

pip install --upgrade openai-whisper

The following code-snippet demonstrates how to transcribe a sample file from the LibriSpeech dataset loaded using 🤗 Datasets:

import torch
from datasets import load_dataset
from huggingface_hub import hf_hub_download
from whisper import load_model, transcribe

distil_small_en = hf_hub_download(repo_id="distil-whisper/distil-small.en", filename="original-model.bin")
model = load_model(distil_small_en)

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
sample = dataset[0]["audio"]["array"]
sample = torch.from_numpy(sample).float()

pred_out = transcribe(model, audio=sample)
print(pred_out["text"])

Note that the model weights will be downloaded and saved to your cache the first time you run the example. Subsequently, you can re-use the same example, and the weights will be loaded directly from your cache without having to download them again.

To transcribe a local audio file, simply pass the path to the audio file as the audio argument to transcribe:

pred_out = transcribe(model, audio="audio.mp3")
Whisper.cpp#

Distil-Whisper can be run from the Whisper.cpp repository with the original sequential long-form transcription algorithm. In a provisional benchmark on Mac M1, distil-small.en is over 4x faster than large-v2, while performing to within 1.4% WER over long-form audio.

Steps for getting started:

  1. Clone the Whisper.cpp repository:
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
  1. Download the ggml weights for distil-small.en from the Hugging Face Hub:
python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='distil-whisper/distil-small.en', filename='ggml-distil-small.en.bin', local_dir='./models')"

Note that if you do not have the huggingface_hub package installed, you can also download the weights with wget:

wget https://huggingface.co/distil-whisper/distil-small.en/resolve/main/ggml-distil-small.en.bin -P ./models
  1. Run inference using the provided sample audio:
make -j && ./main -m models/ggml-distil-small.en.bin -f samples/jfk.wav
Transformers.js#

Distil-Whisper can even run completely in your web browser with Transformers.js:

  1. Install Transformers.js from NPM:
npm i @xenova/transformers
  1. Import the library and perform inference with the pipeline API.
import { pipeline } from '@xenova/transformers';

const transcriber = await pipeline('automatic-speech-recognition', 'distil-whisper/distil-small.en');

const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav';
const output = await transcriber(url);
// { text: " And so my fellow Americans, ask not what your country can do for you. Ask what you can do for your country." }

Check out the online Distil-Whisper Web demo to try it out yourself. As you'll see, it runs locally in your browser: no server required!

See the docs for more information.

Candle#

Coming soon!

8bit & 4bit Quantization#

Coming soon!

Model Details#

Distil-Whisper inherits the encoder-decoder architecture from Whisper. The encoder maps a sequence of speech vector inputs to a sequence of hidden-state vectors. The decoder auto-regressively predicts text tokens, conditional on all previous tokens and the encoder hidden-states. Consequently, the encoder is only run forward once, whereas the decoder is run as many times as the number of tokens generated. In practice, this means the decoder accounts for over 90% of total inference time. Thus, to optimise for latency, the focus is on minimising the inference time of the decoder.

To distill the Whisper model, we reduce the number of decoder layers while keeping the encoder fixed. The encoder (shown in green) is entirely copied from the teacher to the student and frozen during training. The student's decoder consists of a subset of the teacher decoder layers, which are intialised from maximally spaced layers. The model is then trained on a weighted sum of the KL divergence and pseudo-label loss terms.

Image: image

Evaluation#

The following code-snippets demonstrates how to evaluate the Distil-Whisper model on the LibriSpeech validation.clean dataset with streaming mode, meaning no audio data has to be downloaded to your local device.

First, we need to install the required packages, including 🤗 Datasets to stream and load the audio data, and 🤗 Evaluate to perform the WER calculation:

pip install --upgrade pip
pip install --upgrade transformers datasets[audio] evaluate jiwer

Evaluation can then be run end-to-end with the following example:

from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
from transformers.models.whisper.english_normalizer import EnglishTextNormalizer
from datasets import load_dataset
from evaluate import load
import torch
from tqdm import tqdm

# define our torch configuration
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32

model_id = "distil-whisper/distil-small.en"

# load the model + processor
model =  AutoModelForSpeechSeq2Seq.from_pretrained(model_id, torch_dtype=torch_dtype, use_safetensors=True, low_cpu_mem_usage=True)
model = model.to(device)
processor = AutoProcessor.from_pretrained(model_id)

# load the dataset with streaming mode
dataset = load_dataset("librispeech_asr", "clean", split="validation", streaming=True)

# define the evaluation metric
wer_metric = load("wer")
normalizer = EnglishTextNormalizer(processor.tokenizer.english_spelling_normalizer)

def inference(batch):
    # 1. Pre-process the audio data to log-mel spectrogram inputs
    audio = [sample["array"] for sample in batch["audio"]]
    input_features = processor(audio, sampling_rate=batch["audio"][0]["sampling_rate"], return_tensors="pt").input_features
    input_features = input_features.to(device, dtype=torch_dtype)
    
    # 2. Auto-regressively generate the predicted token ids
    pred_ids = model.generate(input_features, max_new_tokens=128)
    
    # 3. Decode the token ids to the final transcription
    batch["transcription"] = processor.batch_decode(pred_ids, skip_special_tokens=True)
    batch["reference"] = batch["text"]
    return batch

dataset = dataset.map(function=inference, batched=True, batch_size=16)

all_transcriptions = []
all_references = []

# iterate over the dataset and run inference
for i, result in tqdm(enumerate(dataset), desc="Evaluating..."):
    all_transcriptions.append(result["transcription"])
    all_references.append(result["reference"])

# normalize predictions and references
all_transcriptions = [normalizer(transcription) for transcription in all_transcriptions]
all_references = [normalizer(reference) for reference in all_references]

# compute the WER metric
wer = 100 * wer_metric.compute(predictions=all_transcriptions, references=all_references)
print(wer)

Print Output:

3.4326070294536297

Intended Use#

Distil-Whisper is intended to be a drop-in replacement for Whisper on English speech recognition. In particular, it achieves comparable WER results over out-of-distribution test data, while being 6x faster over both short and long-form audio.

Data#

Distil-Whisper is trained on 22,000 hours of audio data from 9 open-source, permissively licensed speech datasets on the Hugging Face Hub:

DatasetSize / hSpeakersDomainLicence
People's Speech12,000unknownInternet ArchiveCC-BY-SA-4.0
Common Voice 133,000unknownNarrated WikipediaCC0-1.0
GigaSpeech2,500unknownAudiobook, podcast, YouTubeapache-2.0
Fisher1,96011,900Telephone conversationsLDC
LibriSpeech9602,480AudiobooksCC-BY-4.0
VoxPopuli5401,310European ParliamentCC0
TED-LIUM4502,030TED talksCC-BY-NC-ND 3.0
SwitchBoard260540Telephone conversationsLDC
AMI100unknownMeetingsCC-BY-4.0
Total21,77018,260+

The combined dataset spans 10 distinct domains and over 50k speakers. The diversity of this dataset is crucial to ensuring the distilled model is robust to audio distributions and noise.

The audio data is then pseudo-labelled using the Whisper large-v2 model: we use Whisper to generate predictions for all the audio in our training set and use these as the target labels during training. Using pseudo-labels ensures that the transcriptions are consistently formatted across datasets and provides sequence-level distillation signal during training.

WER Filter#

The Whisper pseudo-label predictions are subject to mis-transcriptions and hallucinations. To ensure we only train on accurate pseudo-labels, we employ a simple WER heuristic during training. First, we normalise the Whisper pseudo-labels and the ground truth labels provided by each dataset. We then compute the WER between these labels. If the WER exceeds a specified threshold, we discard the training example. Otherwise, we keep it for training.

Section 9.2 of the Distil-Whisper paper demonstrates the effectiveness of this filter for improving downstream performance of the distilled model. We also partially attribute Distil-Whisper's robustness to hallucinations to this filter.

Training#

The model was trained for 50,000 optimisation steps (or 12 epochs) with batch size 2056. The Tensorboard training logs can be found under: https://huggingface.co/distil-whisper/distil-small.en/tensorboard?params=scalars#frame

Results#

The distilled model performs to within 1% WER of Whisper on out-of-distribution (OOD) short-form audio, and outperforms Whisper by 0.1% on OOD long-form audio. This performance gain is attributed to lower hallucinations.

For a detailed per-dataset breakdown of the evaluation results, refer to Tables 16 and 17 of the Distil-Whisper paper

Distil-Whisper is also evaluated on the ESB benchmark datasets as part of the OpenASR leaderboard, where it performs to within 0.2% WER of Whisper.

Reproducing Distil-Whisper#

Training and evaluation code to reproduce Distil-Whisper is available under the Distil-Whisper repository: https://github.com/huggingface/distil-whisper/tree/main/training

License#

Distil-Whisper inherits the MIT license from OpenAI's Whisper model.

Citation#

If you use this model, please consider citing the Distil-Whisper paper:

@misc{gandhi2023distilwhisper,
      title={Distil-Whisper: Robust Knowledge Distillation via Large-Scale Pseudo Labelling}, 
      author={Sanchit Gandhi and Patrick von Platen and Alexander M. Rush},
      year={2023},
      eprint={2311.00430},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

Acknowledgements#

Files

30 files · 5.59 GBWeights 997 MB (safetensors). Sizes and sha256 from the signed manifest.
Show all 30 files with their sha256
FileSizesha256
.eval_results/open_asr_leaderboard.yaml2.14 KB665de25c519c1239e91c94c0e5064a41cf04412b70ff6de4ddeccb6b335f1805
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md26.0 KB4ba2ff9d83dc885bf781d24d4c93d51c7ee3e8ae01f01d0f9b095d170fb0b7cb
added_tokens.json34.6 KB560be47bea388757f8d4cc185c5d82067426cbb6361e38016dd90ddc01ab203a
config.json2.26 KB077f053cb2c0f7163dd04048546a3588d55c2abce3055d5d119f5b2e2ef7bd73
generation_config.json1.92 KBdbb04007611af5ae0a7557f4392e8d9c37f149e33685f457765f6a522249f3db
ggml-distil-small.en.bin336 MB7691eb11167ab7aaf6b3e05d8266f2fd9ad89c550e433f86ac266ebdee6c970a
ggml-distil-small.en.fp32.bin665 MB5fe36f7a61b2d350672401b178a56d47f5c4983968d3926ddca059dfc8dc9e67
merges.txt456 KB1ce1664773c50f3e0cc8842619a93edc4624525b728b188a9e0be33b7726adc5
model.fp32.safetensors665 MB73ace7d54a06f532ddb8a865488a061eea97093e7931d26c5e2dd90daeeaaf1b
model.safetensors332 MBb1312c5e27c750ea877235ae51b47b9b42d1298d17d387bec4b58a00fe644f50
normalizer.json52.7 KBbf1c507dc8724ca9cf9903640dacfb69dae2f00edee4f21ceba106a7392f26dd
onnx/decoder_model.onnx312 MBe66463191601bbd1cad460433dfba364b6a329a6370b6f92aabdcea21fdb2729
onnx/decoder_model_merged.onnx312 MBb0dbb4be7ad95608c78e95e40aeeaa295318eeecfe2ba2ee62173016f083fa18
onnx/decoder_model_merged_quantized.onnx79.8 MBc9b2f6ad89dfded7c52f2744accb15a413c425ba339ca560fd88d1c6187d6b43
onnx/decoder_model_quantized.onnx79.5 MBc975f0f8d12abc14584d385dd66f0fd47b9aa37dcde2c72e73596b2c9e8563d3
onnx/decoder_with_past_model.onnx293 MBd29285fd429c1d6c4bde447048190a0dc9f87f8023aa3b128b08b1dea5751181
onnx/decoder_with_past_model_quantized.onnx74.7 MBf3ff77a9ab54987d2cef3a951142489c3a1125f2876e940c62bcc97ce0127d5e
onnx/encoder_model.onnx353 MBa4965e975c7a3fdd353d00228fba9a1a02ffc4aebc279219b2b27b11b360ce9f
onnx/encoder_model_quantized.onnx92.3 MB3b5945b90be2ae313f688f5f8b2ccc28626961a423adcc1dabc0c3c5dcdaac99
original-model.bin332 MB2935bcbfe2eb807e3c8cc1817054d814ca342e7872d4a8e5ad700fcdcdf353de
original-model.fp32.bin665 MB15ef9cdbfb4ab85c93c7620a71b869127cfc6feacbd13551c3afe7df3e3e7eea
preprocessor_config.json339 Ba6a76d28c93edb273669eb9e0b0636a2bddbb1272c3261e47b7ca6dfdbac1b8d
pytorch_model.bin332 MBf1b67c5ed4359d67d30a373bd619a33daa95e497ab177b588450a0cd6a442462
pytorch_model.fp32.bin665 MB0c4489cfd5f9daae6606c8b0d72a2983d1085a36f8d4e14c32a0cb45dcc656d6
runs/events.out.tfevents.1701442148.t1v-n-10629e19-w-0.36003.0.v2726 KB3fdf522f1ef1e7a64250c11b3688b9203c968e2430059369d932e8f64e9c76d6
special_tokens_map.json2.17 KBc6cbecbafaaab9c96b863e3db6739b97cfcbba85705a67f0eeac6eb3d10e86a9
tokenizer.json2.41 MBc9c77688528c0509abbd41873edab16384b8f041531b1d3092ab4d1d83a02a50
tokenizer_config.json282 KBa1df3522291588718cf9de70cb1b9f3cd39915a2eb4748353b071023a01d73ac
vocab.json999 KBf6bd25a65e4e63ca31360e9fb11c7e4f9a391a78385d640acd814092dd6eee4f
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
9e4a67ca45 pinned now2026-11-15 02:45 UTC30 files · 5.59 GB

Use it

$ fw get distil-whisper/distil-small.en
# manifest sha256 8d24ff7493b6… · 5.59 GB · 30 files
$ fw verify ./distil-small.en distil-whisper/distil-small.en
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/distil-whisper/distil-small.en.json --dir ./distil-small.en $ python3 fw.py verify ./distil-small.en ./distil-whisper__distil-small.en.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download distil-whisper/distil-small.en --revision 9e4a67ca4569c30be43a3fe7fba1621e504f0093 --local-dir ./distil-small.en
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="distil-whisper/distil-small.en", revision="9e4a67ca4569c30be43a3fe7fba1621e504f0093") print(asr("audio.wav")["text"])

License

Name
MIT License
Id
MIT
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
4ba2ff9d83dc885bf781d24d4c93d51c7ee3e8ae01f01d0f9b095d170fb0b7cb
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: distil-whisper <huggingface.co/distil-whisper>Newsgroups: alt.freeweights.speechSubject: distil-small.enDate: 2026-11-15Commit: 9e4a67cSigned: 2DC28CC7B26A283B ✓
Upstream
distil-whisper/distil-small.en
Pinned commit
9e4a67ca4569c30be43a3fe7fba1621e504f0093
Manifest
distil-small.en.json · .minisig
Manifest sha256
8d24ff7493b6a5366cf6374b36cee73d6096d4091b84c299c60840ad518907d8
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:45 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/distil-whisper/distil-small.en.json $ curl -O https://freeweights.allternit.com/manifests/distil-whisper/distil-small.en.json.minisig $ minisign -Vm distil-small.en.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

2 models in the catalog name this one as their parent.

Quantizations
2
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download distil-whisper/distil-small.en
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. distil-small.en.json. Provenance. Takedown history: none.

Variants

2 quantized or adapter builds of distil-small.en. 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