Система управления уровнем акустического сигнала в зависимости от уровня шума в помещении
Гудков Ю.И., Сафонов С.Н., Тув А.Л., НИУ Высшая школа экономики, МИЭМ ygudkov@hse.ru, ssafonov@hse.ru, atuv@hse.ru
работка алгоритма управления и компьютерной программы. Требования к системе:
Аннотация
В работе рассмотрена система для управления уровнем акустического сигнала в зависимости от уровня шума в помещении. Основное внимание уделено программной части системы. Выполнено сравнение способов реализации систем контроля, нескольких вариантов алгоритмов и сравнение их возможностей. Приведено описание программной реализации и результатов тестирования разработанного программного обеспечения.
1 Введение
Управление уровнем акустического сигнала требуется при проведении собраний, научных семинаров, концертов, вечеров отдыха в студенческой аудитории, если помещение не оборудовано современной звуковоспроизводящей системой. Уровень шума в помещении может изменяться в значительных пределах, что затрудняет восприятие информации и приводит к утомлению заинтересованных слушателей. Изменение уровня сигнала оператором не дает положительных результатов из-за субъективного восприятия им акустической обстановки в помещении. Поэтому целесообразно использовать автоматизированное управление уровнем воспроизводимого сигнала, которое осуществляется по алгоритму, реализованному в системе. Настройка параметров системы должна выполняться автоматически с учетом акустических параметров помещения, его заполнения слушателями, а также диапазона частот акустического сигнала. Управление не может быть идеальным, но должно исключать резкие провалы и всплески уровня звука, а также обеспечивать восприятие информации большей частью слушателей.
2 Постановка задачи
Задача работы - проектирование системы автоматического управления уровнем акустического сигнала для обеспечения заданного соотношения сигнал/шум в помещении; раз-
• независимость от приложения, являющегося источником звука;
• использование быстрого алгоритма обработки сигналов для рационального использования системных ресурсов и управления в реальном масштабе времени;
• простой интерфейс конфигурирования системы, не требующий специальной подготовки оператора;
• работа под управлением ОС Windows XP/7.
3 Аналоги системы
Системы управления уровнем акустического сигнала используются в устройствах мобильной и служебной связи, аудиоплеерах, автомобильных акустических системах.
Система AVQ (Automatic Volume and eQualization control) - автоматический контроль спектра и громкости звука (фирма ALANGO Technologies and solutions). Технология автоматического контроля спектра и громкости звука (AVQ) усиливает и выравнивает звук в зависимости от характеристик шума, обеспечивает ровное восприятие громкости, разборчивость речи и музыки, особенно в условиях, когда уровень шума и спектр меняются динамически. Это значительно повышает удобство работы с такими устройствами, как мобильные телефоны, аудиосистемы автомобиля, Bluetooth гарнитуры, портативные музыкальные плееры. Микрофон используется для мониторинга текущих параметров шума. Сигнал, поступающий с микрофона, анализируется и система определяет параметры шума и акустического эха. Одновременно, текущие параметры сигнала анализируются и подаются в блок сравнения. Этот блок усиливает диапазон спектра сигнала, маскирующегося шумом (рис. 1).
Noise
mic
—------------------
Feedback | Noise Signal
cancellation estimation estimation
—r-1 —r~
Ml- DAC |e--- Adaptive EQ
spk
Рис. 1. Структура системы AVQ
Система представляет собой встраиваемый модуль системы VCP (Voice Communication Package - пакет голосовой связи), разработанный фирмой Alango и используемый в перечисленных выше устройствах [Alango Techologies, 2016].
Система Speed Depend Volume Control (oshiy) - контроль за громкостью в зависимости от скорости. При нахождении вне помещения устройство уменьшает влияние шума ветра на восприятие музыки через наушники, в общественном транспорте увеличивает громкость во время движения и уменьшает на остановках, в автомобиле снижает громкость во время остановок и при движении с маленькой скоростью. Программа разработана для Andriod OS [Speed Depend Volume Control, 2016].
Рассмотренные аналоги используются в автомобильных аудиосистемах и аудиопле-ерах и показывают высокую эффективность. Использованные в них принципы подтверждают возможность разработки системы, предназначенной для использования в помещениях больших размеров с различными акустическими параметрами.
4 Способы решения задачи
Изменение уровня громкости полезного сигнала. Наиболее распространенный способ. Заключается в оценке шума окружающей обстановки и соответствующем изменении уровня полезного акустического сигнала до заранее заданного соотношения сигнал/шум. Недостаток - метод может некорректно работать при резких всплесках шума, при постоянном шуме в узкой полосе частот. Как результат, может возникнуть дискомфорт слушателя при резком или избыточном увеличении уровня громкости.
Поэтому алгоритм управления должен предусматривать адаптацию текущих параметров системы к акустике помещения и характеру воспроизводимого аудиопотока,
с учетом ограничений на максимальный уровень громкости.
Возможные проблемы, связанные с захватом и обработкой звукового потока. На звуковые волны, распространяющиеся в помещении, действует много различных по своей природе факторов, начиная с акустических искажений, связанных с геометрией помещения, и заканчивая особенностями работы самого источника воспроизведения/захвата звука:
• стоячие акустические волны;
• изменение затухания звука при изменении заполнения помещения;
• искажения и шум из открытых окон и дверей;
• электромагнитные наводки на микрофон, соединительные кабели, звуковую карту;
• неправильно нормализованный исходящий аудиопоток.
5 Обзор способов реализации системы
Аппаратный. Способ применяется во встроенных акустических системах, в которых источник звука (колонки) и устройство восприятия шума (микрофон) имеют известные параметры и расположение, учтены при проектировании системы и не изменяются во времени. Благодаря этому системы просты и надёжны, но являются узкоспециализированными и требуют сложной и дорогостоящей разработки под конкретную задачу (автомобильные аудио-системы).
Аппаратно-программный. При совмещении функциональных особенностей описанных аналогов, когда входные данные, необходимые для определения уровня звука, обрабатываются на аппаратном уровне и затем передаются в устройство-источник звука, появляется возможность достаточно просто реализовать алгоритмы управления, сводя к минимуму сложные вычисления.
Такие решения применяются в специализированных звуковых картах в автомобильных акустических системах, когда заранее рассчитанные уровни компенсации шума для конкретного салона транспортного средств, зависящие от скорости движения автомобиля, передаются в систему.
Программный. Предполагается, что к системе могут быть подключены различные звуковоспроизводящие устройства (усили-
тель и колонки) и микрофон. Система должна функционировать в помещениях с различными акустическими параметрами.
Программная реализация подразумевает разработку прикладного программного обеспечения, ориентированного на работу под управлением операционной системы компьютера, которая, в свою очередь, предоставляет доступ ко всем необходимым ресурсам.
6 Принцип действия системы
Приложение захватывает входящий и исходящий аудиопотоки, выполняет их сравнение и заносит полученные коэффициенты в память. Для обработки потоки дискрети-зируются и обрабатываются с помощью алгоритма быстрого преобразования Фурье, затем происходит разделение спектра с использованием оконных функций. Полученные матрицы результатов смещаются друг относительно друга на величину запаздывания сигнала и затем вычитаются, после чего на основе оценки рассчитанных коэффициентов алгоритм производит требуемые изменения в исходящем аудиопотоке. Такой алгоритм универсален и точен, но из-за сложности математического аппарата требуется производительный компьютер для одновременного воспроизведения аудиопотока, оценивания окружающего шумового фона и корректировки исходящий аудиопотока в режиме реального времени.
Таким образом, система, при инициализации в конкретном помещении с установленным в нем звуковоспроизводящим устройством, выполняет расчет коэффициентов, используемых для управления исходящим аудиопотоком с целью достижения заданного соотношения сигнал/шум при ограничениях на максимальный уровень сигнала и скорость его изменения. Предполагается, что звуко-воспроизводящее устройство предварительно настроено на среднюю мощность исходящего аудиопотока, колонки установлены с учетом равномерности акустического поля, а также используются средства для предотвращения самовозбуждения из-за акустической обратной связи.
7 Средства разработки
Для написания программы была выбрана платформа разработки Nokia Qt SDK. Этот
производительный набор утилит позволяет создавать приложения любой степени сложности практически для любой современной мобильной и настольной платформы: Microsoft Windows, Mac OS X, Linux, Android. Программный комплекс имеет встроенные интуитивно понятные инструменты для написания и отладки кода, создания графических интерфейсов и полный комплект утилит для разработки мобильных приложений. При этом исходный код платформы открыт, и она поставляется по различным лицензиям, в том числе бесплатной. Программы, созданные с использованием стандартных библиотек Qt изначально являются кроссплатформенными, без привязки к системному API (application programming interface), что упрощает написание кода и уменьшает время разработки.
Часть прикладных задач требовала применения сторонних программных продуктов. Для работы со звуком был выбран редактор Audacity, а для работы с API использовалась вспомогательная утилита NirCmd.
8 Программная реализация
Работа программы начинается с класса Main, который создаёт и инициализирует MainWindow. В классе MainWindow описано управление формой (обработка нажатий кнопок и других управляющих элементов), также он выполняет основную функцию - контроль громкости.
При запуске инициализации всплывает окно с предупреждением «Сейчас будет произведена настройка приложения, перед тем, как продолжить, создайте тишину в помещении», и кнопками "Продолжить" и "Отмена". MainWindow создаёт и инициализирует класс Initialization, который открывает диалоговое окно, а также управляет формой и механизмом проведения инициализации и калибровки.
MainWindow ждет завершения инициализации, а затем получает ответ от него. Ответом могут быть только два варианта: 0 или 1 (была ошибка, или нет).
Классы AudioOutput и Generator служат для генерации аудиосигналов. Их создаёт и вызывает в нужном порядке Initialization. Классы AudioInput и AudioInfo служат для чтения показаний с АЦП и микрофона. Их также создаёт и вызывает в нужном порядке Initialization. AudioInput и AudioInfo
закрыты замыканием переменных, разносить их нельзя.
Класс AudioOutput генерирует весь необходимый набор аудиосигналов. Эти сигналы обрабатываются в Initialization. Если ошибки не было, то выполняется калибровка путём вызова все тех же AudioOutput и AudioInput, но с другими параметрами. По завершении калибровки AudioOutput порождает уже другой сигнал, его также обрабатывает Initialization.
В случае успешной инициализации внизу окна появляется зелёная надпись, что всё хорошо, иначе - красная надпись с сообщением «ошибка при инициализации». Если инициализация выполнена успешно и появилась зелёная надпись - алгоритм начинает работу.
В таком случае MainWindow вызывает все тот же AudioInput но с другими параметрами. Получив эти параметры, AudioInput начинает выдавать все принимаемые значения обратно классу MainWindow (в виде сигнала).
Класс MainWindow выполняет квантование времени (в зависимости от режима), рассчитывает среднее значение уровня звука и корректирует громкость (через класс Volcontrol).
Все отладочные данные, которые программа генерирует на всех этапах, класс Logger сохраняет в файлы debug.dat и data. csv в папке с исполняемыми файлами.
Алгоритм работы модуля инициализации
При запуске программа производит первичную инициализацию: воспроизводит звуковой сигнал синусоидальной формы частотой 1000 Гц, нарастающий от 10% до 100% системной громкости. После этого, получив таблицу соотношений уровня громкости воспроизведённого и принятого сигналов, программа производит коррекцию чувствительности микрофона.
Чувствительность микрофона при запуске устанавливается на уровне 50% и затем, в зависимости от результатов первичной инициализации, ступенчато изменяется на 10% в большую или меньшую сторону до достижения нужного результата.
После того, как таблица соотношений будет представлять собой серию линейно нарастающих коэффициентов, максимальное значение которых будет лежать в пределах от 40% до 60% разрешенных значе-
ний, программа переходит ко второму этапу инициализации.
На втором этапе происходит воспроизведение тестовых сигналов длительностью 500 мс по основным полосам со среднегеометрическими частотами 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 Гц и нарастающим уровнем звука от 10% до 100% от системного.
После воспроизведения тестового сигнала определяется, корректно ли работают колонки и микрофон, а затем, исходя из полученных результатов, рассчитывается уровень громкости сигнала.
Далее выполняется первый расчёт коэффициентов соответствия воспроизведённого и принятого звукового сигнала. Полученное частное (выход/вход), определяющее отношение уровней принимаемого сигнала к воспроизводимому, используется в дальнейших вычислениях.
9 Алгоритм действий пользователя при работе с программой
Первая операция, которую необходимо выполнить пользователю - выбрать активные аудиоустройства. Это требуется, когда система подключена к нескольким устройствам, принимающим и воспроизводящим звук (рис.2).
Рис. 2. Окно выбора активного устройства
Далее необходимо нажать кнопку запуска инициализации, при запуске которой будет выдана инструкция «Сейчас будет произведена настройка приложения, перед тем, как продолжить, создайте тишину в помещении» (рис.3), а в случае ошибки будет предложено несколько способов её исправления.
Список литературы
[Alango Techologies] URL:
http://www.alango.com/technologies-avq.php, (Дата обращения 10.02.2016).
[Speed Depend Volume Control] URL: https://play.google.com/store/apps/details?id=jp. enet.osls.musiccontrollerServiceVerEngFree&fe atur, (Дата обращения 10.02.2016).
После окончания двух этапов инициализации пользователь корректирует скорость реакции программы на шум (агрессивность работы алгоритма) и задает минимальный уровень громкости системного звука.
На этом этапе настройка заканчивается и программа может продолжить работу в фоновом режиме.
10 Тестирование программы
Тестирование выполнялось в рабочих условиях учебной аудитории для сбора статистических и отладочных сведений для настройки параметров программы.
Первые версии модуля инициализации выполняли полную оценку всего спектрального диапазона и выдавали в итоге избыточное количество коэффициентов, большая часть которых в итоге оказывала негативное влияние на устойчивость работы основного алгоритма.
Поэтому, в итоге было принято решение ограничить спектр сигналов и анализировать его на частотах 250, 500, 1000, 2000 и 4000 Гц.
При тестировании модуля инициализации эмпирическим путём были подобраны коэффициенты, благодаря чему удалось значительно повысить эффективность программы и избавиться от нескольких недостатков алгоритма. Длительность инициализации составила менее 3 минут.
Системы работоспособна в учебных аудиториях и залах небольших размеров. Использование ее в помещениях больших размеров требует внесения корректив в алгоритмы в связи с проявлением эффектов реверберации.
Благодарности
Авторы выражают благодарность выпускнику МИЭМ Карасеву Д.В. за помощь в написании и отладке программы.
Рис. 3. Окно инициализации программы