Facebook опублікував звуковий кодек EnCodec, який використовує машинне навчання

Компанія Meta/Facebook (заборонена в РФ) представила новий звуковий кодек EnCodec, який використовує методи машинного навчання для підвищення стиснення без втрати якості. Кодек може застосовувати як для потокової передачі звуку в режимі реального часу, так кодування для подальшого збереження в файлах. Еталонна реалізація EnCodec написана мовою Python з використанням фреймворку PyTorch і поширюється під ліцензією CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial), що допускає використання лише з некомерційною метою.

Для завантаження запропоновано дві готові моделі:

  • Каузальна модель, що використовує частоту дискретизації 24 kHz, що підтримує лише монофонічний звук і натренована на різнопланових звукових даних (підходить для кодування мови). Модель може використовуватися для пакування звукових даних для передачі з бітрейтами 1.5, 3, 6, 12 та 24 kbps.
  • Некаузальна модель, що використовує частоту дискретизації 48 kHz, що підтримує стереозвук та натренована лише на музиці. Моделью підтримуються бітрейти 3, 6, 12 та 24 kbps.

Для кожної моделі підготовлено додаткову мовну модель, що дозволяє досягти значного збільшення ступеня стиснення (до 40%) без втрати якості. На відміну від проектів із застосування методів машинного навчання для стиснення звуку, що розвиваються раніше, EnCodec може застосовуватися не тільки для пакування мови, але й для стиснення музики з частотою дискретизації 48 kHz, що відповідає рівню звукових CD. За заявою розробників нового кодека при передачі з бітрейтом 64 kbps у порівнянні з форматом MP3 їм вдалося приблизно в десять разів збільшити ступінь стиснення звуку зі збереженням того ж рівня якості (наприклад, коли при використанні MP3 потрібна смуга пропускання 64 kbps, для передачі з тим а якістю в EnCodec досить 6 kbps).

Архітектура кодека побудована на базі нейронної мережі з архітектурою «трансформер» і ґрунтується на чотирьох ланках: кодувальника, квантувача, декодувальника та дискримінатора. Кодувальник отримує параметри голосових даних і перетворює їх упакований потік з нижчою частотою кадрів. Квантувач (RVQ, Residual Vector Quantizer) перетворює потік, що видається кодувальником, в набори пакетів, стискаючи інформацію в прив'язці до обраного бітрейту. На виході квантувача утворюється стисло уявлення даних, придатне передачі через мережу чи збереження на диск.

Декодировщик розкодує стисло уявлення даних і відновлює вихідну звукову хвилю. Дискримінатор покращує якість зразків (sample), що генеруються, з урахуванням моделі людського слухового сприйняття. Незалежно від рівня якості та бітрейту застосовувані для кодування та декодування моделі відрізняються досить скромними вимогами до ресурсів (обчислення, необхідні для роботи в режимі реального часу, виробляються на одному ядрі CPU).

Facebook опублікував звуковий кодек EnCodec, який використовує машинне навчання


Джерело: opennet.ru

Додати коментар або відгук