Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Визначайте звукові події за допомогою Amazon Rekognition

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

Використання програмного забезпечення для визначення звуку називається виявлення звукових подій, і він має ряд застосувань. Наприклад, припустімо, що ви хочете стежити за звуками з галасливого заводського цеху, прислухаючись до тривожного дзвінка, який вказує на проблему з машиною. У медичному середовищі ви можете використовувати виявлення звукових подій, щоб пасивно прослуховувати звуки від пацієнта, які вказують на гостру проблему зі здоров’ям. Медіа-навантаження добре підходять для цієї техніки, наприклад, щоб виявити, коли лунає свисток судді у спортивному відео. І, звісно, ​​ви можете використовувати цю техніку для різноманітних завдань спостереження, як-от прослуховування пострілу чи звуку автомобільної аварії з мікрофона, встановленого над вулицею міста.

У цьому дописі описано, як виявити звуки в аудіофайлі, навіть якщо одночасно лунають значні фонові звуки. Більше того, можливо, дивно, ми використовуємо методи комп’ютерного зору для виявлення, використовуючи Amazon Rekognition.

Використання аудіоданих за допомогою машинного навчання

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

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

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

Вісь X цього зображення представляє час, тобто лівий край зображення – це самий початок звуку, а правий край зображення – кінець. Кожен стовпець даних на зображенні представляє різні діапазони частот (позначені шкалою ліворуч від зображення), а колір у кожній точці відображає інтенсивність цієї частоти в цей момент часу.

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

Щоб вирішити цю проблему, наше зразкове зображення є прикладом a Спектрограма Мела, який масштабується, щоб наблизити те, як люди сприймають звук. Зверніть увагу на індикатори частоти вздовж лівої сторони зображення — вони дають уявлення про те, як вони розподілені по вертикалі, і зрозуміло, що це нелінійна шкала.

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

Попередній приклад спектрограми представляє музичний кліп тривалістю трохи більше 2 хвилин. Збільшення показує більше деталей, як показано на наступному зображенні.

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Як бачите, це одна з переваг перетворення звуку на спектрограму — чіткі звуки часто легко видно неозброєним оком, і навіть якщо це не так, їх часто можна виявити за допомогою алгоритмів виявлення об’єктів комп’ютерного зору. Фактично, це саме той процес, який ми використовуємо, щоб виявити звуки.

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

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

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

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

Повна вісь Y

Повна вісь Y

Обмежена вісь Y

Обмежена вісь Y

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

Якщо ваші зображення вже позначені, навчання Amazon Rekognition доступне лише кількома клацаннями. Крім того, ви можете позначити зображення безпосередньо в інтерфейсі маркування Amazon Rekognition або скористатися Основна правда Amazon SageMaker щоб позначити їх для вас. Коли Amazon Rekognition починає навчання з вашого набору зображень, він створює для вас спеціальну модель аналізу зображення всього за кілька годин. За лаштунками Rekognition Custom Labels автоматично завантажує та перевіряє навчальні дані, вибирає правильні алгоритми ML, навчає модель і надає показники ефективності моделі. Потім ви можете використовувати власну модель через API розпізнавання користувацьких міток і інтегруйте його у свої програми.

Збирання навчальних даних і навчання моделі користувацьких міток Rekognition

У Сховище GitHub, пов’язане з цією публікацією, ви знайдете код, який показує, як прослухати звук димової сигналізації, що спрацьовує, незалежно від фонового шуму. У цьому випадку наша модель користувацьких міток Rekognition є моделлю двійкової класифікації, що означає, що результатами є «звук сигналізації про дим виявлено» або «звук сигналізації про дим не виявлено».

Щоб створити спеціальну модель, нам потрібні навчальні дані. Ці навчальні дані складаються з двох основних типів: звуки навколишнього середовища та звуки, які ви хочете виявити (наприклад, спрацювання димової сигналізації).

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

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

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

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Дані навчання та тестування зберігаються в Служба простого зберігання Amazon (Amazon S3) відро. Наступна структура каталогів є гарною відправною точкою для організації даних у сегменті.

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Зразок коду в сховищі GitHub дозволяє вибрати, скільки навчальних зображень потрібно створити. Для розпізнавання користувацьких міток не потрібна велика кількість навчальних зображень. Навчального набору з 200–500 зображень має бути достатньо.

Для створення проекту користувацьких міток Rekognition потрібно вказати URI папки S3, яка містить навчальні дані та (необов’язково) тестові дані. При вказівці джерел даних для навчальної роботи одним із варіантів є Автоматичне маркування, як показано на наступному знімку екрана.

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Використання цього параметра означає, що Amazon Rekognition використовує назви папок як назви міток. Для нашого випадку виявлення димової сигналізації структура папок у папках поїзда та тесту виглядає так, як показано на наступному знімку екрана.

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Зображення навчальних даних потрапляють у ці папки, причому спектрограми, що містять звук димової сигналізації, перебувають у папці тривоги, а спектрограми, які не містять звуку димової сигналізації, – у no_alarm папку. Amazon Rekognition використовує ці назви як назви вихідних класів для моделі спеціальних міток.

Навчання спеціальної моделі етикетки зазвичай займає 30–90 хвилин. Наприкінці цього навчання ви повинні запустити навчену модель, щоб вона стала доступною для використання.

Наскрізна архітектура для виявлення звуку

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

На наступній діаграмі показано приклад архітектури, яка реалізує цей конвеєр виведення.

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ця архітектура очікує, поки аудіофайл буде розміщено у відро S3, що потім викликає AWS Lambda функція, яку потрібно викликати. Lambda — це безсерверний обчислювальний сервіс, керований подіями, який дозволяє запускати код практично для будь-якого типу додатків або серверних служб без підготовки та керування серверами. Ви можете запустити функцію Lambda з понад 200 служб AWS і додатків програмного забезпечення як послуги (SaaS) і платити лише за те, що використовуєте.

Функція Lambda отримує назву сегмента та назву ключа (або назву файлу) аудіофайлу. Файл завантажується з Amazon S3 у пам’ять функції, яка потім перетворює його на спектрограму та виконує віконну та частотну фільтрацію. Потім кожна віконна частина спектрограми надсилається до Amazon Rekognition, яка використовує попередньо навчену модель Amazon Custom Labels для виявлення звуку. Якщо цей звук знайдено, функція Лямбда сигналізує про це за допомогою Служба простих сповіщень Amazon (Amazon SNS) сповіщення. Amazon SNS пропонує підхід pub/sub, куди можна надсилати сповіщення Служба простої черги Amazon (Amazon SQS) черги, функції Lambda, кінцеві точки HTTPS, адреси електронної пошти, мобільний push тощо.

Висновок

Ви можете використовувати машинне навчання з аудіоданими, щоб визначити, коли лунають певні звуки, навіть якщо інші звуки лунають одночасно. Для цього потрібно перетворити звук на зображення спектрограми, а потім навести на різні частини цієї спектрограми за допомогою вікна та фільтрації за діапазоном частот. Спеціальні мітки Rekognition дозволяють легко навчити спеціальну модель для виявлення звуку.

Ви можете використовувати GitHub репо містить приклад коду для цієї публікації як відправну точку для ваших власних експериментів. Додаткову інформацію про виявлення аудіоподій див Виявлення звукових подій: підручник.


Про авторів

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

Виявляйте звукові події за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Джефф Гарман є старшим архітектором із створення прототипів у команді AWS Prototyping and Cloud Engineering, де він допомагає клієнтам AWS впроваджувати інноваційні рішення складних проблем. Він живе в Юніонвіллі, штат Коннектикут, і захоплюється деревообробкою, ковальством і Minecraft.

Часова мітка:

Більше від AWS Машинне навчання