Model reference · open weights

LocalVQE

Audio LocalAI-io Audio→audio 1 build Open weights 3k dl/mo

LocalVQE is an open-weight audio or speech model from LocalAI-io. LocalVQE (BF16) weighs 42 MB; the smallest configuration that runs it is RTX 3060 12 GB.

  • LocalVQE is a suite of compact neural models by LocalAI-io for acoustic echo cancellation, noise suppression, and dereverberation of 16 kHz speech.
  • It operates in real time on commodity CPUs with a 16 ms latency and is available under the Apache 2.0 license.
  • The collection includes joint enhancement models ranging from 1.3 M to 4.8 M parameters, as well as smaller echo-only variants and a 49 K parameter GTCRN-AEC line designed for low-power devices.

Summary of the LocalAI-io/LocalVQE model card, 2026-10-01

What it is

Released byLocalAI-io
Released2026-04-17
VRAM42 MB for the weights

What it runs on

Memory and cards for LocalVQE (BF16)

42 MBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What LocalAI-io says about LocalVQE

Read the model card

Local Voice Quality Enhancement — compact neural models for acoustic echo cancellation (AEC), noise suppression (NS), and dereverberation of 16 kHz speech, running on commodity CPUs in real time. Causal and streaming (256-sample hop, 16 ms latency).

  • Try it:
  • Source, build system, tests:

This page hosts the published weights. Inference runs the GGML C++ engine on the GGUF files directly (build instructions on GitHub).

Authors: Richard Palethorpe (richiejp) and Claude (Anthropic). LocalVQE is a streaming, CPU-tuned derivative of DeepVQE (Indenbom et al., Interspeech 2023).

Models

Speed is per 16 ms hop on a Ryzen 9 7900 (Zen4), 4 threads; RT = realtime factor (higher is faster than realtime).

VersionDoesParamsSize (F32)SpeedPick it when
v1.3 (current)AEC + NS + dereverb4.8 M~19 MB3.2 ms · 5.0× RTbest joint quality, CPU budget available
v1.2AEC + NS + dereverb1.3 M~5 MB1.7 ms · 8.9× RTtight CPU / low-power devices
v1.4-AECecho only (keeps voice, noise, room)203 K~3 MB0.83 ms · 19× RTNS is handled elsewhere, or you want the room kept
v1.4-AEC 2.7Kecho only, linear filter (no mask)2.7 K~17 KB0.36 ms · 44× RTlightest echo canceller; echo isn't heavily reverberant
v1.1 / v1AEC + NS + dereverb1.3 M~5 MB—superseded by v1.2
  • Joint models (v1.2 / v1.3) clean echo, noise, and reverb in one pass. v1.3 is wider and filters noise better; v1.2 is ~1/4 the per-hop cost.
  • v1.4-AEC removes only the far-end echo and passes voice, room, and background through unchanged. It's a classical adaptive filter followed by a small neural mask. The 2.7K build is that filter alone — cheaper and gentler, but it can't remove heavily reverberant echo the way the mask can.
  • Every model needs a far-end reference signal (a loopback of what your speakers play) in addition to the mic.
  • bf16 GGUFs are ~12 % smaller with identical quality and speed; pick f32 unless download size matters.

Compact line — GTCRN-AEC (for lower-power CPUs)

A separate, much smaller second line of models for lower-power CPUs: a ~49 K-parameter GTCRN-AEC network — a distinct architecture based on GTCRN (Rong et al., ICASSP 2024) — paired with the project's DSP echo-cancellation front-end. The GGUFs are self-contained, so they run with the same single command as every other model. Two variants share the architecture:

ModelDoesParams
localvqe-pi-v1-49kAEC + NS + dereverb (full enhance)49 K
localvqe-pi-aec-v1-49kecho only — keeps noise + room49 K

Whole-clip real-time factor on the real ggml graph, benchmarked on a Raspberry Pi 5 (one example of a low-power target; test_gtcrn --bench, Cortex-A76, Ubuntu 24.04), parity-verified to the PyTorch reference within ~1e-6 on-device. RTF is identical for both variants:

Threads8 s clipRTFRT factor
1388 ms0.048~21×
2219 ms0.027~37×
4163 ms0.020~49×

That is ~0.78 ms per 16 ms hop single-threaded. Runs on any CPU; for single-board ARM, cross-compile for aarch64 with ggml/docker/Dockerfile.arm64 (docker buildx

  • qemu). f16/q8 quantizations are published only if/when released.

Files in this repository

FileSizeModel
localvqe-v1.4-aec-200K-f32.gguf3 MBv1.4-AEC (echo only)
localvqe-v1.4-aec-200K-bf16.gguf2.6 MBv1.4-AEC, conv weights in BF16
localvqe-v1.4-aec-2.7K-f32.gguf17 KBv1.4-AEC front-end only (adaptive filter, no mask)
localvqe-pi-v1-49k-f32.gguf2.3 MBCompact line — GTCRN-AEC full enhance (echo + NS + dereverb)
localvqe-pi-aec-v1-49k-f32.gguf2.3 MBCompact line — GTCRN-AEC echo-only (keeps noise + room)
localvqe-v1.3-4.8M-f32.gguf19 MBv1.3 joint — GGUF the engine loads
localvqe-v1.3-4.8M.pt55 MBv1.3 joint — PyTorch checkpoint (research)
localvqe-v1.2-1.3M-f32.gguf5 MBv1.2 joint — GGUF
localvqe-v1.2-1.3M.pt11 MBv1.2 joint — PyTorch checkpoint
localvqe-v1.1-1.3M-f32.gguf, localvqe-v1-1.3M-f32.gguf5 MBolder releases

v1.4-AEC is GGUF-only (no .pt). GGUF integrity is checked at load time against a built-in SHA256 allowlist in the engine.

Performance

Full 800-clip eval on the ICASSP 2022 AEC Challenge blind test set (real recordings). AECMOS echo / deg are 1–5 (higher = more echo removed / cleaner speech); blind ERLE is 10·log10(E[mic²]/E[enh²]), only meaningful on far-end-only clips. Unprocessed-mic echo MOS is 2.67 / 2.56 / 1.90 / 2.13 / 5.00 across the five scenarios.

v1.4-AEC — keeps background noise and room by design, so its ERLE and far-end DNSMOS are intentionally lower than the joint models (it isn't deleting the ambience):

Scenarionecho ↑deg ↑ERLE ↑OVRL
doubletalk1154.202.45—2.59
doubletalk-with-movement1854.192.45—2.55
farend-singletalk1073.804.9914.6 dB1.37
farend-singletalk-with-movement1933.864.9511.1 dB1.31
nearend-singletalk2004.993.99—3.08

v1.4-AEC 2.7K (front-end only) — matches or beats the full model's perceptual far-end echo at 1/74 the parameters; the mask's extra work shows up as higher ERLE above, not higher echo MOS:

Scenarionecho ↑deg ↑ERLE ↑OVRL
doubletalk1154.002.79—2.46
doubletalk-with-movement1853.902.92—2.42
farend-singletalk1074.0

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

How it works

How audio & music work

Audio or textinputAudio modelrecognise / synthesiseText or audiooutputSpeech-to-text turns audio into text; text-to-speech and music models turn text into audio.
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms