Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Обнаружение аудиособытий с помощью Amazon Rekognition

Когда большинство людей думают об использовании машинного обучения (ML) с аудиоданными, на ум обычно приходит вариант использования: запись, также известный как преобразование речи в текст. Однако есть и другие полезные приложения, в том числе использование машинного обучения для обнаружения звуков.

Использование программного обеспечения для обнаружения звука называется обнаружение звуковых событий, и у него есть ряд приложений. Например, предположим, что вы хотите отслеживать звуки из шумного фабричного цеха, прислушиваясь к сигналу тревоги, указывающему на проблему с машиной. В среде здравоохранения вы можете использовать обнаружение аудиособытий, чтобы пассивно прослушивать звуки от пациента, которые указывают на острую проблему со здоровьем. Медиа-нагрузки хорошо подходят для этой техники, например, для обнаружения свистка судьи в спортивном видео. И, конечно же, вы можете использовать эту технику в различных задачах наблюдения, например, прослушивая выстрел или звук автокатастрофы из микрофона, установленного над городской улицей.

В этом посте описывается, как обнаруживать звуки в аудиофайле, даже если в то же время происходят значительные фоновые звуки. Более того, что может показаться удивительным, мы используем методы компьютерного зрения для обнаружения, используя Апостол.

Использование аудиоданных с машинным обучением

Первым шагом в обнаружении аудиособытий является понимание того, как представлены аудиоданные. Для целей этого поста мы имеем дело только с записанным звуком, хотя эти методы работают с потоковым звуком.

Записанный звук обычно хранится в виде последовательности звуковых образцов, которые измеряют интенсивность звуковых волн, попадающих в микрофон во время записи, с течением времени. Существует множество форматов для хранения этих выборок, но общий подход заключается в хранении 10,000 20,000, 40,000 0 или даже 65535 XNUMX выборок в секунду, причем каждая выборка представляет собой целое число от XNUMX до XNUMX XNUMX (два байта). Поскольку каждый образец измеряет только интенсивность звуковых волн в определенный момент, звуковые данные обычно бесполезны для процессов машинного обучения, поскольку в необработанном виде они не имеют никаких полезных функций.

Чтобы сделать эти данные полезными, образец звука преобразуется в изображение, называемое спектрограмма, который представляет собой представление аудиоданных, показывающих интенсивность различных частотных диапазонов с течением времени. На следующем изображении показан пример.

Ось X этого изображения представляет время, а это означает, что левый край изображения — это самое начало звука, а правый край — конец. Каждый столбец данных на изображении представляет разные частотные диапазоны (обозначенные шкалой в левой части изображения), а цвет в каждой точке представляет интенсивность этой частоты в данный момент времени.

Вертикальное масштабирование спектрограмм можно изменить на другое представление. Например, линейное масштабирование означает, что ось Y равномерно делится по частотам, логарифмическое масштабирование использует логарифмическую шкалу и так далее. Проблема с использованием этих представлений заключается в том, что частоты в звуковом файле обычно распределяются неравномерно, поэтому большая часть интересующей нас информации в конечном итоге сгруппирована в нижней части изображения (более низкие частоты).

Чтобы решить эту проблему, наш образец изображения является примером Мел спектрограмма, масштаб которого точно соответствует тому, как люди воспринимают звук. Обратите внимание на индикаторы частоты вдоль левой стороны изображения — они дают представление о том, как они распределены по вертикали, и ясно, что это нелинейная шкала.

Кроме того, мы можем изменить измерение интенсивности по частоте по времени, чтобы улучшить различные характеристики измеряемого звука. Как и в случае масштабирования по оси Y, реализованного с помощью спектрограммы Мела, другие подчеркивают такие особенности, как интенсивность 12 различных классов высоты тона, которые используются для изучения музыки (цветность). Другой класс подчеркивает горизонтальные (гармонические) особенности или вертикальные (ударные) особенности. Тип обнаруживаемого звука должен управлять типом спектрограммы, используемой для системы обнаружения.

Спектрограмма из предыдущего примера представляет собой музыкальный клип продолжительностью чуть более 2 минут. Увеличение показывает больше деталей, как показано на следующем изображении.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Цифры в верхней части изображения показывают количество секунд от начала аудиофайла. Вы можете четко видеть последовательность звуков, которые, кажется, повторяются более четырех раз в секунду, обозначенные яркими цветами в нижней части изображения.

Как видите, это одно из преимуществ преобразования звука в спектрограмму — отчетливые звуки часто легко видны невооруженным глазом, а даже если это не так, их часто можно обнаружить с помощью алгоритмов обнаружения объектов компьютерного зрения. Фактически, это именно тот процесс, которому мы следуем, чтобы обнаруживать звуки.

Поиск дискретных звуков в спектрограмме

В зависимости от длины аудиофайла, который мы ищем, поиск дискретного звука, который длится всего секунду или две, является сложной задачей. Обратитесь к первой спектрограмме, которой мы поделились — поскольку мы просматриваем данные за полные 3:30 минуты, детали, которые длятся всего секунду или около того, не видны. Мы сильно увеличили масштаб, чтобы увидеть ритм, показанный на втором изображении. Очевидно, что с большими звуковыми файлами (и, следовательно, гораздо большими спектрограммами) мы быстро столкнемся с проблемами, если не воспользуемся другим подходом. Такой подход называется оконного.

Работа с окнами относится к использованию скользящего окна, которое перемещается по всей спектрограмме, выделяя несколько секунд (или меньше) за раз. Многократно изолируя части общего изображения, мы получаем изображения меньшего размера, которые доступны для поиска на наличие обнаруживаемого звука. Поскольку каждое окно может дать только часть изображения, которое мы ищем (как в случае поиска звука, который не начинается точно в начале окна), работа с окнами часто выполняется с перекрытием последующих окон. Например, первое окно начинается в 0:00 и длится 2 секунды, затем второе окно начинается в 0:01 и продолжается 2 секунды, третье окно начинается в 0:02 и продолжается 2 секунды и так далее.

Окно разбивает изображение спектрограммы по горизонтали. Мы можем повысить эффективность процесса обнаружения, изолируя определенные полосы частот путем обрезки или поиска только определенных вертикальных частей изображения. Например, если вы знаете, что будильник, который вы хотите обнаружить, создает звуки, которые варьируются от одной определенной частоты до другой, вы можете изменить текущее окно, чтобы учитывать только эти частотные диапазоны. Это значительно уменьшает количество обрабатываемых данных и приводит к гораздо более быстрому поиску. Это также повышает точность, поскольку устраняет возможные ложные совпадения, возникающие в полосах частот за пределами желаемого диапазона. Следующие изображения сравнивают полную ось Y (слева) с ограниченной осью Y (справа).

Полная ось Y

Полная ось Y

Ограниченная ось Y

Ограниченная ось Y

Теперь, когда мы знаем, как перебирать спектрограмму с оконным подходом и фильтровать определенные полосы частот, следующим шагом будет собственно поиск звука. Для этого мы используем Пользовательские ярлыки Amazon Rekognition. Функция пользовательских меток Rekognition основывается на существующих возможностях Amazon Rekognition, которые уже прошли обучение на десятках миллионов изображений во многих категориях. Вместо тысяч изображений вам просто нужно загрузить небольшой набор обучающих изображений (обычно несколько сотен изображений, но оптимальный размер обучающего набора данных должен быть получен экспериментально на основе конкретного варианта использования, чтобы избежать недостаточного или чрезмерного обучения модели). ), соответствующие вашему варианту использования, с помощью консоли Rekognition Custom Labels.

Если ваши изображения уже помечены, обучение Amazon Rekognition доступно всего несколькими щелчками мыши. Кроме того, вы можете маркировать изображения непосредственно в интерфейсе маркировки Amazon Rekognition или использовать Amazon SageMaker - основа правды чтобы пометить их для вас. Когда Amazon Rekognition начинает обучение на вашем наборе изображений, он создает для вас пользовательскую модель анализа изображений всего за несколько часов. Незаметно Rekognition Custom Labels автоматически загружает и проверяет обучающие данные, выбирает правильные алгоритмы машинного обучения, обучает модель и предоставляет показатели производительности модели. Затем вы можете использовать свою пользовательскую модель через API пользовательских меток Rekognition и интегрируйте его в свои приложения.

Сбор обучающих данных и обучение модели Rekognition Custom Labels

В Репозиторий GitHub, связанный с этим постом, вы найдете код, который показывает, как прослушивать звук срабатывания пожарной сигнализации независимо от фонового шума. В этом случае наша модель пользовательских меток Rekognition представляет собой модель бинарной классификации, что означает, что результаты либо «был обнаружен звук дымовой сигнализации», либо «звук дымовой сигнализации не был обнаружен».

Чтобы создать пользовательскую модель, нам нужны обучающие данные. Эти обучающие данные состоят из двух основных типов: звуки окружающей среды и звуки, которые вы хотите обнаружить (например, срабатывание пожарной сигнализации).

Данные об окружающей среде должны представлять широкий спектр звуковых ландшафтов, типичных для среды, в которой вы хотите обнаружить звук. Например, если вы хотите обнаружить звук пожарной сигнализации в заводской среде, начните со звуков, записанных в этой заводской среде в разделе различных ситуациях (без срабатывания дымовой сигнализации, конечно).

Звуки, которые вы хотите обнаружить, должны быть изолированы, если это возможно, то есть записи должны быть просто звуком без каких-либо фоновых звуков окружающей среды. В нашем примере это звук срабатывания пожарной сигнализации.

После того, как вы собрали эти звуки, код в репозитории GitHub показывает, как комбинировать звуки окружающей среды со звуками пожарной сигнализации различными способами (и затем преобразовывать их в спектрограммы), чтобы создать ряд изображений, представляющих звуки окружающей среды. с наложенными на них звуками пожарной сигнализации и без них. На следующем изображении показан пример некоторых звуков окружающей среды со звуком пожарной сигнализации (яркие горизонтальные полосы), наложенным поверх него.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Данные обучения и тестирования хранятся в Простой сервис хранения Amazon (Amazon S3) ведро. Следующая структура каталогов является хорошей отправной точкой для организации данных в корзине.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Пример кода в репозитории GitHub позволяет выбрать, сколько обучающих изображений создавать. Rekognition Custom Labels не требует большого количества обучающих изображений. Учебного набора из 200–500 изображений должно быть достаточно.

Для создания проекта Rekognition Custom Labels необходимо указать URI папки S3, содержащей обучающие данные и (необязательно) тестовые данные. При указании источников данных для задания обучения одним из вариантов является Автоматическая маркировка, как показано на следующем скриншоте.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Использование этого параметра означает, что Amazon Rekognition использует имена папок в качестве имен меток. В нашем случае обнаружения дымовой сигнализации структура папок внутри папок train и test выглядит так, как показано на следующем снимке экрана.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Образы обучающих данных помещаются в эти папки, при этом спектрограммы, содержащие звук пожарной сигнализации, помещаются в папку аварийных сигналов, а спектрограммы, не содержащие звуковой сигнал дымовой сигнализации, — в папку аварийных сигналов. no_alarm папка. Amazon Rekognition использует эти имена в качестве имен выходных классов для пользовательской модели меток.

Обучение пользовательской модели этикетки обычно занимает 30–90 минут. В конце этого обучения вы должны запустить обученную модель, чтобы она стала доступной для использования.

Сквозная архитектура для обнаружения звука

После того, как мы создадим нашу модель, следующим шагом будет настройка конвейера логического вывода, чтобы мы могли использовать модель для определения наличия звука пожарной сигнализации в аудиофайле. Для этого входной звук необходимо превратить в спектрограмму, а затем отфильтровать по частоте, как это было сделано для процесса обучения. Каждое окно спектрограммы передается модели, которая возвращает классификацию, указывающую, сработала ли пожарная сигнализация или нет.

На следующей диаграмме показан пример архитектуры, реализующей этот конвейер логического вывода.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Эта архитектура ожидает помещения аудиофайла в корзину S3, что затем вызывает AWS Lambda функция, которую нужно вызвать. Lambda — это бессерверная служба вычислений, управляемая событиями, которая позволяет запускать код практически для любого типа приложений или серверных служб без выделения серверов или управления ими. Вы можете активировать функцию Lambda из более чем 200 сервисов AWS и приложений «программное обеспечение как услуга» (SaaS) и платить только за то, что используете.

Функция Lambda получает имя корзины и имя ключа (или имя файла) аудиофайла. Файл загружается с Amazon S3 в память функции, которая затем преобразует его в спектрограмму и выполняет оконную и частотную фильтрацию. Каждая оконная часть спектрограммы затем отправляется в Amazon Rekognition, который использует предварительно обученную модель Amazon Custom Labels для обнаружения звука. Если этот звук найден, лямбда-функция сигнализирует об этом с помощью Amazon Простая служба уведомлений (Amazon SNS) уведомление. Amazon SNS предлагает подход «публикация/подписка», при котором уведомления могут отправляться на Простой сервис очередей Amazon (Amazon SQS), функции Lambda, конечные точки HTTPS, адреса электронной почты, мобильные push-уведомления и многое другое.

Заключение

Вы можете использовать машинное обучение с аудиоданными, чтобы определить, когда возникают определенные звуки, даже когда другие звуки возникают в то же время. Для этого требуется преобразовать звук в изображение спектрограммы, а затем перейти к различным частям этой спектрограммы с помощью окна и фильтрации по частотному диапазону. Rekognition Custom Labels упрощает обучение пользовательской модели обнаружению звука.

Вы можете использовать Репо GitHub содержащий пример кода для этого поста в качестве отправной точки для ваших собственных экспериментов. Дополнительные сведения об обнаружении аудиособытий см. Обнаружение звуковых событий: Учебное пособие.


Об авторах

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Грег Соммервилл является старшим архитектором прототипов в команде AWS Prototyping and Cloud Engineering, где он помогает клиентам AWS внедрять инновационные решения сложных проблем с машинным обучением, IoT и бессерверными технологиями. Он живет в Анн-Арборе, штат Мичиган, и любит заниматься йогой, обслуживать своих собак и играть в покер.

Обнаруживайте аудиособытия с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джефф Харман — старший архитектор прототипов в команде AWS Prototyping and Cloud Engineering, где он помогает клиентам AWS внедрять инновационные решения сложных проблем. Он живет в Юнионвилле, штат Коннектикут, и увлекается деревообработкой, кузнечным делом и Minecraft.

Отметка времени:

Больше от Машинное обучение AWS