Применение нейросетевых подходов к шумоподавлению аудиосигнала в мобильных приложениях
"Научный аспект №6-2024" - Информ. технологии
УДК 004
Савватеев Данил Олегович – магистрант кафедры Информационные системы и технологии Московского политехнического университета.
Аннотация: В условиях активного использования мобильных устройств для записи аудио в шумной среде, эффективные методы шумоподавления становятся крайне важными. В данной статье рассматривается применение нейросетевого метода для улучшения качества голосовых сообщений в мобильных приложениях. Проведено исследование его интеграции и тестирования в условиях реального времени. Полученные результаты демонстрируют значительное улучшение разборчивости речи и снижение уровня шума в записях.
Ключевые слова: шумоподавление, мобильные приложения, нейронные сети, обработка аудио, мобильные приложения, звук, аудиосигнал.
Введение
С развитием технологий мобильные устройства стали основным инструментом для записи аудио в самых разных условиях. Однако, запись в шумной среде часто сопровождается нежелательными звуками, которые ухудшают качество и разборчивость голосовых сообщений. Это делает необходимым применение методов шумоподавления.
Традиционные методы фильтрации, такие как полосовые фильтры, недостаточно эффективны в условиях сложного шума. Современные подходы, использующие нейронные сети, позволяют более точно отделять голос от шума, что значительно улучшает качество записей.
Методы шумоподавления с использованием нейронных сетей набирают популярность благодаря их способности адаптироваться к различным типам шума и обрабатывать аудио в реальном времени. Среди таких методов выделяется RNNoise, который сочетает в себе принципы обработки сигнала и глубокого обучения. Разработанный Жаном-Марком Валином, RNNoise использует рекуррентные нейронные сети (RNN) для улучшения разборчивости речи.
RNNoise был выбран для нашего исследования благодаря его эффективности и возможности дообучения для конкретных условий. Он используется в реальном времени, что делает его идеальным для интеграции в мобильные приложения.
В рамках исследования была поставлена цель разработать мобильное приложение диктофон с интеграцией метода RNNoise для шумоподавления. Для достижения этой цели были выполнены следующие шаги:
- Исследование методов шумоподавления. Были изучены различные методы шумоподавления, включая RNNoise и другие нейросетевые подходы. RNNoise был выбран за его высокую эффективность и адаптивность.
- Разработка архитектуры приложения. Приложение диктофон было спроектировано с использованием Java и Kotlin. Архитектура приложения включала модуль для обработки аудио с использованием RNNoise.
- Интеграция RNNoise. Были проведены работы по адаптации C-кода RNNoise для использования в Android-приложении. Была обеспечена возможность работы метода в реальном времени.
- Тестирование. Приложение было протестировано в различных условиях записи: тихая комната, шумный офис, улица и прогулка. Для оценки эффективности использовались спектрограммы и анализ уровня шума до и после обработки
Основная часть
Для проверки эффективности различных методов шумоподавления и их оценки в реальном времени на компьютере был проведен ряд тестов. В этих исследованиях использовался спектральный анализ, тщательно тестировались реальные и синтетические шумовые аудиозаписи, а также вычислялись объективные показатели для измерения повышения качества звука.
Для создания синтетических зашумлённых записей использовались чистые записи речи из датасета TIMIT. К этим записям добавлялся искусственный шум, такой как белый шум, розовый шум и шум окружающей среды (например, шум улицы или офиса). Каждый тип шума был добавлен с разными уровнями громкости, чтобы моделировать различные условия акустической среды.
Добавление синтетического шума с различной интенсивностью к чистым записям, используя метод смешивания сигналов:
(1)
где – зашумленный сигнал,
– чистый сигнал,
– шум,
– коэффициент, определяющий уровень шума.
Аудиосигналы нормализуются и преобразуются в спектрограммы с использованием кратковременного преобразования Фурье (STFT). Это временно-частотное представление позволяет эффективно анализировать и обрабатывать сигналы [1].
Формула STFT:
(2)
где – спектрограмма,
– исходный аудиосигнал,
– окно,
– временной индекс,
– частотный индекс.
Каждое зашумлённое аудиосообщение обрабатывается методами RNNoise, DeepMMSE, SEGAN и DNS.
Выходные данные преобразуются обратно в временной сигнал с использованием обратного STFT (ISTFT) [2]:
(3)
Для расчета SNR и CC использовался Python с библиотеками numpy и scipy. Эти библиотеки предоставляют функции для вычисления мощности сигнала и корреляции, что облегчает расчет метрик.
Второй эксперимент был направлен на оценку методов шумоподавления на реальных зашумлённых записях из датасета CHiME-4 и Noizeus. Эти записи содержат реальные шумы, такие как шумы улицы, офиса и кафе, что позволяет проверить, как методы справляются с условиями реальной жизни.
К зашумлённым записям были применены те же методы, что и в первом эксперименте. Каждая модель была применена к аудиосигналам, и результаты были сохранены для анализа.
Помимо SNR и CC, для реальных зашумлённых записей был использован спектральный анализ. Спектральный анализ позволил визуально оценить эффективность методов, рассматривая спектрограммы до и после применения шумоподавления [3].
Было измерено время обработки с помощью встроенных в Python процедур таймера. Для каждого метода было определено среднее время обработки одного кадра путем измерения результатов применения метода к аудиозаписи. В итоге была оценена скорость обработки аудиосигналов алгоритмами и их пригодность для использования в реальном времени.
(4)
где – время обработки i-го кадра,
– количество кадров.
Каждый метод шумоподавления был применен к зашумленным записям, и результаты были проанализированы. Представлены таблицы для каждого метода по типам шума и уровням громкости. В таблицах показаны значения сигнал-шумового отношения (SNR) и коэффициента корреляции (CC) для каждого метода, типа шума и уровня громкости шума. Эти показатели помогают объективно оценить, насколько успешно каждый метод справляется с удалением шума.
Сигнал-шумовое отношение (SNR) измеряет, насколько мощность сигнала превышает мощность шума в обработанном аудиосигнале [4]. Оно выражается в децибелах (дБ) и рассчитывается по формуле:
(5)
где – амплитуда чистого (эталонного) сигнала,
– амплитуда обработанного сигнала.
Высокие значения SNR указывают на более чистый сигнал, где уровень шума минимален по сравнению с полезным сигналом.
Для визуального анализа эффективности методов были построены спектрограммы для каждой зашумленной записи до и после обработки. Самой первой спектрограммой показана исходная аудиозапись. Далее наглядно можно увидеть результаты на остальных спектрограммах, подписи которых соответствуют использованным алгоритмам. На рисунке 1 приведён пример спектрограммы одной из записей со смешанными шумами.
Рисунок 1. Спектрограммы к эксперименту 1
Анализ показал, что все методы успешно снизили уровень шума и улучшили качество речи, но их эффективность варьировалась в зависимости от типа шума и уровня громкости.
- RNNoise продемонстрировал хорошие результаты при низком уровне шума, особенно в условиях белого и розового шума, но его эффективность несколько снижалась при сильных шумовых интерференциях.
- DeepMMSE показал высокую эффективность в условиях белого и розового шума, но возникали артефакты при высоких уровнях шума окружающей среды.
- SEGAN продемонстрировал отличное подавление шума при низких уровнях шума, но испытывал трудности при обработке сильного шума окружающей среды.
- DNS показал самые высокие результаты в условиях белого и розового шума и продемонстрировал стабильную эффективность в условиях шума окружающей среды, хотя и с небольшими артефактами при очень высоком уровне шума.
Таблица 1 – Результаты тестирования метода RNNoise на смешанных шумах
Тип шума |
Уровень шума |
Средний SNR (дБ) |
Средний CC |
Белый шум |
0 дБ |
18.3 |
0.91 |
|
-5 дБ |
17.7 |
0.89 |
|
-10 дБ |
17.0 |
0.87 |
Розовый шум |
0 дБ |
17.5 |
0.90 |
|
-5 дБ |
17.0 |
0.88 |
|
-10 дБ |
16.3 |
0.85 |
Шум окружающей среды |
0 дБ |
16.8 |
0.88 |
|
-5 дБ |
16.0 |
0.84 |
|
-10 дБ |
15.3 |
0.82 |
Результаты во втором эксперименте RNNoise показывают, что метод эффективно снижает шум в записях, сделанных в условиях улицы и офиса. Среднее SNR для шума улицы составляет 12.7 дБ, что свидетельствует о значительном снижении уровня шума. Коэффициент корреляции 0.82 указывает на высокую степень соответствия между очищенными и чистыми сигналами. Для шума офиса значения SNR и CC немного ниже (11.5 дБ и 0.78 соответственно), что может быть связано с постоянным фоновым шумом, характерным для офисной среды. В условиях шума кафе RNNoise показывает более низкие значения SNR (10.2 дБ) и CC (0.74), что указывает на сложность обработки более разнообразного и динамичного шума, присущего таким местам.
Таблица 2 – Результаты тестирования метода RNNoise на реальных шумах
Тип шума |
Средний SNR (дБ) |
Средний CC |
Шум улицы |
12.7 |
0.82 |
Шум офиса |
11.5 |
0.78 |
Шум кафе |
10.2 |
0.74 |
Третий эксперимент показал, что алгоритмы RNNoise и DNS имеют лучшую производительность с точки зрения времени обработки и использования системных ресурсов, что делает их наиболее подходящими для реального времени и мобильных приложений. DeepMMSE и SEGAN, хотя и требуют больше ресурсов, предоставляют высокое качество шумоподавления и могут быть оптимизированы для использования в более мощных системах. Эти результаты важны для понимания того, как различные методы могут быть интегрированы в реальные системы и устройства, учитывая их производительность и требования к ресурсам.
Рисунок 2. Графики оценки производительности
В ходе исследования были проведены всесторонние эксперименты для оценки различных методов шумоподавления: RNNoise, DeepMMSE, SEGAN и DNS. Эти эксперименты включали оценку качества шумоподавления, производительности и использования ресурсов. На основании полученных результатов можем сделать обоснованный выбор наиболее подходящего метода для задач шумоподавления на мобильных устройствах.
На основании анализа всех ключевых факторов выбран RNNoise как наиболее подходящий метод для задач шумоподавления на мобильных устройствах. Результаты экспериментов, проведенных в условиях синтетического и реального шума, а также оценки производительности, были сведены в следующую таблицу:
Таблица 3 – Результаты тестирования метода DNS на реальных шумах
Критерий |
RNNoise |
DeepMMSE |
SEGAN |
DNS |
Качество шумоподавления |
Высокое |
Высокое |
Очень высокое |
Очень высокое |
Производительность |
Высокая |
Средняя |
Средняя |
Высокая |
Использование ресурсов |
Низкое |
Высокое |
Высокое |
Среднее |
Доступность |
Открытый исходный код, BSD лицензия |
Нужна разработка и обучение модели |
Открытый исходный код, MIT лицензия |
Открытый исходный код, MIT лицензия |
Реальное время |
Да |
Нет |
Нет |
Да |
Легкость интеграции |
Простая |
Сложная |
Сложная |
Умеренная |
Заключение
Были исследованы четыре метода, каждый из которых имеет свои уникальные особенности и преимущества.
RNNoise является наилучшим выбором для задач шумоподавления на мобильных устройствах благодаря своему сочетанию качества шумоподавления, высокой производительности, низкому использованию ресурсов и легкости интеграции. Его способность работать в реальном времени делает его идеальным для приложений, требующих мгновенной обработки звука, таких как голосовые помощники и системы связи. Открытый исходный код и свободная лицензия BSD также обеспечивают гибкость для разработчиков в адаптации RNNoise под свои конкретные нужды. В совокупности эти факторы делают RNNoise оптимальным решением для шумоподавления звука.
Интеграция метода RNNoise в мобильное приложение позволила достичь значительных успехов в улучшении разборчивости и четкости голосовых сообщений. Метод был адаптирован и оптимизирован для работы на мобильных платформах, что включало уменьшение вычислительных затрат и обеспечение стабильной работы. Приложение успешно прошло тестирование на различных типах шума и продемонстрировало высокую эффективность в реальных условиях. Это подтверждает, что метод RNNoise не только теоретически подходит для задач шумоподавления, но и практически эффективен при использовании на мобильных устройствах.
Список литературы
- Характеристика шума и вибрации. [Электронный ресурс]. Минск: Экологическая инициатива, 2018. URL: https://ecosp.by/images/poleznaya-informatsia/haracteristika_shuma_vibratsii.pdf (дата обращения: 23.04.2024).
- Лялин С. Г. Метод шумоподавления в речевых сигналах с помощью нейронной сети / С. Г. Лялин // Advanced Science – 2019. – № 2 – С. 32–38.
- Cutler R. ICASSP 2021 Deep Noise Suppression Challenge / C. K. A. Reddy, H. Dubey, V. Gopal, R. Cutler, S. Braun, H. Gamper, R. Aichner, S. Srinivasan // arXiv.org [Электронный ресурс] URL: https://arxiv.org/abs/2009.06122 (дата обращения: 24.04.2024).
- Федотов Д. В., Попов Е. А., Охорзин В. А. Оптимизация структуры сверточной нейронной сети с помощью самоконфигурируемого эволюционного алгоритма в одной задаче идентификации // Вестник СибГАУ. 2015. Т. 16, № 4. C. 857–863.
- DNS: соревнование по фильтрации шума на аудиозаписи от Microsoft // Neurohive. [2021] URL: https://neurohive.io/ru/datasety/dns-sorevnovanie-po-filtracii-shuma-na-audiozapisi-ot-microsoft/ (дата обращения: 25.04.2024).
- Y. Hu and P. C. Loizou, “Evaluation of objective quality measures for speech enhancement,” IEEE Transactions on Audio, Speech, and Language Processing. — 2008. — Т. 16, № 1. — С. 229–238.
- Галушкин, А.И. Нейронные сети, история развития теории: Учебное пособие для вузов. // А.И. Галушкин, Я.З. Цыпкин. – М.: Альянс, 2015. – 840 c.
- Y. Koyama, T. Vuong, S. Uhlich, and B. Raj, “Exploring the best loss function for DNN-based low-latency speech enhancement with temporal convolutional networks,” // arXiv preprint. [Электронный ресурс] — 2020. — arXiv:2005.11611. URL: https://arxiv.org/abs/2005.11611 (дата обращения: 25.04.2024).