- Дата публикации
KVAE-Audio от Сбера: аудио‑токенизатор 48 кГц для генеративных моделей
Что нового
KVAE-Audio — это аудио‑автоэнкодер от команды KandinskyLab (Сбер), который работает с полным диапазоном частот: 48 кГц по всему спектру.
Главное:
- Сжимает сырые аудиосигналы в компактные непрерывные латентные представления.
- Работает не только с речью, но и с музыкой и «общими звуками».
- Внутри текст‑в‑аудио пайплайна Сбера замена старого автоэнкодера на KVAE-Audio повышает качество генерации при том же генераторе.
- Размер модели: 166,9 млн параметров.
- Размер латентного пространства: 64 измерения.
- Частота дискретизации: полный диапазон 48 кГц (full-band), без даунсемплинга до 16–24 кГц.
KVAE-Audio конкурирует с рядом уже известных аудио‑VAE:
- MMAudio 44,1 кГц: 427,6M параметров, 40‑мерный латент.
- DACVAE MovieGen: 107,7M параметров, 128‑мерный латент.
- SAME-L (Stable Audio 3 VAE): 852,1M параметров, 256‑мерный латент.
На стандартных бенчмарках KVAE-Audio показывает сравнимое или лучшее качество генерации и реконструкции при существенно меньшем размере, чем SAME-L, и заметно меньшем, чем MMAudio.
Генерация: качество латентного пространства
Модель тестировали в сценарии генерации: один и тот же DiT‑генератор, одно и то же обучение, меняется только автоэнкодер. Сравнивали объективные метрики и слепую оценку людьми.
AudioCaps (описания звуков):
- KVAE-Audio (166,9M, латент 64):
- CLAP: 0,344
- CE: 3,982
- PQ: 6,242
- FAD (PANNs): 15,381
- FAD (PASST): 193,760
- FAD (VGGIsh): 1,210
- MMAudio 44,1 кГц (427,6M, латент 40): CLAP 0,336, PQ 6,192, FAD (PANNs) 17,873, FAD (VGGIsh) 1,364
- DACVAE MovieGen (107,7M, латент 128): CLAP 0,313, PQ 6,167, FAD (PANNs) 20,558, FAD (VGGIsh) 1,700
- SAME-L (852,1M, латент 256): CLAP 0,322, PQ 5,756, FAD (PANNs) 18,446, FAD (VGGIsh) 1,325
На AudioCaps KVAE-Audio даёт лучший CLAP и PQ и самые низкие FAD (PANNs и VGGIsh) среди всех четырёх.
Song Describer (описания музыки):
- KVAE-Audio: CLAP 0,339, CE 7,216, PQ 7,929, FAD (PANNs) 7,971, FAD (PASST) 189,427, FAD (VGGIsh) 0,599
- MMAudio: CLAP 0,356, PQ 7,707, FAD (PANNs) 5,412, FAD (VGGIsh) 0,356
- DACVAE MovieGen: CLAP 0,312, PQ 7,538, FAD (PANNs) 10,194, FAD (VGGIsh) 1,046
- SAME-L: CLAP 0,345, PQ 7,465, FAD (PANNs) 8,442, FAD (VGGIsh) 0,987
На музыкальном корпусе KVAE-Audio и MMAudio обмениваются лидерством по разным метрикам: у KVAE-Audio выше PQ, у MMAudio немного лучше CLAP и FAD (PANNs).
LibriSpeech test-clean (речь):
- KVAE-Audio: CLAP 0,389, CE 5,906, PQ 6,940, FAD (PANNs) 4,677, FAD (PASST) 185,609, FAD (VGGIsh) 2,138, WER 0,244, CER 0,576
- MMAudio: CLAP 0,368, PQ 6,629, FAD (PANNs) 8,305, WER 0,257, CER 0,593
- DACVAE MovieGen: CLAP 0,413, PQ 7,052, FAD (PANNs) 5,008, WER 0,911, CER 1,048
- SAME-L: CLAP 0,379, PQ 5,024, FAD (PANNs) 10,257, WER 0,349, CER 0,629
KVAE-Audio даёт одну из лучших комбинаций: низкий FAD (PANNs) и самые низкие WER/CER среди четырёх моделей.
Реконструкция: насколько хорошо автоэнкодер «слышит» исходник
Реконструкцию проверяли на открытых датасетах из разных доменов. Метрики: MEL, STFT, Waveform (ошибка, ниже — лучше), SI-SDR/SDR/SNR (выше — лучше), PESQ (качество речи, выше — лучше).
AudioSet (первая таблица):
- KVAE-Audio: MEL 0,537, STFT 1,770, Waveform 0,027, SI-SDR 9,065, SDR 9,920, SNR 9,933
- MMAudio: MEL 0,636, STFT 1,938, Waveform 0,106, SI-SDR −32,080, SDR −2,682, SNR −2,686
- DACVAE MovieGen: MEL 0,669, STFT 2,275, Waveform 0,029, SI-SDR 8,384, SDR 9,421, SNR 9,416
- SAME-L: MEL 0,986, STFT 2,726, Waveform 0,027, SI-SDR 9,586, SDR 10,347, SNR 10,339
AudioSet (вторая таблица):
- KVAE-Audio: MEL 0,516, STFT 1,725, Waveform 0,022, SI-SDR 10,390, SDR 10,675, SNR 10,677
- MMAudio: MEL 0,681, STFT 1,865, Waveform 0,114, SI-SDR −40,204, SDR −3,274, SNR −3,273
- DACVAE MovieGen: MEL 0,519, STFT 1,762, Waveform 0,024, SI-SDR 9,688, SDR 10,046, SNR 10,047
- SAME-L: MEL 0,668, STFT 1,786, Waveform 0,023, SI-SDR 10,278, SDR 10,648, SNR 10,648
KVAE-Audio здесь держится на уровне или лучше DACVAE и SAME-L по большинству метрик и заметно лучше MMAudio.
EARS (речь, важен PESQ):
- KVAE-Audio: MEL 0,463, STFT 1,314, Waveform 0,006, SI-SDR 9,952, SDR 10,377, SNR 10,384, PESQ 4,266
- MMAudio: MEL 0,616, STFT 1,395, Waveform 0,030, SI-SDR −29,947, SDR −2,728, SNR −2,697, PESQ 2,424
- DACVAE MovieGen: MEL 0,453, STFT 1,310, Waveform 0,006, SI-SDR 10,264, SDR 10,680, SNR 10,681, PESQ 4,246
- SAME-L: MEL 0,774, STFT 1,575, Waveform 0,007, SI-SDR 9,939, SDR 10,374, SNR 10,376, PESQ 2,982
KVAE-Audio и DACVAE показывают почти одинаковое качество речи (PESQ около 4,25–4,27), при этом KVAE-Audio использует латент размером 64 против 128 у DACVAE.
Как это работает
KVAE-Audio — это непрерывный автоэнкодер для аудио:
- На вход подаётся сырая волна (raw waveform) с частотой 48 кГц.
- Энкодер сжимает сигнал в латентное представление фиксированного размера (64‑мерный вектор во времени).
- Декодер восстанавливает аудио по этим латентам.
Ключевая идея: использовать не дискретные токены, а непрерывное латентное пространство. Это важно для генеративных моделей:
- Трансформер или DiT‑генератор работает не с волной напрямую, а с компактными латентами.
- Меньше шагов по времени, ниже нагрузка на память и GPU.
- Генерация становится более устойчивой к артефактам, чем при прямой работе с волной.
В Python‑интерфейсе KVAE-Audio работает как обычная PyTorch‑модель:
encodeвозвращает латенты. По умолчанию — среднее значениеmu(детерминированный энкодинг).- Если передать
sample=True, энкодер будет стахастически сэмплировать латенты. - Полная реконструкция эквивалентна вызову
model(waveform, sample_rate)["audio"].
Поддержка 48 кГц означает, что модель сохраняет высокочастотные детали, которые часто теряются в токенизаторах, ограниченных 16–24 кГц.
Что это значит для вас
Кому KVAE-Audio действительно полезен
-
Исследователям и разработчикам генеративного аудио.
- Если вы строите свой текст‑в‑аудио или аудио‑в‑аудио генератор, KVAE-Audio можно использовать как латентный слой вместо VAE из других проектов.
- Бенчмарки показывают, что при фиксированном генераторе переход на KVAE-Audio улучшает качество генерации на AudioCaps и даёт конкурентные результаты на музыке и речи.
-
Создателям музыкальных и звуковых моделей.
- Поддержка full-band 48 кГц делает KVAE-Audio интересным для задач, где важны верхние частоты: синтез музыкальных инструментов, пространственный звук, саунд‑дизайн.
-
Командам, которые считают бюджет параметров.
- По сравнению с SAME-L (852,1M параметров) KVAE-Audio весит 166,9M, то есть примерно в 5 раз меньше.
- При этом по ряду метрик реконструкции и генерации он не уступает более тяжёлым моделям.
Когда KVAE-Audio не лучший выбор
- Если вам нужна готовая end‑to‑end система для конечных пользователей (типа «заливай текст — получай трек»), KVAE-Audio — только одно звено цепочки. Нужен отдельный генератор (например, DiT) и пайплайн обучения.
- Если вы работаете строго в ограниченных ресурсах (мобильные устройства, микроконтроллеры), 166,9M параметров могут оказаться слишком тяжёлыми.
- Если вы уже глубоко интегрировали другой VAE (например, SAME-L или DACVAE) и вас устраивает качество, переход на KVAE-Audio потребует переобучения генератора.
Практический сценарий использования
- Обучаете или используете DiT/Transformer для генерации аудио.
- Заменяете существующий VAE‑токенизатор на KVAE-Audio.
- Генератор работает в пространстве латентов (64‑мерный латент по времени).
- Для вывода вы пропускаете сгенерированные латенты через
decodeи получаете 48‑кГц волну.
KVAE-Audio распространяется через GitHub‑репозиторий kandinskylab/kvae-audio. Для загрузки исходников не нужен VPN, но доступ к GitHub может зависеть от вашей сети и политики провайдера.
Место на рынке
Если смотреть только на цифры из бенчмарков, KVAE-Audio занимает интересную нишу между компактными и тяжёлыми VAE.
По размеру модели и латента
- MMAudio 44,1 кГц: 427,6M параметров, латент 40.
- DACVAE MovieGen: 107,7M параметров, латент 128.
- SAME-L (Stable Audio 3 VAE): 852,1M параметров, латент 256.
- KVAE-Audio: 166,9M параметров, латент 64.
KVAE-Audio крупнее DACVAE, но заметно меньше MMAudio и особенно SAME-L. При этом латент 64 даёт компромисс между компактностью и выразительностью.
По качеству генерации
- На AudioCaps KVAE-Audio показывает лучшие CLAP и PQ и самые низкие FAD (PANNs, VGGIsh) среди всех четырёх.
- На Song Describer KVAE-Audio и MMAudio делят лидерство: у KVAE-Audio выше PQ, у MMAudio лучше CLAP и FAD (PANNs).
- На LibriSpeech KVAE-Audio даёт одну из лучших комбинаций CLAP/FAD и самые низкие WER/CER.
Суммарно KVAE-Audio выглядит сильным выбором, если вы хотите хорошее латентное пространство для генерации без гигантского VAE на сотни миллионов параметров сверху.
По качеству реконструкции
- На AudioSet KVAE-Audio держится на уровне DACVAE и SAME-L по SI-SDR/SDR/SNR и показывает хорошие MEL/STFT ошибки.
- На EARS KVAE-Audio и DACVAE почти совпадают по PESQ (~4,26), при этом KVAE-Audio использует вдвое меньший латент.
Если вам нужна именно качественная реконструкция речи и общих звуков при умеренном размере модели, KVAE-Audio выглядит конкурентоспособно.
Установка
KVAE-Audio ориентирован на Python и PyTorch.
- Установите PyTorch, torchvision и torchaudio, подобрав версию под вашу CUDA. В примере используется CUDA 12.8:
pip install torch==2.11.0 torchvision==0.26.0 torchaudio==2.11.0 --index-url https://download.pytorch.org/whl/cu128
- Установите KVAE-Audio из локального пакета (предполагается, что вы клонировали репозиторий
kvae-audio):
pip install -e ./kvae-audio
Проект тестировали с Python 3.14.
Как запустить
Запуск инференса
Подготовьте директории:
- Положите входные WAV‑файлы в папку
input_samples. - Реконструкции появятся в папке
output_samples.
Команда инференса:
python scripts/infer.py \
--weights_path kvae-audio.pt \
--input_path input_samples \
--output_path output_samples
kvae-audio.pt — это файл весов модели. Его нужно скачать отдельно из репозитория или релизов.
Оценка качества реконструкции
Для сравнения оригиналов и реконструкций используйте скрипт eval.py. Он сопоставляет WAV‑файлы с одинаковыми именами в input_samples и output_samples и записывает метрики в metrics.csv в output_samples.
python scripts/eval.py \
--input_path input_samples \
--output_path output_samples
Python API: пример кода
Ниже — полный пример, как закодировать аудио, декодировать его обратно и сохранить результат.
import torch
import soundfile as sf
from kvae_audio import KVAEAudio
model = KVAEAudio.load("kvae-audio.pt", map_location="cpu")
model.eval()
data, sr = sf.read("audio.wav")
waveform = torch.from_numpy(data).float().unsqueeze(0).unsqueeze(0)
length = waveform.shape[-1]
with torch.no_grad():
latents, _, _, _ = model.encode(waveform, sample_rate=sr)
audio = model.decode(latents)[..., :length]
sf.write("output.wav", audio.squeeze(0).T.numpy(), sr)
Кратко по API:
KVAEAudio.load("kvae-audio.pt")— загрузка весов.model.encode(waveform, sample_rate=sr)— получение латентов.model.decode(latents)— восстановление волны.- По умолчанию
encodeвозвращает среднееmu. Если нужен стохастический энкодинг, передавайтеsample=True.
Цитирование
Если вы используете KVAE-Audio в исследовании или продукте, авторы предлагают такую BibTeX‑ссылку:
@misc{kvae_audio_2026,
author = {Ivan Kirillov, Denis Parkhomenko, Alexandr Ivanov, Azat Saginbaev, Egor Silvestrov, Denis Dimitrov},
title = {KVAE-Audio: a full-band continuous audio tokenizer for generative models},
howpublished = {\url{https://github.com/kandinskylab/kvae-audio}},
year = 2026
}