A Multiplication-Free Feature Extractor for Signal Classification: Keyword Spotting Case Study
Авторы предлагают заменить MFCC в маломощном распознавателе ключевых слов преобразованием iRDT, которому не нужны умножения, БПФ и тригонометрические функции. Идея интересна именно как цифровая обработка сигналов для микроконтроллера: локальная структура волны описывается простыми разностями на нескольких задержках, а точность остаётся на уровне привычных спектральных признаков. При этом статья показывает, где экономия вычислений переносится на весь классификатор, а где более крупная карта признаков съедает часть выигрыша.
Метод. iRDT проходит по окнам сигнала и для набора целочисленных задержек вычисляет модуль дискретного одномерного лапласиана. Базовая операция состоит из сложений и вычитаний, сдвига на один разряд для умножения на два, модуля и чтения памяти. Полученные строки усредняются по сегментам в двумерную карту. Для секундной записи при 16 кГц, шести задержках и окне 64 оценки авторов дают около 480 тысяч целочисленных операций, тогда как MFCC с БПФ 2048, шагом 512 и 13 мел-коэффициентами требует около 3 млн операций более дорогих типов. Проверка выполнена на 12 классах Google Speech Commands с классификаторами DS-CNN и VRES-CNN.
Результаты. В наиболее точной конфигурации iRDT-B1 с VRES-CNN достигает 94,73% на проверочной выборке; после 8-разрядного квантования и логарифмического сжатия остаётся 94,47%. Для MFCC тот же классификатор даёт 94,40% и 94,13% соответственно. В более экономной связке iRDT-A2 + DS-CNN 8-разрядная точность составляет 91,47% при карте из 372 чисел против 91,06% у MFCC с 416 числами. Без логарифма квантование iRDT отнимало 2-2,5 пункта, а после добавления приближённого log2 падение стало меньше 0,1 пункта.
Ограничения. Все итоговые числа получены на одной задаче из коротких чистых команд и названы проверочной, а не независимой испытательной выборкой. Нет проверки при шуме, смене микрофона, говорящего или языка. Измерение времени сделано в демонстрационном коде на центральном процессоре, а не на микроконтроллере; энергопотребление, память, пропускная способность и задержка всей системы на целевом устройстве не измерены. Наибольшая точность требует VRES-CNN с 7,8 млн MAC, тогда как MFCC-вариант этого классификатора требует 4,2 млн MAC, поэтому самый точный режим не является самым дешёвым по всей цепочке.
Фишка из статьи. Рисунок с демонстрационной программой позволяет разделить время выделения признаков и время классификации. Это полезнее общей фразы «быстрее MFCC», хотя один запуск на центральном процессоре нельзя считать испытанием TinyML-устройства.
| Признаки | Размер карты | Выделение признаков | Классификатор | Суммарно |
|---|---|---|---|---|
| iRDT, 6 задержек | 83 x 6 | 0,2089 мс | 1,04 мс | около 1,25 мс |
| iRDT, 9 задержек | 83 x 9 | 0,3153 мс | 1,37 мс | около 1,69 мс |
| MFCC-13 | 416 значений | 6,4111 мс | 1,51 мс | около 7,92 мс |
Как это читать: собственно iRDT быстрее MFCC примерно в 20-30 раз в этом запуске, но у всей цепочки выигрыш меньше, около 4,7-6,3 раза, потому что нейронный классификатор остаётся. Для практического вывода нужны те же измерения на конкретном микроконтроллере и с учётом памяти.