ced-gguf / README.md
mudler's picture
Model card (CED family)
f34444b verified
|
Raw
History Blame Contribute Delete
2.85 kB
---
license: apache-2.0
library_name: ced.cpp
pipeline_tag: audio-classification
tags:
- audio-classification
- sound-event-detection
- audio-tagging
- audioset
- ggml
- gguf
- ced
base_model:
- mispeech/ced-tiny
- mispeech/ced-mini
- mispeech/ced-small
- mispeech/ced-base
---
# CED (GGUF) for ced.cpp / LocalAI
GGUF quantizations of the **CED** family (Consistent Ensemble Distillation,
Xiaomi) - SOTA-tier audio-tagging models that classify everyday sounds (baby
cry, footsteps, glass breaking, alarms, dog bark, ...) into the 527-class
[AudioSet](https://research.google.com/audioset/) ontology.
These files run with [**ced.cpp**](https://github.com/mudler/ced.cpp), a
standalone C++/[ggml](https://github.com/ggml-org/ggml) port (no Python, no
PyTorch at inference), and with [**LocalAI**](https://github.com/mudler/LocalAI)
via the `ced` backend. Converted from the `mispeech/ced-*` checkpoints
(Apache-2.0). CED is a plain AST/DeiT Vision Transformer over a log-mel
spectrogram; the port is numerically equal to the PyTorch reference.
## Files
One self-contained GGUF per size + quant (config, 527 labels, and the mel
filterbank/window are all embedded). Pick by your accuracy/size budget:
| size | params | f16 | q8_0 | f32 |
|------|--------|-----|------|-----|
| **tiny** | 5.5M | `ced-tiny-f16.gguf` (11 MB) | `ced-tiny-q8_0.gguf` (6 MB) | - |
| **mini** | 9.6M | `ced-mini-f16.gguf` (19 MB) | `ced-mini-q8_0.gguf` (11 MB) | - |
| **small** | 22M | `ced-small-f16.gguf` (42 MB) | `ced-small-q8_0.gguf` (23 MB)| - |
| **base** | 86M | `ced-base-f16.gguf` (165 MB) | `ced-base-q8_0.gguf` (88 MB) | `ced-base-f32.gguf` (328 MB) |
`tiny`/`q8_0` (6 MB) is ideal for Raspberry-Pi-class CPUs; `base`/`f16` is the
accuracy default.
## Parity vs PyTorch (ced-base, end-to-end probs)
| quant | max abs diff | top-5 tags |
|-------|--------------|------------|
| f32 | 1.7e-7 | identical |
| f16 | 6.4e-5 | identical |
| q8_0 | 6.0e-3 | identical |
## Performance (CPU, ced-base, 10s clip, Ryzen 9 9950X3D, 4 threads)
| | latency | realtime factor | peak RSS |
|---|---|---|---|
| PyTorch (transformers, f32) | 155.7 ms | 65x | 717 MB |
| ced.cpp f16 | 100.6 ms | 100x | 189 MB |
| ced.cpp q8_0 | 117.2 ms | 86x | 111 MB |
ced.cpp f16 is ~1.55x faster than the PyTorch reference; q8_0 uses ~6.5x less
memory.
## Usage
```sh
ced-cli classify ced-base-f16.gguf clip.wav --top-k 5
# 0.87 Baby cry, infant cry
# 0.12 Crying, sobbing
```
In LocalAI: install the `ced` backend, configure a model with one of these
GGUFs, then call `POST /v1/audio/classification` (or stream over the realtime
websocket API for live recognition).
## License
Model weights: **Apache-2.0** (© Xiaomi Corporation; from the `mispeech/ced-*`
checkpoints). AudioSet labels are CC-BY-4.0. The ced.cpp inference code is MIT.