Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -559,4 +559,4 @@ Ettore Di Giacinto ([@mudler](https://github.com/mudler)).

## License

parakeet.cpp is released under the [MIT License](LICENSE). The model weights are governed by the licenses of the original models, so check each model card on HuggingFace. The NVIDIA Parakeet models are mostly CC-BY-4.0 (nemotron-3.5-asr-streaming is OpenMDW-1.1). Moondream's [parakeet-ultra](https://huggingface.co/moondream/parakeet-ultra) and [parakeet-redux](https://huggingface.co/moondream/parakeet-redux) are CC-BY-4.0 too: credit Moondream and NVIDIA ([parakeet-tdt-0.6b-v3](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3)), link the [license](https://creativecommons.org/licenses/by/4.0/), and note that GGUF files made here are converted (and quantized, or dequantized for Redux) copies, not retrained models.
parakeet.cpp is released under the [MIT License](LICENSE). The model weights are governed by the licenses of the original models, so check each model card on HuggingFace. The NVIDIA Parakeet models are mostly CC-BY-4.0 (nemotron-3.5-asr-streaming and Nemotron-3-Diarization are OpenMDW-1.1, parakeet_realtime_eou_120m-v1 is the NVIDIA Open Model License, and the Silero VAD files are MIT). See [docs/licenses.md](docs/licenses.md) for the full table. Moondream's [parakeet-ultra](https://huggingface.co/moondream/parakeet-ultra) and [parakeet-redux](https://huggingface.co/moondream/parakeet-redux) are CC-BY-4.0 too: credit Moondream and NVIDIA ([parakeet-tdt-0.6b-v3](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3)), link the [license](https://creativecommons.org/licenses/by/4.0/), and note that GGUF files made here are converted (and quantized, or dequantized for Redux) copies, not retrained models.
38 changes: 38 additions & 0 deletions docs/licenses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Model licences

The GGUF files published at `mudler/parakeet-cpp-gguf` are converted from other
people's models, so each file family keeps the licence of its source model. The
parakeet.cpp code is MIT-licensed.

This table is the reference for `scripts/publish_hf.py`. The script has no default
licence: a model id that is missing from its `LICENSES` table is an error. The
check `tests/python/check_publish_hf_licences.py` (and
`python3 scripts/publish_hf.py --check-licences`) fails when this table and the
script differ, so change both together.

| Source checkpoint | Licence | Licence text | Notice to keep |
|---|---|---|---|
| `moondream/parakeet-redux` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `moondream/parakeet-ultra` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/Nemotron-3-Diarization` | OpenMDW 1.1 | <https://openmdw.ai/license/1-1/> | |
| `nvidia/nemotron-3.5-asr-streaming-0.6b` | OpenMDW 1.1 | <https://openmdw.ai/license/1-1/> | |
| `nvidia/parakeet-ctc-0.6b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-ctc-1.1b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-rnnt-0.6b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-rnnt-1.1b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-tdt-0.6b-v2` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-tdt-0.6b-v3` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-tdt-1.1b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-tdt_ctc-1.1b` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet-tdt_ctc-110m` | CC-BY-4.0 | <https://creativecommons.org/licenses/by/4.0/> | |
| `nvidia/parakeet_realtime_eou_120m-v1` | NVIDIA Open Model License | <https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/> | Licensed by NVIDIA Corporation under the NVIDIA Open Model License |
| `snakers4/silero-vad` | MIT | <https://github.com/snakers4/silero-vad/blob/master/LICENSE> | Copyright (c) 2020-present Silero Team. Released under the MIT license |

Notes:

- The Moondream Ultra and Redux files are converted here, not trained. Credit
Moondream and NVIDIA (`parakeet-tdt-0.6b-v3`) when you use them. The Redux F16 and
Q8_0 files are dequantized from the ternary weights.
- The Silero VAD files are converted from the official ONNX model, not trained.
- Static card text for the files that `publish_hf.py` does not convert (diarization,
Moondream, Silero VAD, and the Nemotron 3.5 usage note) lives in `scripts/hf_card/`.
14 changes: 14 additions & 0 deletions scripts/hf_card/diarization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### nemotron-3-diarization

Source: [nvidia/Nemotron-3-Diarization](https://huggingface.co/nvidia/Nemotron-3-Diarization) · Speaker diarization (Sortformer, up to 8 speakers, streaming speaker cache) · License: [OpenMDW 1.1](https://openmdw.ai/license/1-1/)

| File | Variant | Size | Segments vs NeMo |
|---|---|---:|---:|
| `nemotron-3-diarization-f16.gguf` ← **recommended** | F16 | 200.7 MB | identical |
| `nemotron-3-diarization-q8_0.gguf` | Q8_0 | 108.7 MB | identical on 2 of 3 clips, 99.5% of frames on the third |

> Checked against NeMo on a 23.6 s and a 68.5 s two-speaker clip (offline and streaming: every segment identical, to the 10 ms frame) and a 12.3 min three-speaker clip (F16 100%, Q8_0 99.9% of speech frames). Q8_0 can flip a frame whose probability sits right at the 0.5 threshold, splitting a segment (99.5% of frames on a 31.5 s clip); use F16 when segment-exact output matters. Answers "who spoke when"; pair it with any ASR model above for speaker-attributed transcripts. See [diarization.md](https://github.com/mudler/parakeet.cpp/blob/master/docs/diarization.md).

```bash
build/examples/cli/diarize models/nemotron-3-diarization-f16.gguf meeting.wav
```
25 changes: 25 additions & 0 deletions scripts/hf_card/moondream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
### ultra and redux (Moondream)

Source: [moondream/parakeet-ultra](https://huggingface.co/moondream/parakeet-ultra) and [moondream/parakeet-redux](https://huggingface.co/moondream/parakeet-redux) by [Moondream](https://huggingface.co/moondream), derived from NVIDIA's [nvidia/parakeet-tdt-0.6b-v3](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3) · TDT transducer (FastConformer), multilingual, with a voice-activity head (`transcribe --vad`) · heads: TDT · license: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)

| File | Variant | Size | Runs on |
|---|---|---:|---|
| `ultra-f16.gguf` | F16 | 1441.9 MB | any backend |
| `ultra-q8_0.gguf` | Q8_0 | 941.5 MB | any backend |
| `redux-packed.gguf` | packed ternary encoder | 213.3 MB | CPU only, offline only |
| `redux-f16.gguf` | F16, dequantized | 1441.9 MB | any backend |
| `redux-q8_0.gguf` | Q8_0, dequantized | 941.5 MB | any backend |

> There is no NeMo reference for these models, so there is no WER column. Each file was checked to decode the `tests/fixtures/speech.wav` clip to the expected sentence. See [ternary.md](https://github.com/mudler/parakeet.cpp/blob/master/docs/ternary.md) for the measurements.

- **Ultra** has ordinary F16 weights and runs on any backend, like the other v3 files.
- **Redux packed** keeps the encoder linear layers as ternary weights (-1, 0 or +1 times a per-group scale) and runs a native CPU kernel. It does not run on GPU backends or in streaming mode, and parakeet.cpp refuses to load it there. For GPU use, take `redux-f16.gguf` or `redux-q8_0.gguf`.
- **Redux F16 and Q8_0** are dequantized: the ternary weights were expanded to ordinary weights and then stored as F16 or Q8_0. They are not packed.
- **Changes:** these files are converted here, not trained. Nothing was trained or fine-tuned by the parakeet.cpp project. The models were trained by NVIDIA (the base) and Moondream (Ultra and Redux).

```bash
huggingface-cli download mudler/parakeet-cpp-gguf redux-packed.gguf --local-dir models/
build/examples/cli/parakeet-cli transcribe --model models/redux-packed.gguf --input audio.wav
# Long audio: cut at pauses with the model's voice-activity head (offline only).
build/examples/cli/parakeet-cli transcribe --model models/ultra-q8_0.gguf --input long.wav --vad
```
6 changes: 6 additions & 0 deletions scripts/hf_card/nemotron-3.5-note.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
> This model runs both offline and as a cache-aware streaming model, and it is the only one here that takes a target language. Pass `--lang <locale>` (for example `en-US`, `de-DE`, `es-ES`, `ja-JP`), or leave it at the default `auto` to let the model detect the language. The WER column is measured against NeMo, offline, on the languages en, de and auto; streaming and offline output also match NeMo for en, de, es, ja-JP and auto. See [parity.md](https://github.com/mudler/parakeet.cpp/blob/master/docs/parity.md). The small prompt layers, the LSTM and the feature extractor stay F32 in every quantization.

```bash
huggingface-cli download mudler/parakeet-cpp-gguf nemotron-3.5-asr-streaming-0.6b-f16.gguf --local-dir models/
build/examples/cli/parakeet-cli transcribe --model models/nemotron-3.5-asr-streaming-0.6b-f16.gguf --input audio.wav --lang de-DE
```
13 changes: 13 additions & 0 deletions scripts/hf_card/silero-vad.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
### silero-vad (Silero Team)

Source: [snakers4/silero-vad](https://github.com/snakers4/silero-vad) v6.2.3 by the [Silero Team](https://github.com/snakers4) · a small voice-activity detector, not a speech recognizer · 8 kHz and 16 kHz in one file · license: [MIT](https://github.com/snakers4/silero-vad/blob/master/LICENSE)

| File | Variant | Size |
|---|---|---:|
| `silero-vad-f32.gguf` | F32 | 2.2 MB |
| `silero-vad-f16.gguf` | F16 weights, widened to F32 at load | 1.3 MB |

- The files are converted from the official ONNX model with `scripts/convert_silero_vad_to_gguf.py` in parakeet.cpp. The GGUF records the source version and the ONNX sha256. They were converted here, not trained.
- They need a parakeet.cpp build that has the standalone VAD API. That code is not in a release yet, so check the parakeet.cpp repository before relying on it.
- Use it as a stand-alone detector (`parakeet-cli vad --model silero-vad-f16.gguf --input audio.wav`) or to cut long audio before transcribing with any model, including those that have no VAD head (`parakeet-cli transcribe --model tdt-0.6b-v3-q8_0.gguf --input long.wav --vad --vad-model silero-vad-f16.gguf`).
- Probabilities match onnxruntime to about 1e-6 (F32) and 1e-3 (F16) on the test clips.
Loading
Loading