DSP FAUST Differentiable audio
Real-time DSP

ADAC: компиляция differentiable audio graphs в real-time DSP

32-line FDN 90x RT

ADAC закрывает неприятный разрыв между differentiable audio research и настоящими real-time эффектами. Обычно reverbs, filters, DDSP-like processors и другие differentiable audio graphs удобно обучать в ML-фреймворке, но для плагина их приходится вручную переписывать на DSP-язык, заново проверять и поддерживать две версии одной идеи. Авторы предлагают компилятор, который опускает trained model в framework-agnostic IR и генерирует FAUST-код.

Почему это интересно

Для speech/audio production это не просто “экспорт модели”. Differentiable processor часто содержит feedback paths, delay lines, direct paths и параметры, где маленькая ошибка меняет устойчивость или импульсную характеристику. ADAC фокусируется на feedback delay network (FDN), но по сути демонстрирует workflow: обучили аудиограф градиентным спуском, услышали обновление в running plugin после каждого gradient step, затем экспортировали working plugin.

Что делает компилятор

  • Сохраняет структуру FDN: feedback matrix, delays, input/output mixing и direct path.
  • Генерирует FAUST-код, который можно дальше собирать обычной FAUST toolchain.
  • Проверяет stability certificate по shipped parameters до сборки plugin.
  • Добавляет macro-controls, которые безопаснее сырых trained parameters: reverberation time, dry/wet balance и pre-delay.

Эквивалентность и скорость

Авторы проверяют compiled FAUST против исходной FLAMO-модели по impulse response. Для stereo FDN и mono FDN с direct path расхождение остается в пределах 7e-5 от peak без alignment, то есть на уровне single-precision arithmetic, а не структурной ошибки. Реализация покрыта 201 unit tests и end-to-end integration suite.

По производительности результаты выглядят практично: на одном ядре Apple M2 при 48 kHz 32-line FDN, типичный размер для reverberator-а, работает примерно в 90 раз быстрее real time; 64-line FDN — примерно в 14 раз быстрее real time. Это важный сигнал: generated DSP не просто “правильный”, он остается пригодным для интерактивного аудио.

Практический вывод

ADAC полезен как направление для productionization аудиоисследований. Если обучаемый reverb, room simulator, effect chain или neural-assisted DSP каждый раз нужно переписывать руками, feedback loop между research и продуктом слишком длинный. Компиляция trained graph в проверяемый real-time DSP делает differentiable audio ближе к нормальному deployment path.

Фишка из статьи. ADAC интересен как compiler paper: он не просто экспортирует neural audio effect в FAUST, а сохраняет transfer function FDN-модели через разложение Neumann/path-sum и перенос параметров A, m, B, C, D. То есть предмет статьи - не только звучание, но и корректность эквивалентного DSP-представления.

АспектЧто проверяетсяЧисло из статьи
Численная корректностьимпульсные отклики compiled FAUST против исходной моделирасхождение до 7e-5 от peak
Уровень ошибкиразница в импульсном откликена уровне или ниже -80 dB от peak
Тестовый наборunit + integration checks201 unit tests
Сложность dense FDNN линий задержки, S SOS на линиюO(N² + NS + NinN + NoutN)
Сложность sparse FDNразреженная матрица feedbackзависит от nnz(A)
Runtime benchmarkfaust2bench, Apple M2, 48 kHz32-line FDN около 90x realtime, 64-line около 14x

Практичная мысль: обученные raw-параметры плохо подходят как пользовательские ручки. Поэтому авторы отдельно обсуждают macro controls - более безопасный слой управления эффектом поверх точной DSP-компиляции.

Оригинальная статья на arXiv