MOSS-Audio-Tokenizer-v2 is a unified discrete audio tokenizer based on the Cat (Causal Audio Tokenizer with Transformer) architecture. Scaling to 2 billion parameters, it functions as a unified discrete interface, delivering both lossless-quality reconstruction and high-level semantic alignment.
Key Features:
Extreme Compression & Variable Bitrate: It compresses 48kHz stereo audio into a remarkably low frame rate of 12.5Hz. Utilizing a 32-layer Residual Vector Quantization stack, it supports high-fidelity reconstruction across a wide range of bitrates.
Pure Transformer Architecture: The model features a "CNN-free" homogeneous architecture built entirely from Causal Transformer blocks. With 2B combined parameters (Encoder + Decoder), it ensures exceptional scalability and supports low-latency streaming inference.
Large-Scale General Audio Training: Trained on 3 million hours of diverse audio data, the model excels at encoding and reconstructing all audio domains, including speech, sound effects, and music.
Unified Semantic-Acoustic Representation: While achieving state-of-the-art reconstruction quality, Cat produces discrete tokens that are "semantic-rich," making them ideal for downstream tasks like speech understanding (ASR) and generation (TTS).
Fully Trained From Scratch: Cat does not rely on any pretrained encoders (such as HuBERT or Whisper) or distillation from teacher models. All representations are learned autonomously from raw data.
End-to-End Joint Optimization: All components—including the encoder, quantizer, decoder, discriminator, and a decoder-only LLM for semantic alignment—are optimized jointly in a single unified training pipeline.
Summary: By combining a simple, scalable architecture with massive-scale data, the Cat architecture overcomes the bottlenecks of traditional audio tokenizers. It provides a robust, high-fidelity, and semantically grounded interface for the next generation of native audio foundation models.
This repository contains a lightweight remote-code implementation that mirrors the current 🤗 Transformers transformers.models.moss_audio_tokenizer module. It is hosted as a Hugging Face Hub model repository and should be loaded with trust_remote_code=True.
config.attention_implementation controls whether transformer layers prefer sdpa or flash_attention_2. config.compute_dtype controls the non-quantizer autocast dtype and supports fp32, bf16. config.codec_weight_dtype controls encoder/decoder parameter dtype and defaults to fp32. The quantizer is always kept in fp32.
GPU bf16 loading:
import torch
from transformers import AutoModel
repo_id = "OpenMOSS-Team/MOSS-Audio-Tokenizer-v2"
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModel.from_pretrained(repo_id, trust_remote_code=True, low_cpu_mem_usage=True, codec_weight_dtype="bf16").eval().to(device)
Passing codec_weight_dtype="bf16" at load time avoids first materializing encoder/decoder weights as fp32 on GPU and then converting them to bf16, which would increase peak GPU memory.
Avoid calling plain model.to(torch.bfloat16) on the whole codec; that also casts quantizer weights and can cause dtype mismatches or serious precision loss.
The table below compares the reconstruction quality of open-source audio tokenizers with MOSS-Audio-Tokenizer-v2 on speech and audio/music data.
Speech metrics are evaluated on LibriSpeech test-clean (English) and AISHELL-2 (Chinese), reported as EN/ZH.
Audio metrics are evaluated on the AudioSet evaluation subset, while music metrics are evaluated on MUSDB, reported as audio/music.
STFT-Dist. denotes the STFT distance.
Higher is better for speech metrics, while lower is better for audio/music metrics (Mel-Loss, STFT-Dist.).
Nq denotes the number of quantizers.
Model
bps
Frame rate
Nq
Speech: SIM ↑ (EN/ZH)
Speech: STOI ↑ (EN/ZH)
Speech: PESQ-NB ↑ (EN/ZH)
Speech: PESQ-WB ↑ (EN/ZH)
Audio/Music: Mel-Loss ↓
Audio/Music: STFT-Dist. ↓
XCodec2.0
800
50
1
0.82 / 0.74
0.92 / 0.86
3.04 / 2.46
2.43 / 1.96
-- / --
-- / --
MiMo Audio Tokenizer
850
25
4
0.80 / 0.74
0.91 / 0.87
2.94 / 2.62
2.39 / 2.14
0.82 / 0.81
2.33 / 2.23
Higgs Audio Tokenizer
1000
25
4
0.77 / 0.68
0.83 / 0.82
3.03 / 2.61
2.48 / 2.14
0.83 / 0.80
2.20 / 2.05
SpeechTokenizer
1000
50
2
0.36 / 0.25
0.77 / 0.68
1.59 / 1.38
1.25 / 1.17
-- / --
-- / --
XY-Tokenizer
1000
12.5
8
0.85 / 0.79
0.92 / 0.87
3.10 / 2.63
2.50 / 2.12
-- / --
-- / --
BigCodec
1040
80
1
0.84 / 0.69
0.93 / 0.88
3.27 / 2.55
2.68 / 2.06
-- / --
-- / --
Mimi
1100
12.5
8
0.74 / 0.59
0.91 / 0.85
2.80 / 2.24
2.25 / 1.78
1.24 / 1.19
2.62 / 2.49
MOSS-Audio-Tokenizer-v2 (Ours)
750
12.5
6
0.82 / 0.75
0.92 / 0.88
3.14 / 2.68
2.59 / 2.19
0.93 / 0.91
2.28 / 2.14
MOSS-Audio-Tokenizer-v2 (Ours)
1000
12.5
8
0.88 / 0.80
0.94 / 0.90
3.39 / 2.93
2.88 / 2.43
0.88 / 0.86
2.22 / 2.07
—
—
—
—
—
—
—
—
—
—
DAC
1500
75
2
0.48 / 0.41
0.83 / 0.79
1.87 / 1.67
1.48 / 1.37
-- / --
-- / --
Encodec
1500
75
2
0.60 / 0.45
0.85 / 0.81
1.94 / 1.80
1.56 / 1.48
1.12 / 1.04
2.60 / 2.42
Higgs Audio Tokenizer
2000
25
8
0.90 / 0.83
0.85 / 0.85
3.59 / 3.22
3.11 / 2.73
0.74 / 0.70
2.07 / 1.92
SpeechTokenizer
2000
50
4
0.66 / 0.50
0.88 / 0.80
2.38 / 1.79
1.92 / 1.49
-- / --
-- / --
Qwen3 TTS Tokenizer
2200
12.5
16
0.95 / 0.88
0.96 / 0.93
3.66 / 3.10
3.19 / 2.62
-- / --
-- / --
MiMo Audio Tokenizer
2250
25
12
0.89 / 0.83
0.95 / 0.92
3.57 / 3.25
3.05 / 2.71
0.70 / 0.68
2.21 / 2.10
Mimi
2475
12.5
18
0.89 / 0.76
0.94 / 0.91
3.49 / 2.90
2.97 / 2.35
1.10 / 1.06
2.45 / 2.32
MOSS-Audio-Tokenizer-v2 (Ours)
1500
12.5
12
0.93 / 0.86
0.95 / 0.92
3.66 / 3.24
3.23 / 2.77
0.83 / 0.79
2.15 / 1.98
MOSS-Audio-Tokenizer-v2 (Ours)
2000
12.5
16
0.95 / 0.89
0.96 / 0.94
3.80 / 3.44
3.45 / 3.01
0.79 / 0.75
2.10 / 1.93
—
—
—
—
—
—
—
—
—
—
DAC
3000
75
4
0.74 / 0.67
0.90 / 0.88
2.76 / 2.47
2.31 / 2.07
0.86 / 0.83
2.23 / 2.10
MiMo Audio Tokenizer
3650
25
20
0.91 / 0.85
0.95 / 0.93
3.73 / 3.44
3.25 / 2.89
0.66 / 0.65
2.17 / 2.06
SpeechTokenizer
4000
50
8
0.85 / 0.69
0.92 / 0.85
3.05 / 2.20
2.60 / 1.87
-- / --
-- / --
Mimi
4400
12.5
32
0.94 / 0.83
0.96 / 0.94
3.80 / 3.31
3.43 / 2.78
1.02 / 0.98
2.34 / 2.21
Encodec
4500
75
6
0.86 / 0.75
0.92 / 0.91
2.91 / 2.63
2.46 / 2.15
0.91 / 0.84
2.33 / 2.17
DAC
6000
75
8
0.89 / 0.84
0.95 / 0.94
3.75 / 3.57
3.41 / 3.20
0.65 / 0.63
1.97 / 1.87
MOSS-Audio-Tokenizer-v2 (Ours)
3000
12.5
24
0.96 / 0.92
0.97 / 0.95
3.94 / 3.64
3.66 / 3.28
0.75 / 0.71
2.04 / 1.87
MOSS-Audio-Tokenizer-v2 (Ours)
4000
12.5
32
0.97 / 0.93
0.97 / 0.96
3.98 / 3.72
3.75 / 3.39
0.73 / 0.69
2.02 / 1.84
LibriSpeech Speech Metrics (MOSS-Audio-Tokenizer-v2 vs. Open-source Tokenizers)#
The plots below compare our MOSS-Audio-Tokenizer-v2 model with other open-source speech tokenizers on the LibriSpeech dataset, evaluated with SIM, STOI, PESQ-NB, and PESQ-WB (higher is better). We control the bps of the same model by adjusting the number of RVQ codebooks used during inference.
If you use this code or result in your paper, please cite our work as:
@misc{gong2026mossaudiotokenizerscaling,
title={MOSS-Audio-Tokenizer: Scaling Audio Tokenizers for Future Audio Foundation Models},
author={Yitian Gong and Kuangwei Chen and Zhaoye Fei and Xiaogui Yang and Ke Chen and Yang Wang and Kexin Huang and Mingshu Chen and Ruixiao Li and Qingyuan Cheng and Shimin Li and Xipeng Qiu},
year={2026},
eprint={2602.10934},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2602.10934}
}
import os
os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com"
from transformers import AutoModel, AutoTokenizer
tok = AutoTokenizer.from_pretrained("OpenMOSS-Team/MOSS-Audio-Tokenizer-v2", revision="f6e20e543b33d2c252a7ef71bdf8aa71e5ff9169")
model = AutoModel.from_pretrained("OpenMOSS-Team/MOSS-Audio-Tokenizer-v2", revision="f6e20e543b33d2c252a7ef71bdf8aa71e5ff9169", device_map="auto")