Aller au contenu
ModelPrésentéExterne
Télécharger

Granite Speech 4.1 2b Plus GGUF

GGUF conversions of ibm-granite/granite-speech-4.1-2b-plus for use with transcribe.cpp.

TypeOtherModèle de baseibm-granite/granite-speech-4.1-2b-plusVersionRevision 73e3f3eCClasse

Source du modèle

Type
Other
Taille du fichier
1,58 GB
Modèle de base
ibm-granite/granite-speech-4.1-2b-plus
Version
vRevision 73e3f3e
Mis à jour
27 sept. 2026
Téléchargements
7
Source
Hugging Face

Description de la source

granite-speech-4.1-2b-plus: transcribe.cpp GGUF

GGUF conversions of ibm-granite/granite-speech-4.1-2b-plus for use with transcribe.cpp.

Ported from upstream commit edd3bf5, pinned 2026-05-17. Validated against the Transformers reference at transcribe.cpp commit 275332d on 2026-05-17.

Offline multilingual speech-to-text with word-level timestamps. IBM Granite Speech 4.1-2b-plus is the timestamp-and-diarization variant of the Granite-Speech family. Same architecture as the base 4.1-2b (Conformer encoder, BLIP-2 Q-Former projector, Granite-4.0-1b autoregressive LLM decoder) with two changes: the encoder concatenates mid-layer (idx 3) and final-layer hidden states (cat_hidden_layers=[3], doubling the projector K/V input from 1024 to 2048), and the LM token embeddings are tied with the lm_head. Takes a 16 kHz mono WAV and produces a transcript, with --timestamps word returning structured per-word timestamps (parsed from the model's [T:N] centisecond markers). Transcribes English, French, German, Spanish, and Portuguese (no Japanese on this variant). This variant is transcription-only: unlike the base granite-speech-4.1-2b, it does not perform speech translation.

Downloads

QuantizationDownloadSizeWER (LibriSpeech test-clean)
BF16granite-speech-4.1-2b-plus-BF16.gguf4.23 GB1.49%
F16granite-speech-4.1-2b-plus-F16.gguf4.23 GB1.48%
Q8_0granite-speech-4.1-2b-plus-Q8_0.gguf2.35 GB1.50%
Q6_Kgranite-speech-4.1-2b-plus-Q6_K.gguf1.86 GB1.46%
Q5_K_Mgranite-speech-4.1-2b-plus-Q5_K_M.gguf1.69 GB1.48%
Q4_K_Mgranite-speech-4.1-2b-plus-Q4_K_M.gguf1.49 GB1.56%

WER measured on the full LibriSpeech test-clean split (2620 utterances) with greedy decoding and the model-card chat template (system prompt + leading-space user instruction + add_generation_prompt=True). BF16 reference baseline (re-run locally with that exact prompt): 1.48%; 0.04pp above upstream's published 1.44%, within bootstrap CI overlap and likely a chat-template / normalization difference on the publisher side. Text normalizer: Whisper EnglishTextNormalizer, the same normalizer Open ASR Leaderboard uses. The add_generation_prompt=True is load-bearing — without it the model emits 25-27 empty hypotheses on short test-clean clips and WER blows up to ~26%. The transcribe.cpp runtime hard-codes the prompt correctly; this note only matters if you reproduce the reference.

Usage

Build transcribe.cpp from source:

git clone [email protected]:handy-computer/transcribe.cpp.git
cd transcribe.cpp
cmake -B build && cmake --build build

Run on a 16 kHz mono WAV:

build/bin/transcribe-cli \
  -m granite-speech-4.1-2b-plus-Q8_0.gguf \
  input.wav

If your audio isn't already 16 kHz mono WAV, convert it first:

ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav

See the transcribe.cpp model page for performance numbers, numerical validation, and reproduction steps.

License

Inherited from the base model: Apache-2.0. See the upstream model card for full terms.


Original Model Card

The section below is reproduced from ibm-granite/granite-speech-4.1-2b-plus at commit edd3bf5 for offline reference. The upstream card is the authoritative source.

Granite-Speech-4.1-2B-Plus

Model Summary

Granite-Speech-4.1-2B-Plus has similar capabilities to the Granite-Speech-4.1-2B model. The plus model adds two new community-requested rich transcription features that can be activated with a simple prompt change: speaker-attributed ASR (speaker labels and word transcripts) and word-level timing information. Unlike the base mode, the plus model doesn't provide punctuation and capitalization.

The model was trained on corpora similar to the Granite-Speech-4.1-2B model which were augmented with speaker turns and word-level timestamp tags. This allows the model to provide different modes of functionality controlled by different prompts.

Two additional model variants explore different capabilities and inference optimization:

  • Granite-Speech-4.1-2B for applications where accuracy is the primary concern with support for punctuated, capitalized transcripts, AST and keyword-biased recognition, and includes Japanese.
  • Granite-Speech-4.1-2B-NAR introduces a novel non-autoregressive architecture for higher throughput

ASR only mode

In this mode the model generates only the text transcript similar to the Granite-Speech-4.1-2B model.

Speaker attributed ASR (SAA)

In this mode, the model adds speaker tags in the format of [Speaker N]: where $N$ is the speaker number, before each speaker turn. The speakers are numbered by their order of appearance so the first speaker will always be marked with [Speaker 1]: and the second with [Speaker 2]:, etc. For example: "[Speaker 1]: Hello how are you [Speaker 2]: I'm fine and how are you feeling [Speaker 1]: I feel wonderful".

See Resources for more information about SAA.

Word-level timestamps

In this mode, the model adds timestamp tags after each word indicating the end of the word in the audio. Silences are transcribed as _ and a timestamp tag also indicates their end. The format of the tag is [T:N] where $N$ is an integer number indicating the time in centiseconds (1/100th of a second). To reduce the amount of generated tokens, only the last three digits of $N$ are provided. This causes a rollover after 10 seconds.

The conversion from time $t$ in seconds to timestamp is $N = round(t*100) \mod 1000$. To convert back to seconds, use $t = N/100 + 10R$ where $R$ is the rollover counter. See code below for example implementation in Python.

See Resources for more information about timestamps.

Incremental decoding

There are cases where we want to transcribe a new audio segment along with previous segments that we've already transcribed. This can be useful for providing longer context for the model in order to improve transcription accuracy or to maintain the speaker numbering in SAA mode. To avoid re-decoding the previous segments, we can provide the previous transcription in the prefix_text field of the conversation template. The model will decode the parts after that. See the code below for examples.

Keyword list biasing (KWB)

Keyword list biasing capability is available to enhance the recognition of keywords, such as names and technical terms. This is particularly useful in tasks where complex terms may otherwise be misrecognized. Keyword biasing can be applied by including the keywords directly in the prompt; for example, in ASR mode: Can you transcribe the speech into a written format? Keywords: ...

Users may provide either a single keyword or a list of keywords, which may also include terms that do not appear in the input audio, making them well suited for batch processing or recurring domain-specific use cases.

See Resources for more information about keyword list biasing.

Evaluations

Our evaluations showed that this model works well with audio segments up to 9 minutes long for ASR and SAA, and up to 5 minutes for timestamps.

ASR

Performance on HuggingFace Open ASR leaderboard:

modelAverage WERAMIEarnings22GigaspeechLS CleanLS OtherSPGISpeechTedliumVoxpopuli
ibm-granite/granite-speech-4.1-2b-plus5.718.638.6810.381.443.063.723.895.9
ibm-granite/granite-speech-4.1-2b5.338.098.379.81.332.53.783.075.7
ibm-granite/granite-speech-4.1-2b-nar5.448.038.4410.161.282.773.333.625.86

(Using speculative decoding)

Keyword list biasing accuracy - Keyword F1 score (%, ↑ higher is better):

ModeGigaspeechLS-CLS-OSPGISpeechVOXTED_LIUMEarnings22CV-enCV-deCV-esCV-frCV-pt
Without KWB74.289.178.280.893.987.968.874.678.583.174.590.0
With KWB84.196.193.092.596.394.981.591.592.993.990.695.0

Speaker Attributed ASR

Speaker Attributed ASR performance - WDER (%, ↓ lower is better):

ModelFISHERCALLHOME EnglishAMI-SDMGALE
VibeVoice ASR [1]2.87.127.444.8
Granite-speech-4.1-2b-plus0.92.214.630.2

The results are averaged over 2-5 minute speech segments.

(The evaluation metric: Word Diarization Error Rate [WDER] is the percentage of words attributed to the wrong...

Sources

1 source
Hugging FacePrincipalVersion 73e3f3e3243d41f5e1ab7494f1f84557767bde6f
huggingface.co/memoravox/granite-speech-4.1-2b-plus-gguf/tree/73e3f3e3243d41f5e1ab7494f1f84557767bde6f

Vérifié 30 août

Artefacts du modèle

1 artefact

granite-speech-4.1-2b-plus-Q5_K_M.gguf

gguf · 1,58 GB · SHA-256 3415f2c2d597…2530 · Hugging Face

Télécharger

Extraits de sources

2 extraits

--- license: apache-2.0 base_model: ibm-granite/granite-speech-4.1-2b-plus base_model_relation: quantized library_name: transcribe.cpp pipeline_tag: automatic-speech-recognition language: - en - fr - de - es - pt tags: - gguf - transcribe.cpp - asr - speech-to-text - granite - granite-speech - audio-llm - multilingual - word-timestamps transcribe_cpp: wer_librispeech_test_clean: bf16: 1.49 f16: 1.48 q8_0: 1.5 q6_k: 1.46 q5_k_m: 1.48 q4_k_m: 1.56 rtf_m4_max: metal: 33 cpu: 5.2 rtf_m4: metal: 11 cpu: 5 rtf_ryzen_4750u: vulkan: 2.75 cpu: 1.4 streaming: false translate: false lang_detect: false timestamps: word --- # granite-speech-4.1-2b-plus: transcribe.cpp GGUF GGUF conversions of [ibm-granite/granite-speech-4.1-2b-plus](https://huggingface.co/ibm-granite/granite-speech-4.1-2b-plus) for use with [transcribe.cpp](https://github.com/handy-computer/transcribe.cpp). Ported from upstream commit [edd3bf5](https://huggingface.co/ibm-granite/granite-speech-4.1-2b-plus/commit/edd3bf5), pinned 2026-05-17. Validated against the Transformers reference at transcribe.cpp commit [275332d](https://github.com/handy-computer/transcribe.cpp/tree/275332d) on 2026-05-17. Offline multilingual speech-to-text with word-level timestamps. IBM Granite Speech 4.1-2b-plus is the timestamp-and-diarization variant of the Granite-Speech family. Same architecture as the base 4.1-2b (Conformer encoder, BLIP-2 Q-Former projector, Granite-4.0-1b autoregressive LLM decoder) with two changes: the encoder concatenates mid-layer (idx 3) and final-layer hidden states (`cat_hidden_layers=[3]`, doubling the projector K/V input from 1024 to 2048), and the LM token embeddings are tied with the lm_head. Takes a 16 kHz mono WAV and produces a transcript, with `--timestamps word` returning structured per-word timestamps (parsed from the model's `[T:N]` centisecond markers). Transcribes English, French, German, Spanish, and Portuguese (no Japanese on this variant). This variant is transcription-only: unlike the base granite-speech-4.1-2b, it does not perform speech translation. ## Downloads | Quantization | Download | Size | WER (LibriSpeech test-clean) | | --- | --- | ---: | ---: | | BF16 | [granite-speech-4.1-2b-plus-BF16.gguf](https://huggingface.co/handy-computer/granite-speech-4.1-2b-plus-gguf/resolve/main/granite-speech-4.1-2b-plus-BF16.gguf) | 4.23 GB | 1.49...

Source context: 7 downloads · 0 likes · Pipeline automatic-speech-recognition · Library transcribe.cpp · Repo memoravox/granite-speech-4.1-2b-plus-gguf