Liquid AI has released LiquidCodec, a ~74M-parameter streaming audio codec powering its LFM3-Audio-2B and LFM3-Omni-2B models. The system converts speech into tokens a language model can predict before reversing the process to generate audio. It is available on Hugging Face.
In this article
Specs and performance
The model card lists 73.6M parameters. It processes 24 kHz audio at 12.5 Hz frames using 12 codebooks. Liquid AI tested it on a single CPU thread using an Apple M4 Max laptop in FP32 mode. CUDA GPU support comes via Transformers, while Q4_0, Q4_K_M and Q8_0 GGUF builds work with llama.cpp.
On benchmarks, LiquidCodec achieved the best ViSQOL scores and lowest mel distance across all eight test sets when compared against X-Codec 2, NanoCodec and Mimi.
Encoding runs at approximately 361x real-time on one CPU thread. The model card cites an encode real-time factor (RTF) of 0.0028, compared to 0.0361 for Mimi.
What is LiquidCodec?
LiquidCodec compresses 24 kHz audio into 12 token streams. Each 80 ms frame becomes 12 discrete tokens. This replaces Kyutai’s Mimi, which Liquid AI used in LFM2-Audio-1.5B. Mimi contains 96.2M parameters.
Technical approach
The pipeline follows an encode, quantize, decode sequence. Liquid AI uses blocks from its LFM3 architecture in both the encoder and decoder. The two halves are symmetric, and the encoder is fully causal, which suits streaming applications.
Quantization uses grouped finite scalar quantization (GFSQ) instead of residual vector quantization (RVQ). In RVQ, each codebook encodes what the previous one missed. GFSQ groups are independent, so all 12 codebooks can be predicted in parallel by MaskGIT-style transformers.
The decoder predicts spectral coefficients directly. This avoids learned transposed-convolution upsampling, a common cost in waveform decoders.
Training stages
Training ran in two stages. Stage 1 used 264,000 hours of speech across 107 languages. It applied waveform and spectral losses, without adversarial losses. Stage 2 fine-tuned on 55,000 hours of full-band speech (24 kHz or higher) with adversarial critics. Liquid AI says this removed metallic artifacts left after stage 1. A final decoder-only quantization-aware training (QAT) step targets edge inference.
Speed figures
Liquid AI measured speed in FP32 on one CPU thread of an Apple M4 Max MacBook Pro. LiquidCodec ran at ~361x real time for encoding and ~87x for decoding. These are self-reported figures.
Real-time factor (RTF) is processing time divided by audio length, so lower is better. LiquidCodec’s encode RTF is 0.0028, against 0.0361 for Mimi, 0.2145 for NanoCodec and 0.7359 for X-Codec 2. Decode RTF is 0.0115, against 0.0329, 0.2543 and 0.0379. That is about 13x lower encode RTF and 2.9x lower decode RTF than Mimi.
Quality benchmarks
Liquid AI used 8 test sets. These were LibriSpeech test-clean, Seed-TTS English and Mandarin, and 5 FLEURS languages (German, French, Mandarin, Japanese, Korean). Baselines were X-Codec 2, NanoCodec and Mimi at 12 codebooks.
- Reconstruction: LiquidCodec had the best ViSQOL and lowest mel distance on all 8 sets. On LibriSpeech, ViSQOL was 4.319 versus 4.219 for NanoCodec, 4.119 for X-Codec 2 and 4.031 for Mimi.
- Text-to-speech: Liquid AI trained identical TTS models on each codec’s tokens. Data (101,000 hours, 6 languages), architecture, compute and batch order were fixed. LiquidCodec scored the highest UTMOSv2 on all 8 sets and the best WER/CER on 4 of 8. LibriSpeech WER was 3.15%, against 6.27% for Mimi. Results held with a Qwen3-1.7B backbone as well as LFM3-1.7B.
- Where it trails: NanoCodec scored higher PESQ (WB) on 7 of 8 sets. It also led on LibriSpeech speaker similarity (SECS 0.836 vs 0.785).
Comparison table
| Feature | LiquidCodec | Mimi | NanoCodec 1.78 kbps | X-Codec 2 |
|---|---|---|---|---|
| Developer | Liquid AI | Kyutai | NVIDIA | HKUST Audio |
| Parameters | 73.6M | 96.2M | 62M | 0.8B |
| Sample rate | 24 kHz | 24 kHz | 22.05 kHz | 16 kHz |
| Frame rate | 12.5 Hz | 12.5 Hz | 12.5 fps | 50 tokens/s |
| Codebooks | 12 | 8 at 1.1 kbps | 13 | 1 |
| Quantizer | GFSQ | RVQ | FSQ | Single-layer FSQ |
| Bitrate | Not disclosed | 1.1 kbps | 1.78 kbps | Not disclosed |
| Causality | Causal encoder; decoder not disclosed | Fully causal | Non-causal encoder, causal decoder | Not disclosed |
| License | “other” on HF; blog links LFM License | CC-BY 4.0 | NVIDIA Open Model License | CC-BY-NC 4.0 |
| Encode / decode RTF, M4 Max CPU* | 0.0028 / 0.0115 | 0.0361 / 0.0329 | 0.2145 / 0.2543 | 0.7359 / 0.0379 |
| LibriSpeech mel distance* (lower is better) | 0.120 | 0.160 | 0.122 | 0.123 |
| LibriSpeech PESQ (WB)* | 2.640 | 2.615 | 2.942 | 2.434 |
| LibriSpeech TTS UTMOSv2* | 3.31 | 2.89 | 3.19 | 3.27 |
*Measured by Liquid AI in its technical blog. Mimi measured at 12 codebooks.
Deployment
The codec loads through Hugging Face Transformers with trust_remote_code=True. Call encode() to get audio codes and decode() to get a waveform. A native LiquidCodecStreamingCache supports chunk-by-chunk decoding, per the model card. The card’s examples use CUDA with bfloat16.
For edge use, Liquid AI lists Q4_0, Q4_K_M and Q8_0 GGUF builds for llama.cpp. GGUF repos ship with LFM3-Audio-2B and LFM3-Omni-2B. Q4_0 with decoder-only QAT shrinks the decoder footprint by 3.5x. LibriSpeech ViSQOL dips only from 4.319 to 4.292.
What it means
Developers working with Liquid AI’s LFM3 models now have a dedicated tool to handle audio input and output. The codec handles the conversion between raw sound waves and the tokens models require, allowing the models to process speech efficiently. The focus on parallel prediction and causal encoding suggests the system is designed to handle live audio streams without needing to wait for future data.


