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

kb-whisper-small

Date: 2026-11-15Commit: 3564d61Signed: 2DC28CC7B26A283B ✓

Automatic speech recognition model with 282M parameters. Ctranslate2 and ggml and onnx and safetensors weights, 9.95 GB in all. Published by KBLab under Apache-2.0.

282M params9.95GBkb-whisper-smallctranslate2 ggml onnx safetensorspermissive
FactsParams282MSize9.95 GBFormatsctranslate2, ggml, onnx, safetensorsTaskautomatic speech recognitionLicenseApache-2.0From sourcepermissive
$ fw get KBLab/kb-whisper-small
# manifest sha256 54bae3067983… · 9.95 GB · 49 files
$ fw verify ./kb-whisper-small KBLab/kb-whisper-small
From sourceHosted (signed)KBLab/kb-whisper-smallLast check: 2026-11-15 04:52 UTC

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

Quantized of whisper-small.

Works with

Overview

Size
9.95 GB
Weights
563 MB (safetensors)
Parameters
282M
Formats
ctranslate2, ggml, onnx, safetensors
Task
automatic speech recognition
License
Apache-2.0 (permissive)
Files
49, each with a sha256
Publisher
KBLab
Added
2026-11-15
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

Base model: openai/whisper-small

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 04:52 UTCpassed

Model card

From the publisher at commit 3564d61. Shown as plain text with links; images open at the publisher.

KB-Whisper Small#

The National Library of Sweden releases a new suite of Whisper models trained on over 50,000 hours of Swedish speech. In evaluations across FLEURS, CommonVoice and NST, our best performing model reduces the Word Error Rate (WER) by an average of 47% compared to OpenAI's whisper-large-v3. The performance of smaller Whisper model sizes on Swedish speech has also substantially improved, with kb-whisper-small outperforming openai/whisper-large-v3 (a model six times its size).

Model sizeFLEURSCommonVoiceNST
tinyKBLab13.212.911.2
OpenAI59.267.885.2
baseKBLab9.18.77.8
OpenAI39.652.153.4
smallKBLab7.36.46.6
OpenAI20.626.426.4
mediumKBLab6.65.45.8
OpenAI12.115.817.1
large-v3KBLab5.44.15.2
OpenAI7.89.511.3

Table: Word Error Rate (WER) comparison between KBLab's Whisper models and the corresponding OpenAI versions.

Usage#

We provide checkpoints in different formats: Hugging Face, whisper.cpp (GGML), onnx, and ctranslate2 (used in faster-whisper and WhisperX).

2025-05-13 Update!#

The default when loading our models through Hugging Face is Stage 2. As of May 2025 there exists two Stage 2 versions in addition to the default, namely Subtitle and Strict that specify the transcription style. By specifying revision="subtitle" in .from_pretrained() the model version with a more condensed style of transcribing is accessed. By specifying revision="strict" in .from_pretrained() the more verbatim-like version of the model is accessed. Below is an example of how this argument is passed in the .from_pretrained() function

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

device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
model_id = "KBLab/kb-whisper-small"
model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id, torch_dtype=torch_dtype, use_safetensors=True, cache_dir="cache", revision="strict"
)

The verbosity of the transcription styles of the three model versions ranges from the least verbose Subtitle, to Stage 2 (default) to the most verbose Strict.

Hugging Face#

Inference example for using KB-Whisper with Hugging Face:

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

device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
model_id = "KBLab/kb-whisper-small"

model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id, torch_dtype=torch_dtype, use_safetensors=True, cache_dir="cache"
)
model.to(device)
processor = AutoProcessor.from_pretrained(model_id)

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

generate_kwargs = {"task": "transcribe", "language": "sv"}
# Add return_timestamps=True for output with timestamps
res = pipe("audio.mp3", 
           chunk_length_s=30,
           generate_kwargs={"task": "transcribe", "language": "sv"})
print(res)
Faster-whisper#

Faster-whisper provides fast and efficient inference via a reimplementation of Whisper using ctranslate2.

#### faster-whisper model ####
from faster_whisper import WhisperModel

model_id = "KBLab/kb-whisper-small"
model = WhisperModel(
    model_id,
    device="cuda",
    compute_type="float16",
    download_root="cache", # cache directory
    # condition_on_previous_text = False # Can reduce hallucinations if we don't use prompts
)

# Transcribe audio.wav (convert to 16khz mono wav first via ffmpeg)
segments, info = model.transcribe("audio.wav", condition_on_previous_text=False)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
WhisperX#

WhisperX provides a convenient method of getting accurate word level timestamps. The library combines (force aligns) the text output of Whisper with the accurate timestamps of Wav2vec2. We provide an example below of how to use KB-Whisper together with KBLab/wav2vec2-large-voxrex-swedish.

import whisperx

device = "cuda"
audio_file = "audio.wav"
batch_size = 16  # reduce if low on GPU mem
compute_type = "float16"  # change to "int8" if low on GPU mem (may reduce accuracy)

# 1. Transcribe with original whisper (batched)
model = whisperx.load_model(
    "KBLab/kb-whisper-small", device, compute_type=compute_type, download_root="cache"  # cache_dir
)

audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
print(result["segments"])  # before alignment

# delete model if low on GPU resources
# import gc; gc.collect(); torch.cuda.empty_cache(); del model

# 2. Align whisper output
model_a, metadata = whisperx.load_align_model(
    language_code=result["language"],
    device=device,
    model_name="KBLab/wav2vec2-large-voxrex-swedish",
    model_dir="cache",  # cache_dir
)
result = whisperx.align(
    result["segments"], model_a, metadata, audio, device, return_char_alignments=False
)

print(result["segments"])  # word level timestamps after alignment
Whisper.cpp / GGML#

We provide GGML checkpoints used in the apps whisper.cpp and MacWhisper. To use our model with whisper.cpp first clone the repository and build the library:

git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
cmake -B build
cmake --build build --config Release

To use the model you need to download one of the GGML checkpoints we have uploaded. You can either press the download buttons here, or download using wget:

wget https://huggingface.co/KBLab/kb-whisper-small/resolve/main/ggml-model-q5_0.bin # Quantized version
# wget https://huggingface.co/KBLab/kb-whisper-small/resolve/main/ggml-model.bin # Non-quantized version

Run inference by specifying the model path after the argument -m, along with the path to the audio file as the last positional argument.

./build/bin/whisper-cli -m ggml-model-q5_0.bin ../audio.wav
onnx (optimum) and transformers.js usage#

You can use the onnx checkpoints via Hugging Face's optimum library in the following manner:

from optimum.onnxruntime import ORTModelForSpeechSeq2Seq
from transformers import AutoProcessor

model_id = "KBLab/kb-whisper-small"
processor = AutoProcessor.from_pretrained(model_id, cache_dir="cache")
model = ORTModelForSpeechSeq2Seq.from_pretrained(
    model_id,
    cache_dir="cache",
    subfolder="onnx",
)

import soundfile as sf
audio = sf.read("audio.wav")

inputs = processor.feature_extractor(audio[0], sampling_rate=16000, return_tensors="pt")
gen_tokens = model.generate(**inputs, max_length=300)
processor.decode(gen_tokens[0], skip_special_tokens=True)

An example of an app that runs inference locally in the browser with transformers.js and KB-Whisper can be found at https://whisper.mesu.re/ (created by Pierre Mesure). A template for setting up such an app with javascript can be found at https://github.com/xenova/whisper-web.

Training data#

Our models have been trained on over 50,000 hours of Swedish audio with text transcriptions. The models were trained in 2 stages, each characterized by the application of different quality filters and thresholds for said filters.

Stage 1 employed low threshold values (0 to 0.30 BLEU depending on dataset), whereas Stage 2 used stricter thresholds (BLEU >= 0.7, weighted ROUGE-N >= 0.7, CER of first and last 10 characters <= 0.2).

DatasetContinued pretraining (h) -- Stage 1Finetuning (h) -- Stage 2
Subtitles34,2613,110
Riksdag21,9495,119
ISOF5454
NST250250
Total56,5148,533

The default when loading our models through Hugging Face is Stage 2. We have however also uploaded continued pretraining checkpoints and tagged them. You can load these other checkpoints by specifying the revision in .from_pretrained(). The pretrained checkpoints tag can for example be found here: pretrained-checkpoint. The Stage 2 default model tag is named standard. We supply two different stage 2 checkpoints -- one with a more condensed style of transcribing -- under the name subtitle, and one more verbose called strict.

Evaluation#
WER compared to OpenAI#
Model sizeFLEURSCommonVoiceNST
tinyKBLab13.212.911.2
OpenAI59.267.885.2
baseKBLab9.18.77.8
OpenAI39.652.153.4
smallKBLab7.36.46.6
OpenAI20.626.426.4
mediumKBLab6.65.45.8
OpenAI12.115.817.1
large-v3KBLab5.44.15.2
OpenAI7.89.511.3
WER for different KBLab stage2 versions#
Model sizeFLEURSCommonVoiceNST
tinystandard13.212.911.2
strict14.113.411.0
subtitle13.312.911.4
basestandard9.18.77.8
strict10.49.68.4
subtitle9.18.77.9
smallstandard7.36.46.6
strict8.27.06.7
subtitle7.36.46.6
mediumstandard6.65.45.8
strict6.85.46.0
large-v3standard5.44.15.2
strict5.34.05.1
subtitle5.34.15.3
BLEU Score compared to OpenAI#
Model sizeFLEURSCommonVoiceNST
tinyKBLab76.673.774.3
OpenAI26.921.124.0
baseKBLab83.279.978.3
OpenAI41.132.536.9
smallKBLab86.683.579.6
OpenAI64.056.558.2
mediumKBLab87.685.080.2
OpenAI77.170.168.9
large-v3KBLab89.887.281.1
OpenAI84.979.175.1
BLEU Score for different KBLab stage2 versions#
Model sizeFLEURSCommonVoiceNST
tinystandard76.673.774.3
strict75.372.974.6
subtitle76.673.774.1
basestandard83.279.978.3
strict81.078.477.5
subtitle83.279.878.2
smallstandard86.683.579.6
strict84.982.479.3
subtitle86.683.579.6
mediumstandard87.685.080.2
strict87.384.980.1
large-v3standard89.887.281.1
strict90.087.481.2
subtitle89.887.381.0
Acknowledgements#

We acknowledge the EuroHPC Joint Undertaking for awarding this project access to the EuroHPC supercomputer LEONARDO, hosted by CINECA (Italy) and the LEONARDO consortium through an EuroHPC AI and Data-Intensive Applications Access call.

Citation#

KB-Whisper is a product of KBLab of the National Library of Sweden. Key contributors include Faton Rekathati, Justyna Sikora, Robin Kurtz, Agnes Toftgård, and Leonora Vesterbacka, under the direction of Love Börjeson. Please refer to the following paper if you want to cite our work with KB-Whisper.

Vesterbacka, L., Rekathati, F., Kurtz, R., Sikora, J., Toftgård, A. (2025) Swedish Whispers; Leveraging a Massive Speech Corpus for Swedish Speech Recognition. Proc. Interspeech 2025, 758-762, doi: 10.21437/Interspeech.2025-2646

Bibtex citation:

@inproceedings{vesterbacka25_interspeech,
  title     = {{Swedish Whispers; Leveraging a Massive Speech Corpus for Swedish Speech Recognition}},
  author    = {{Leonora Vesterbacka and Faton Rekathati and Robin Kurtz and Justyna Sikora and Agnes Toftgård}},
  year      = {{2025}},
  booktitle = {{Interspeech 2025}},
  pages     = {{758--762}},
  doi       = {{10.21437/Interspeech.2025-2646}},
  issn      = {{2958-1796}},
}

You can find our Interspeech 2025 article here, and the arXiv preprint here.

Files

49 files · 9.95 GBWeights 563 MB (safetensors). Sizes and sha256 from the signed manifest.
Show all 49 files with their sha256
FileSizesha256
.gitattributes1.56 KBfed72a9ba9b479e726fe88b464334bceab4fce3b2ccd9c543025ea968dd74489
README.md16.4 KB58dd271c90b1c4d7ab20af26afd267425ab4da1467a480e8c09f26d20b05fa17
added_tokens.json34.6 KB9715fd2243b6f06a5858b5e32950d2853f73dd5bc201aafcf76f5082a2d8acd1
config.json3.69 KB140db3a6a718f234e0b6ddbd12841fde9180b97b8689840601d4f4acc8c1d4e1
generation_config.json3.91 KB90d06484338974d48edd3c047c304e139e978d1b2b8fd6eef129f4261f52f12f
ggml-model-q5_0.bin175 MB6768836a51abc902e420c613153e6d418c90ea2774e913274d02ab23170225b7
ggml-model.bin488 MBde6911330cbdc131362f7a955682b65c8a5a2394caba73e7ea821a9822efb8c6
merges.txt494 KB2df2990a395e35e8dfbc7511e08c12d56018d8d04691e0133e5d63b21e154dc6
model.bin484 MB58bf16e6878108f898c4db7983d0f4ec01c4891500f7a2b3a2c9ce98b3c0029d
model.safetensors563 MB4fe050cc61ebda02dacb2a0fd90bb5ae61300656d9339ca6107aeb53c69594da
normalizer.json52.7 KBbf1c507dc8724ca9cf9903640dacfb69dae2f00edee4f21ceba106a7392f26dd
onnx/decoder_model.onnx615 MB4e902362f6b7620908cb3ae7fb1a951c6a39657212e4014a56ad31e7eae86a6a
onnx/decoder_model_bnb4.onnx225 MBab97075e195c02f23fcc9a3ac4bd611c71256744fdc4b485f4f64b781454e52f
onnx/decoder_model_fp16.onnx308 MBb2d3327be6549a7a3608343d1958c8db2c83e57a00a4333847c1031a065e160a
onnx/decoder_model_int8.onnx314 MB2cf732fb4ca5cd970e5d2aee197fb2c83ac858357a3f79f838768360c7e3a34f
onnx/decoder_model_merged.onnx615 MB87c94c99f8df96fd0ca57056a45a3239a12ef284cc8f396e0234ad6fc1e332b3
onnx/decoder_model_merged_bnb4.onnx226 MBa57b8e86007cf002a34a92c2bbb45332ddb4655142de6861c5579ec63365195c
onnx/decoder_model_merged_fp16.onnx308 MBa46ed110545acf0c76b81162abf04ccb59994a1a999a792fb3e4a1560b8ee06e
onnx/decoder_model_merged_int8.onnx314 MBd086c6efe30770ed137621c7999145cc757c171306a0e392cb7bb438ac4a08f0
onnx/decoder_model_merged_q4.onnx233 MB53c640039b015cff7488c331b07633d0cc8b3c83c7366ffd438fad6a23731cce
onnx/decoder_model_merged_q4f16.onnx145 MBa863f00364adb1ac6c77f5751c6a47fcdd16944bf6743813693b13aead43b70e
onnx/decoder_model_merged_quantized.onnx314 MBd086c6efe30770ed137621c7999145cc757c171306a0e392cb7bb438ac4a08f0
onnx/decoder_model_merged_uint8.onnx314 MB4064f54539a039283a9320b08ce2459597e9d1be9a2e1895a6bbc736bee2ad56
onnx/decoder_model_q4.onnx233 MBbe5dc085699246a9573c7c385eda8fe963cf08ace3b996b936c3370a029afe3c
onnx/decoder_model_q4f16.onnx145 MBe328baa2bf2933ea965c2c9656b9e98d11835c3b454ca87f7bafacff451cfe5b
onnx/decoder_model_quantized.onnx314 MB2cf732fb4ca5cd970e5d2aee197fb2c83ac858357a3f79f838768360c7e3a34f
onnx/decoder_model_uint8.onnx314 MB8a650f92ca0fd10ac68c37cd0230da1424ead16055b1a2a5ee6bc6338ca77406
onnx/decoder_with_past_model.onnx558 MB8657a88e25fbfb427950bade5bb2db0b8e35d7c53f01f962c03d8f8450dbceef
onnx/decoder_with_past_model_bnb4.onnx217 MBf0e9d568835a11466cd7677ffbd8b04b26144e0a5aa69d9792999419a6d1cf67
onnx/decoder_with_past_model_fp16.onnx279 MB0c3a99c9a86369ead41b48ad22c305c03ea2873a5213d001b4a198ee129752c8
onnx/decoder_with_past_model_int8.onnx300 MB92908393fb3dcff53b245d120e7a08dec3b3bd323ec9072785964d7d9a4319f5
onnx/decoder_with_past_model_q4.onnx224 MB3ab6ed028b07f138c3d6718f1ca2052fd0772997e671e691238bae463e843872
onnx/decoder_with_past_model_q4f16.onnx137 MBb61fd8edcde50814f30d5f9305e5ebfcf0830c07cdc443920686ec4e23f4bca9
onnx/decoder_with_past_model_quantized.onnx300 MB92908393fb3dcff53b245d120e7a08dec3b3bd323ec9072785964d7d9a4319f5
onnx/decoder_with_past_model_uint8.onnx300 MB6adef1c936d91211ce9889cdf6c9733821c1a7bd92d0c9994c3b1b5525b9f5a2
onnx/encoder_model.onnx353 MB3048224c992ea7169928099eb05046e9a3bff25a208b309569799a8ca104dfca
onnx/encoder_model_bnb4.onnx60.8 MB4364389adf79bbe2ed042b1e7c635c0e098084fc0b907c9bc698e638306a2d9a
onnx/encoder_model_fp16.onnx176 MB8610b97785df792691d8997aaf21d27dbc85c842a32a287bcb8ab0852ecfe9e7
onnx/encoder_model_int8.onnx92.2 MBbb7931e5a37a93b1f924e11df63397721926011fb5091153222f49e040814280
onnx/encoder_model_q4.onnx66.1 MBcc4276e0b7111038627f7aeeb145f169bc03a23e099d6a43154e8a90c3cf64bb
onnx/encoder_model_q4f16.onnx54.4 MB816ae97131198acbb278379a48615ba8aee739d5324d3339c0b4e078ab878788
onnx/encoder_model_quantized.onnx92.2 MB61b11cc46d251167fbeb6e423b9d4da8672f14e175afbd974204e534c61652a7
onnx/encoder_model_uint8.onnx92.2 MB61b11cc46d251167fbeb6e423b9d4da8672f14e175afbd974204e534c61652a7
preprocessor_config.json339 Ba6a76d28c93edb273669eb9e0b0636a2bddbb1272c3261e47b7ca6dfdbac1b8d
special_tokens_map.json2.19 KBe67ae3a0aaa99abcd9f187138e12db1f65c16a14761c50ef10eef2c174a7a691
tokenizer.json3.93 MBb2eda7f36f7ca45f3be94a568f1623453b4246083013dfe5db3fe43b9b35dd1b
tokenizer_config.json283 KB053e40687c8ad71e74ebab784a129d88b3e768ac156880d8542610b9153af307
vocab.json836 KB8f680bba319e01a653d2e8a5dbc17a9157179e0576e6ce74ce0c06356c6e24f9
vocabulary.json1.07 MB5ad28279db5e546349708b9a74736e2c018737ac5a600f1048f1f26c99b85b47
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
3564d61a42 pinned now2026-11-15 04:52 UTC49 files · 9.95 GB

Use it

$ fw get KBLab/kb-whisper-small
# manifest sha256 54bae3067983… · 9.95 GB · 49 files
$ fw verify ./kb-whisper-small KBLab/kb-whisper-small
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/KBLab/kb-whisper-small.json --dir ./kb-whisper-small $ python3 fw.py verify ./kb-whisper-small ./KBLab__kb-whisper-small.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download KBLab/kb-whisper-small --revision 3564d61a42fc210ceaa55a22a96dd64478959c78 --local-dir ./kb-whisper-small
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="KBLab/kb-whisper-small", revision="3564d61a42fc210ceaa55a22a96dd64478959c78") 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
58dd271c90b1c4d7ab20af26afd267425ab4da1467a480e8c09f26d20b05fa17
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: KBLab <huggingface.co/KBLab>Newsgroups: alt.freeweights.speechSubject: kb-whisper-smallDate: 2026-11-15Commit: 3564d61Signed: 2DC28CC7B26A283B ✓
Upstream
KBLab/kb-whisper-small
Pinned commit
3564d61a42fc210ceaa55a22a96dd64478959c78
Manifest
kb-whisper-small.json · .minisig
Manifest sha256
54bae3067983acd2cdaf02899fcf46e27688fcbfda8fd8026b48013029afb190
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:52 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/KBLab/kb-whisper-small.json $ curl -O https://freeweights.allternit.com/manifests/KBLab/kb-whisper-small.json.minisig $ minisign -Vm kb-whisper-small.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-small · 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 KBLab/kb-whisper-small
Open in Freeweights Studio

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

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

Variants

1 quantized or adapter build of kb-whisper-small. 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