RNNoise: подари своя шум за обучението на невронната мрежа на Mozilla
Погасяването на шумовете е актуална тема в научните изследвания още от 70-те години на миналия век. Въпреки значителното подобрение в качеството на подобни системи, тяхната архитектура на практика не е променена и до днес.Технологията на спектралната оценка се базира на спектралната оценка на шума, която от своя страна, работи с помощта на детектор за гласовата активност (VAD) или друг подобен алгоритъм. Всеки един от трите компонента на този алгоритъм изисква много внимателно конфигуриране и са трудни за настройване. Сега Mozilla и Xiph.org измислиха нещо ново, което има голямо значение в тази област. Създадената от тях хибридна система RNNoise вече демонстрира нелош резултат в погасяването на шумове (сорс код и демо).
Спектрограма за звука преди използването на RNNoise (човешка реч със SNR 15 децибела)
Спектрограма на звука след обработката от RNNoiseСъздавайки RNNoise, разработчиците са се опитали да създадат възможно най-малък и бърз алгоритъм, който ефективно може да работи дори и на Raspberry Pi. Те успяха, а RNNoise показва много по-качествен резултат и от най-съвременните сложни и хитри филтри.
Структура на повечето алгоритми за шумопотисканеНевронните мрежи и по-рано са използвани за шумопотискане, а през последните години това е популярна област за изследване. Но в тези решения се предполага, че те ще бъдат използвани в приложенията за автоматично разпознаване на речта, където забавянето на сигнала и изчислителната мощност не са определящи фактори. За разлика от всички досегашни подобни технологии, проектът на Mozilla работи изцяло в реално време, като например по време на видеоконференции, и успява да обработи пълноценен звук с честота на дискретизация 48 KHz.
Mozilla използва хибриден подход, в който са задействани едновременно добре познатите до днес методи за погасяване на шумовете и дълбокото машинно обучение, което заменя именно трудно настройваните параметри в обикновените системи.
Новият алгоритъмТози хибриден подход се различава от end-to-end мрежите, в които невронната мрежа върши всичката работа по погасяването на шума. Тези системи доказаха високата си ефективност, но Mozilla ги счита за твърде сложни и използващи твърде много ресурси. Така например, RNN-мрежата на Google за погасяване на шумовете директно оценява нивата на честотите. За обработката на 8 KHz звук тази мрежа използва 6144 блока в скрити слоеве и около 10 милиона различни показателя. Мащабирането на този подход до обработка на 48 KHz човешка реч с фреймове от по 20 милисекунди би създало твърде сложна система с 400 входни сигнала (от 0 до 20 KHz), която със сигурност няма да работи на Raspberry Pi.
Mozilla си е поставила цел да създаде опростен и бърз модел и специалистите се спряха на хибридния подход. Освен това те изцяло се отказаха от работата със фреймове и техния спектър. Вместо това Mozilla раздели спектъра на 22 диапазона и анализира именно тях, а не 480-те сложни спектрални значения, които се анализират в проекта на Google. Тези 22 диапазона съответстват на човешкото възприемане на звука. Подобно разпределение се използва и в кодека Opus, от който Mozilla е взела само базовия модел.
Подходът се оказа много ефективен. Програмата използва скромна част от изчислителните ресурси на процесорното ядро ARM Cortex-A53 с тактова честота 1,2 GHz (Raspberry Pi 3).
Тестовете показват, че използването на невронна мрежа значително подобрява качеството на погасяването на шума. В изображенията по-долу е показано погасяването на шума от фонови разговори (вляво), автомобили (център) и уличния шум (дясното изображение), сравнени с библиотеката SpeexDSP, базирана на MMSE.
Сега разработчиците се обръщат към всички потребители с молба да подарят своя шум за научни цели, тоест, за обучението на невронната мрежа. Шумът може да бъде подаден директно онлайн. Молбата е това да бъде направено от всяко възможно място, където е възможно да се разговаря на глас. Това може да е навсякъде – в автомобила, навън или на което и да е друго място, където можете да говорите по телефона например. В уеб-страницата е достатъчно да се натисне бутона Record и да се помълчи една минута. За правилното обучение на невронната мрежа е необходимо и да се укаже, в какво обкръжение е записвана тишината (шума).

