Log-STFT Устойчивость Music
Оценка подлинности аудио

AI-music detection: log-STFT против speed-change атак

F1 0.986

Статья про детекцию ИИ-музыки полезна для речевых и аудио-задач как пример частотно-временного признака, где устойчивость задается архитектурно. Обычные детекторы спектральных артефактов хорошо работают на исходных треках, но ломаются от простого изменения скорости: пики артефактов сдвигаются по частоте. Авторы переводят усредненный STFT на логарифмическую частотную ось, где frequency scaling превращается в сдвиг, и затем ищут этот сдвиг learned cross-correlation filter.

Метод. Аудио переводится в STFT, усредняется по времени, интерполируется на log-frequency сетку и очищается от гладкой lower-hull baseline, чтобы оставить fakeprint - пики артефактов генератора. Детектор состоит из нормализации, одной 1D-свертки как cross-correlation с learned filter и max pooling, который дает инвариантность к сдвигу. Обучение совмещает BCE для бинарной детекции и CE loss для lag, то есть для локализации примененного speed factor.

Результаты. На чистом Suno v5 метод совпадает с сильным baseline: AUC 1.000 и F1 0.998. При атаке speed modification baseline Afchar et al. в режиме Attack/Attack падает до AUC 0.817 и F1 0.675, а предложенный метод держит AUC 0.997 и F1 0.986. Даже если обучать только на чистых треках и тестировать на speed attack, метод на Suno v5 сохраняет AUC 0.986; оценка speed-change factor достигает MAE 4e-4.

Ограничения. Инвариантность построена под один класс преобразований - frequency scaling от изменения скорости. Pitch shifting через phase vocoder уже показывает пределы подхода, потому что включает time-stretching, а equalization, dynamic range compression и codec compression остаются вне проверки. Кроме того, работа про музыку, а не про речь, поэтому перенос на детекцию синтетического голоса требует отдельной проверки артефактов и атак.

Фишка из статьи. Самый сильный результат - не near-perfect accuracy на чистом аудио, а разница под speed-change атакой. Логарифмическая частотная ось превращает атаку в обычный сдвиг признака.

Train/Test на Suno v5МодельAUCF1Precision
Clean/CleanAfchar et al.1.0000.9980.999
Clean/CleanOur Method1.0000.9980.999
Clean/AttackAfchar et al.0.7450.0080.400
Clean/AttackOur Method0.9860.7320.993
Attack/AttackAfchar et al.0.8170.6750.768
Attack/AttackOur Method0.9970.9860.989

Как это читать: чистый тест почти ничего не говорит об устойчивости детектора. Важная строка - Clean/Attack: модель видела только исходные треки, но благодаря log-STFT сохраняет высокую AUC, тогда как линейно-частотный baseline почти перестает находить positives.

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