Привет, Хабр. Мы уже показывали токенизаторы для изображений и видео, рассказывали про обновление видеомоделей KVAE-2.0, а теперь закрываем третью модальность — публикуем KVAE-Audio, непрерывный полнодиапазонный (48 кГц) токенизатор для звука. По результатам тестов наш VAE (вариационный автоэнкодер, Variational Autoencoder) показывает лучшее качество генераций в задаче text-to-audio (генерирование звука по текстовому описанию) в общем домене, при этом не отставая в качестве реконструкций от моделей конкурентов, и имея заметно меньше параметров и каналов в латентном представлении. Код, инференс — в открытом доступе под лицензией MIT, веса на HF.

VAE для генерирования

Как и в случае с картинками и видео, аудио-VAE нам нужен не просто для сжатия. Мы хотим получить преобразование в латентное пространство, пригодное для обучения диффузионных генеративных моделей — text-to-audio и text-to-video + audio (совместное генерирование видео со звуком). Диффузия учится жить в латентом пространстве токенизатора, и его качество напрямую задаёт потолок возможностей генерирования.

В открытых моделях T2AV (text-to-audio-video — совместное генерирование видео со звуком по тексту) под капотом диффузии обычно стоит один из нескольких автоэнкодеров. Как основной бейзлайн мы взяли VAE из MMAudio (код, версию на 44,1 кГц), часто используемый в open source-решениях T2AV. Также из открытых моделей мы сравнили свою разработку с автоэнкодером из MovieGen Audio (Meta), потому что он, как и наш, основан на DAC (Descript Audio Codec, код), и с VAE из свежей работы Stable Audio 3 — автоэнкодером SAME-L (Semantically-Aligned Music autoEncoder, веса).

Архитектура

DAC — полностью свёрточный автоэнкодер, работающий напрямую с волновой формой. MMAudio кодирует не волновую форму напрямую, а mel-спектрограмму, и после декодирования подаёт её на вход ещё одной модели — вокодера, — чтобы превратить в звук. Мы решили отказаться от такого подхода, чтобы лучше восстанавливать информацию о фазах и не тратить вычисления на дополнительную модель.

Энкодер собран из последовательности блоков: residual-блоки с dilated-свёртками, а затем strided-свёртка, которая сжимает сигнал по времени и увеличивает количество каналов. Произведение страйдов (шагов свёрток) даёт итоговое временное сжатие. Ключевая деталь — Snake-активация (x + sin²(αx)/α): её периодическая природа задаёт правильный inductive bias для звука, помогает моделировать колебательные сигналы и снижает тональные артефакты. Декодер устроен зеркально, но с транспонированными свёртками для разжатия.

Под нашу задачу — сжатие fullband-звука (полнодиапазонного, 48 кГц) в компактный непрерывный латент, с которым диффузии будет легко учиться, — исходный DAC пришлось заметно изменить:

  • Регуляризация латентного пространства во время обучения делает его удобнее для диффузии, что улучшает следование инструкциям пользователя. Мы разработали собственный подход, позволяющий улучшить diffusability модели (то, насколько латентное пространство удобно для обучения диффузии) без заметных потерь в качестве реконструкций.

  • Непрерывный латент вместо квантизации. В боттлнеке (узком месте сети между энкодером и декодером) исходного DAC стоит модуль остаточной векторной квантизации (RVQ, Residual Vector Quantization) с code book (словарём дискретных кодов-векторов). Мы убираем квантизатор и ставим на его место VAE-боттлнек с репараметризацией: модуль предсказывает параметры распределения латента и сэмплирует из него непрерывный вектор. Именно эта замена превращает кодек в VAE.

  • На один блок глубже. Добавили по блоку в энкодер и декодер и пересобрали последовательность страйдов: [2, 3, 4, 5, 8] вместо [2, 4, 8, 8], и добавили дополнительные проекции на выходе энкодера и входе декодера.

  • Вход 48 кГц вместо 44,1 кГц — полный слышимый диапазон.

  • 50 латентных фреймов в секунду вместо ~86: фрейм длиной 20 мс против ~12 мс. Новая последовательность страйдов даёт ровно 960-кратное сжатие по времени.

  • 64 канала в латенте вместо 1024.

  • Self-attention в боттлнеке — чтобы латент опирался на более длинный контекст, а не только на локальное окно свёрток.

Реконструкция

Что измеряем

Реконструкции мы оцениваем набором метрик, чтобы сравнить модели по разным аспектам.

Спектральные расстояния. STFT (Short-Time Fourier Transform, оконное преобразование Фурье): усреднённые расстояния между обычными (линейными по частоте) спектрограммами (линейными и логарифмическими) в двух разрешениях окна. Mel (distance): то же самое, только с мел-спектрограммами (спектрограммами в перцептивной мел-шкале частот), для двух наборов мелов. Waveform: расстояние прямо во временной области, посэмплово. Эта метрика чувствительна к фазе (которую слух частично игнорирует), поэтому её нужно замерять вместе со спектральными. Все эти метрики чем меньше, тем лучше.

Сигнальные метрики. SI-SDR (Scale-Invariant Signal-to-Distortion Ratio, масштабно-инвариантное отношение сигнал/искажение): отношение энергии полезного сигнала к энергии ошибки (в дБ) после оптимального масштабирования. Инвариантно к громкости, поэтому измеряет именно искажение, а не разницу в уровне. SDR (Signal-to-Distortion Ratio): то же, но без инвариантности к масштабу. SNR (Signal-to-Noise Ratio): базовое отношение сигнал/шум, где «шумом» считается остаток ошибки. Везде выше — лучше.

Качество речи. PESQ-WB (Perceptual Evaluation of Speech Quality, wideband — широкополосная версия): стандарт ITU-T, предсказывает субъективную оценку качества речи (MOS, Mean Opinion Score — усреднённая оценка слушателей по шкале от 1 до 5) через перцептивную модель, применим только к голосу.

На чём измеряем

Мы выбрали несколько открытых датасетов, чтобы покрыть три основных сценария: речь, музыка и прочие звуки:

  • AudioSet eval: крупнейший и самый цитируемый бенчмарк для звуков в общем домене.

  • MUSDB18-HQ: стандартный сет с музыкой высокого качества.

  • EARS — речь в 48 кГц, много дикторов и выразительных стилей.

VAE MMAudio и SAME-L работают с частотой дискретизации 44,1 кГц, так что для справедливого сравнения, реконструкции нашего VAE и модели из MovieGen ресемплятся к тому же значению. Лучшие метрики в таблицах выделены жирным шрифтом, а вторые по порядку подчеркиванием.

AudioSet eval

Model

# Params

Latent dim

MEL↓

STFT↓

Waveform↓

SI-SDR↑

SDR↑

SNR↑

MMAudio 44.1kHz

427.6M

40

0,636

1,938

0,106

-32,080

-2,682

-2,686

DACVAE MovieGen

107.7M

128

0,669

2,275

0,029

8,384

9,421

9,416

SAME-L

852.1M

256

0,986

2,726

0,027

9,586

10,347

10,339

KVAE-Audio

166.9M

64

0,537

1,770

0,027

9,065

9,920

9,933

MUSDB18-HQ

Model

# Params

Latent dim

MEL↓

STFT↓

Waveform↓

SI-SDR↑

SDR↑

SNR↑

MMAudio 44.1kHz

427.6M

40

0,681

1,865

0,114

-40,204

-3,274

-3,273

DACVAE MovieGen

107.7M

128

0,519

1,762

0,024

9,688

10,046

10,047

SAME-L

852.1M

256

0,668

1,786

0,023

10,278

10,648

10,648

KVAE-Audio

166.9M

64

0,516

1,725

0,022

10,390

10,675

10,677

EARS

Model

# Params

Latent dim

MEL↓

STFT↓

Waveform↓

SI-SDR↑

SDR↑

SNR↑

PESQ↑

MMAudio 44.1kHz

427.6M

40

0,616

1,395

0,030

-29,947

-2,728

-2,697

2,424

DACVAE MovieGen

107.7M

128

0,453

1,310

0,006

10,264

10,680

10,681

4,246

SAME-L

852.1M

256

0,774

1,575

0,007

9,939

10,374

10,376

2,982

KVAE-Audio

166.9M

64

0,463

1,314

0,006

9,952

10,377

10,384

4,266

Генерация

Как устроено сравнение

Качественные реконструкции это хорошо, но в прошлых статьях мы уже рассказывали о парадоксе: VAE с лучшим качеством восстановления может плохо работать с DiT из-за слишком «сложного» латентного пространства. Поэтому для оценки качества модели именно в задаче text-to-audio мы обучили генератор с различными VAE и оценили качество получившихся генераций. В роли генератора — диффузионный трансформер (DiT, Diffusion Transformer) в духе нашего же Kandinsky 5 (arXiv:2511.14993): латентная диффузия на Flow Matching (подход к обучению генеративных моделей, при котором сеть учится предсказывать векторное поле, переносящее шум в данные), DiT-бэкбон с cross-attention к текстовым эмбеддингам, — адаптированный под работу с аудио-латентом. Архитектура, данные и количество шагов обучения для всех вариантов одни и те же, отличается только токенизатор — это и обеспечивает честность сравнения.

Что измеряем

FAD (Fréchet Audio Distance): аудио-аналог FID (Fréchet Inception Distance, метрики качества генерации изображений): расстояние между распределениями эмбеддингов сгенерированного и реального наборов звуков. Чем меньше, тем ближе генерация к реальному распределению. Метрика зависит от бэкбона, на котором считают эмбеддинги, мы приводим сразу несколько общепринятых: PANNs, PaSST, VGGish. Сравнение метрики по разным бэкбонам страхует от артефактов конкретного из них.

CLAP-score: косинусная близость между эмбеддингом сгенерированного аудио и эмбеддингом текста запроса. Это прямая мера следования промпту.

На речи дополнительно считаем WER/CER (Word/Character Error Rate) как меру разборчивости сгенерированного голоса.

CE, PQ: составляющие метрики Audiobox Aesthetics(код) от Meta (организация признана экстремистской и запрещена в России), обученной на человеческих оценках:

  • CE (Content Enjoyment): субъективное удовольствие: эмоциональное воздействие, художественность, артистизм.

  • PQ (Production Quality): техническая сторона, оценивает качество сведения звука.

На чём измеряем

Тут, как и в тестах на реконструкции, хотим покрыть три основных области: речь, музыку и прочие звуки. Для этого взяли такие наборы:

  • AudioCaps: канонический бенчмарк text-to-audio (аудио из AudioSet с человеческими подписями).

  • Song Describer: музыка с текстовыми описаниями и открытой лицензией.

  • LibriSpeech test-clean — чистая речь с множеством дикторов. На ней оцениваем zero-shot синтез речи (синтез без дообучения под конкретного диктора).

AudioCaps test set

Model

# Params

Latent dim

CLAP↑

CE↑

PQ↑

FAD (PANNs)↓

FAD (PASST)↓

FAD (VGGIsh)↓

MMAudio 44.1kHz

427.6M

40

0,336

3,909

6,192

17,873

195,910

1,364

DACVAE MovieGen

107.7M

128

0,313

3,772

6,167

20,558

234,312

1,700

SAME-L

852.1M

256

0,322

3,588

5,756

18,446

240,635

1,325

KVAE-Audio

166.9M

64

0,344

3,982

6,242

15,381

193,760

1,210

Song Describer

Model

# Params

Latent dim

CLAP↑

CE↑

PQ↑

FAD (PANNs)↓

FAD (PASST)↓

FAD (VGGIsh)↓

MMAudio 44.1kHz

427.6M

40

0,356

7,136

7,707

5,412

158,599

0,356

DACVAE MovieGen

107.7M

128

0,312

6,953

7,538

10,194

214,009

1,046

SAME-L

852.1M

256

0,345

7,076

7,465

8,442

250,668

0,987

KVAE-Audio

166.9M

64

0,339

7,216

7,929

7,971

189,427

0,599

LibriSpeech test-clean

Model

# Params

Latent dim

CLAP↑

CE↑

PQ↑

FAD (PANNs)↓

FAD (PASST)↓

FAD (VGGIsh)↓

WER↓

CER↓

MMAudio 44.1kHz

427.6M

40

0,368

5,704

6,629

8,305

105,931

2,001

0,257

0,593

DACVAE MovieGen

107.7M

128

0,413

5,482

7,052

5,008

210,478

1,501

0,911

1,048

SAME-L

852.1M

256

0,379

4,617

5,024

10,257

301,508

2,721

0,349

0,629

KVAE-Audio

166.9M

64

0,389

5,906

6,940

4,677

185,609

2,138

0,244

0,576

Side-by-side (попарное сравнение)

Объективные метрики — половина картины. Вторую даёт слепое попарное сравнение генераций разметчиками. Каждому разметчику показывали пары аудио, сгенерированных по одному запросу двумя моделями, различающимися только токенизатором, и просили оценить по следующим характеристикам: следование промпту (насколько точно сгенерированное аудио соответствует текстовой инструкции пользователя) и качество звука (отсутствие шумов, клиппинга — перегрузки и обрезания амплитуды сигнала, роботизированности голоса, металлических призвуков, неестественных интонаций и так далее).

Мы провели попарные сравнения нашего VAE с каждой из трёх моделей на каждом домене: генерация речи, генерация музыки и генерация различных звуков.  На графиках представлены Win Rate моделей, полученные по следующей формуле:

Win Rate(modelA)=(winA + 0.5 \cdot both)/(winA + winB + both),

где winA - количество голосов за модель А, winB - количество голосов за модель B, а both - количество голосов за, что модели на данном примере равны.

Side-By-Side сравнение KVAE-Audio и SAME-L
Side-By-Side сравнение KVAE-Audio и SAME-L
Side-By-Side сравнение KVAE-Audio и DACVAE MovieGe
Side-By-Side сравнение KVAE-Audio и DACVAE MovieGe
Side-By-Side сравнение KVAE-Audio и MMAudio 44.1 kHz
Side-By-Side сравнение KVAE-Audio и MMAudio 44.1 kHz

Заключение

Генерирование видео со звуком по текстовому описанию — задача, в которой пока нет open source-решения, сравнимого по качеству с закрытыми моделями. Качественная модель токенизации звука — необходимый элемент решения этой задачи, и наша модель KVAE-Audio закрывает именно эту нишу: после изображений и видео у семейства KVAE появился полнодиапазонный аудио-токенизатор. Модель разработана специально для генерирования и отлично подходит для применения в моделях text-to-audio и text-to-video + audio. Веса и код мы уже выложили в открытый доступ, а технический отчёт с деталями нашего подхода будет позже.

Забрать: GitHub · Hugging Face.


Коллектив авторов: Иван Кириллов, Денис Пархоменко, Александр Иванов, Азат Сагинбаев, Егор Сильвестров, Денис Димитров.

Комментарии (0)