Нейромережа озвучила беззвучну гру на фортепіано

Американські розробники створили алгоритм, який спостерігає за беззвучним відео гри на фортепіано і синтезує відновлений звук. Стаття була представлена на конференції NeurIPS 2020.


Звук, вироблений музичним інструментом під час виконання мелодії, складається з безлічі параметрів: особливостей самого інструменту, виконуваної композиції, особливостей рухів музиканта під час гри. Знаючи, як звучить конкретний музичний інструмент, людині або алгоритму має бути достатньо відеозапису гри на ньому, щоб досить точно відновити звук, що виходить, але фактично розробники комп'ютерних алгоритмів для цього завдання стикаються з труднощами.


Розробники з Вашингтонського університету під керівництвом Елі Шліцермана (Eli Shlizerman) створили алгоритм для озвучування гри на фортепіано, який враховує не тільки сам факт натискання клавіш, але і тривалість. Алгоритм складається з трьох основних частин і вони працюють наступним чином. Спочатку алгоритм Video2Roll отримує на вхід по п'ять послідовних кадрів з відеозапису, на якому зверху знята клавіатура і кисті рук музиканта. Цей алгоритм заснований на згорточній нейромережі ResNet18 і доповнений модулем уваги, що дозволяють йому з більшою ймовірністю помічати натиснуті клавіші, які займають лише дуже невелику частку від усього кадру, і навчаним кореляційним модулем, який дозволяє йому навчатися найбільш частим комбінаціям натискань клавіш.

На виході з Video2Roll утворюється цифровий аналог перфорованого рулону для механічного фортепіано - тимчасова послідовність натиснутих клавіш. За своєю структурою вона нагадує MIDI-послідовність, яку повсюдно використовують у музиці, однак у неї є важлива відмінність, що випливає з принципу роботи попереднього алгоритму. Справа в тому, що за один «цикл» він працює тільки з п'ятьма кадрами, знаходить на них натиснуті клавіші і позначає їх на «рулоні» як активні. Але п'ять кадрів охоплюють невеликий проміжок часу і не враховують, що клавіша, затиснута на цих п'яти кадрах могла бути затиснута вже відносно довго і вона вже не бере участь у формуванні звуку.

Для виправлення цього недоліку «сирі» дані з алгоритму Video2Roll передаються на генеративно-змагальну нейромережу Roll2Midi, яка відсікає клавіші, що не беруть участі у формуванні звуку. Зазвичай у завданнях з машинного навчання розробники беруть для навчання алгоритму реальні дані і формують з них навчальну вибірку. Для фільтрування MIDI-вистави мелодії реальними даними могли б служити MIDI-послідовності, записані під час гри на синтезаторі. Автори вирішили не обмежувати себе цим підтипом фортепіано і натомість самі створили псевдореальні MIDI-послідовності з аудіозаписів гри на фортепіано за допомогою алгоритму, розробленого іншими дослідниками у 2017 році.

Після того як дані мелодії відфільтровані, відбувається останній етап - перетворення їх на звук. Для цього розробники скористалися двома алгоритмами: відомою програмою FluidSynth і нейросьовим генератором звуку PerfNet, навченому на зібраних ними даних.

Розробники перевірили ефективність алгоритмів за допомогою простого тесту: вони робили синтезований звук, розпізнавали його за допомогою Sound Hound і заміряли частку коректних розпізнавань композицій. Найвищі результати отримала зв'язка з фільтруючого алгоритму Roll2Midi і синтезатора FluidSynth - 73,9 відсотка коректно розпізнаних композицій. При цьому автори відзначають, що, незважаючи на сильні артефакти, звук з нейромережевого синтезатор PerfNet виходить більш «емоційним».

У 2018 році група дослідників під керівництвом Елі Шліцермана створила інший алгоритм для роботи з музичними композиціями: вона навчила нейромережу передбачати рухи рук музикантів з аудіозапису.


COM_SPPAGEBUILDER_NO_ITEMS_FOUND