Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

Amazon Rekognition으로 오디오 이벤트 감지

대부분의 사람들이 오디오 데이터와 함께 머신 러닝(ML)을 사용하는 것을 생각할 때 일반적으로 떠오르는 사용 사례는 다음과 같습니다. 전사, 음성 대 텍스트라고도 합니다. 그러나 ML을 사용하여 소리를 감지하는 것을 포함하여 다른 유용한 응용 프로그램이 있습니다.

소프트웨어를 사용하여 소리를 감지하는 것을 오디오 이벤트 감지, 그리고 그것은 많은 응용 프로그램을 가지고 있습니다. 예를 들어, 기계에 문제가 있음을 나타내는 알람 벨을 듣고 시끄러운 공장 바닥의 소리를 모니터링하려고 한다고 가정합니다. 의료 환경에서 오디오 이벤트 감지를 사용하여 심각한 건강 문제를 나타내는 환자의 소리를 수동적으로 들을 수 있습니다. 미디어 워크로드는 예를 들어 스포츠 비디오에서 심판의 호루라기가 불 때를 감지하는 것과 같이 이 기술에 적합합니다. 물론 도시 거리 위에 장착된 마이크에서 총소리나 자동차 충돌 소리를 듣는 것과 같은 다양한 감시 워크로드에서 이 기술을 사용할 수 있습니다.

이 포스트는 중요한 배경음이 동시에 발생하더라도 오디오 파일에서 소리를 감지하는 방법을 설명합니다. 더군다나 놀랍게도 우리는 컴퓨터 비전 기반 기술을 사용하여 탐지를 수행합니다. 아마존 인식.

기계 학습과 함께 오디오 데이터 사용

오디오 이벤트를 감지하는 첫 번째 단계는 오디오 데이터가 표현되는 방식을 이해하는 것입니다. 이 게시물의 목적을 위해 녹음된 오디오만 다루지만 이러한 기술은 스트리밍 오디오에서 작동합니다.

녹음된 오디오는 일반적으로 시간 경과에 따라 녹음 중에 마이크에 부딪힌 음파의 강도를 측정하는 일련의 사운드 샘플로 저장됩니다. 이러한 샘플을 저장하는 형식은 매우 다양하지만 일반적인 접근 방식은 초당 10,000개, 20,000개 또는 40,000개 샘플을 저장하는 것이며 각 샘플은 0–65535(XNUMX바이트)의 정수입니다. 각 샘플은 특정 순간의 음파 강도만 측정하기 때문에 사운드 데이터는 원시 상태에 유용한 기능이 없기 때문에 일반적으로 ML 프로세스에 도움이 되지 않습니다.

해당 데이터를 유용하게 만들기 위해 사운드 샘플은 스펙트로 그램, 이는 시간 경과에 따른 다양한 주파수 대역의 강도를 보여주는 오디오 데이터의 표현입니다. 다음 이미지는 예를 보여줍니다.

이 이미지의 X축은 시간을 나타내며, 이는 이미지의 왼쪽 가장자리가 소리의 맨 처음이고 이미지의 오른쪽 가장자리가 끝임을 의미합니다. 이미지 내 데이터의 각 열은 서로 다른 주파수 대역(이미지 왼쪽의 눈금으로 표시됨)을 나타내며 각 지점의 색상은 해당 시점의 해당 주파수의 강도를 나타냅니다.

스펙트로그램의 수직 스케일링은 다른 표현으로 변경할 수 있습니다. 예를 들어 선형 스케일링은 Y축이 주파수에 걸쳐 균등하게 분할되는 것을 의미하고, 로그 스케일링은 로그 스케일을 사용하는 식입니다. 이러한 표현을 사용할 때의 문제는 사운드 파일의 주파수가 일반적으로 고르게 분포되지 않아 우리가 관심을 가질 수 있는 대부분의 정보가 결국 이미지 하단(더 낮은 주파수) 근처에 모여 있다는 것입니다.

이 문제를 해결하기 위해 샘플 이미지는 멜 스펙트로그램, 이는 인간이 소리를 인식하는 방식에 근접하도록 조정됩니다. 이미지의 왼쪽에 있는 주파수 표시기에 주목하십시오. 이 표시기는 수직으로 분포된 방법에 대한 아이디어를 제공하며 이것이 비선형 척도임이 분명합니다.

또한 측정되는 오디오의 다양한 기능을 향상시키기 위해 시간별로 주파수별 강도 측정을 수정할 수 있습니다. Mel 스펙트로그램에 의해 구현되는 Y축 스케일링과 마찬가지로 다른 것들은 음악(크로마)을 연구하는 데 사용되는 12개의 고유한 음높이 클래스의 강도와 같은 기능을 강조합니다. 또 다른 클래스는 수평(조화) 기능 또는 수직(타악기) 기능을 강조합니다. 감지되는 사운드 유형은 감지 시스템에 사용되는 스펙트로그램 유형을 구동해야 합니다.

앞의 예제 스펙트로그램은 2분이 조금 넘는 음악 클립을 나타냅니다. 확대하면 다음 이미지와 같이 더 자세히 표시됩니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

이미지 상단의 숫자는 오디오 파일의 시작부터 초 단위 시간을 나타냅니다. 초당 XNUMX회 이상 반복되는 것처럼 보이는 일련의 소리를 이미지 하단 근처의 밝은 색상으로 명확하게 볼 수 있습니다.

보시다시피, 이것은 오디오를 스펙트로그램으로 변환하는 것의 이점 중 하나입니다. 뚜렷한 소리는 육안으로 쉽게 볼 수 있으며 그렇지 않은 경우에도 컴퓨터 비전 물체 감지 알고리즘을 사용하여 자주 감지할 수 있습니다. 사실, 이것은 우리가 소리를 감지하기 위해 따르는 과정입니다.

스펙트로그램에서 개별 소리 찾기

검색하는 오디오 파일의 길이에 따라 3~30초만 지속되는 개별 사운드를 찾는 것이 어렵습니다. 우리가 공유한 첫 번째 스펙트로그램을 참조하십시오. XNUMX분 XNUMX초 분량의 전체 데이터를 보고 있기 때문에 XNUMX초 정도 지속되는 세부 정보는 볼 수 없습니다. 두 번째 이미지에서 보여지는 리듬을 보기 위해 많이 확대했습니다. 분명히, 더 큰 사운드 파일(따라서 훨씬 더 큰 스펙트로그램)을 사용하면 다른 접근 방식을 사용하지 않는 한 빠르게 문제가 발생합니다. 그 접근법은 윈도잉.

윈도우잉은 전체 스펙트로그램을 가로질러 이동하는 슬라이딩 윈도우를 사용하여 한 번에 몇 초(또는 그 미만)를 분리하는 것을 말합니다. 전체 이미지의 일부를 반복적으로 분리하여 감지할 소리의 존재를 검색할 수 있는 더 작은 이미지를 얻습니다. 각 창은 우리가 찾고 있는 이미지의 일부만 나타날 수 있기 때문에(창의 시작 부분에서 정확히 시작되지 않는 소리를 검색하는 경우와 같이) 창은 종종 후속 창을 겹치면서 수행됩니다. 예를 들어, 첫 번째 창은 0:00에 시작하여 2초 연장되고, 두 번째 창은 0:01에 시작하여 2초 연장되고, 세 번째 창은 0:02에 시작하여 2초 연장되는 식입니다.

윈도잉은 스펙트로그램 이미지를 수평으로 분할합니다. 이미지의 특정 수직 부분만 자르거나 검색하여 특정 주파수 대역을 분리하여 감지 프로세스의 효율성을 향상시킬 수 있습니다. 예를 들어, 감지하려는 알람 벨이 특정 주파수 범위에서 소리를 생성한다는 것을 알고 있는 경우 해당 주파수 범위만 고려하도록 현재 창을 수정할 수 있습니다. 이렇게 하면 조작할 데이터의 양이 크게 줄어들고 결과적으로 훨씬 더 빠른 검색이 가능해집니다. 또한 원하는 범위를 벗어난 주파수 대역에서 발생할 수 있는 오탐지 일치를 제거하므로 정확도가 향상됩니다. 다음 이미지는 전체 Y축(왼쪽)과 제한된 Y축(오른쪽)을 비교합니다.

전체 Y축

전체 Y축

제한된 Y축

제한된 Y축

이제 윈도우 방식으로 스펙트로그램을 반복하고 특정 주파수 대역으로 필터링하는 방법을 알았으므로 다음 단계는 사운드에 대한 실제 검색을 수행하는 것입니다. 이를 위해 우리는 Amazon Rekognition 사용자 지정 레이블. Rekognition Custom Labels 기능은 이미 여러 범주에 걸쳐 수천만 개의 이미지에 대해 훈련된 Amazon Rekognition의 기존 기능을 기반으로 합니다. 수천 개의 이미지 대신 작은 훈련 이미지 세트(일반적으로 수백 개의 이미지, 그러나 최적의 훈련 데이터 세트 크기는 모델의 부족 또는 과잉 훈련을 피하기 위해 특정 사용 사례에 따라 실험적으로 도달해야 합니다. ) Rekognition Custom Labels 콘솔을 통해 사용 사례에 따라 다릅니다.

이미지에 이미 레이블이 지정된 경우 몇 번의 클릭만으로 Amazon Rekognition 교육에 액세스할 수 있습니다. 또는 Amazon Rekognition 레이블 지정 인터페이스 내에서 직접 이미지에 레이블을 지정하거나 다음을 사용할 수 있습니다. 아마존 세이지 메이커 그라운드 진실 당신을 위해 그들에게 레이블을 지정합니다. Amazon Rekognition이 이미지 세트에서 교육을 시작하면 단 몇 시간 만에 사용자 지정 이미지 분석 모델을 생성합니다. 무대 뒤에서 Rekognition Custom Labels는 훈련 데이터를 자동으로 로드 및 검사하고, 올바른 ML 알고리즘을 선택하고, 모델을 훈련하고, 모델 성능 메트릭을 제공합니다. 그런 다음 다음을 통해 사용자 정의 모델을 사용할 수 있습니다. Rekognition 사용자 정의 레이블 API 응용 프로그램에 통합하십시오.

훈련 데이터 수집 및 Rekognition Custom Labels 모델 훈련

. 이 게시물과 연결된 GitHub 저장소, 배경 소음에 관계없이 화재 경보기가 울리는 소리를 듣는 방법을 보여주는 코드를 찾을 수 있습니다. 이 경우 Rekognition Custom Labels 모델은 이진 분류 모델입니다. 즉, 결과는 "연기 경보음이 감지되었습니다" 또는 "연기 경보음이 감지되지 않았습니다."입니다.

커스텀 모델을 생성하려면 훈련 데이터가 필요합니다. 해당 훈련 데이터는 환경 소리와 감지하려는 소리(예: 연기 경보기)의 두 가지 주요 유형으로 구성됩니다.

환경 데이터는 소리를 감지하려는 환경에 일반적으로 나타나는 다양한 사운드스케이프를 나타내야 합니다. 예를 들어 공장 환경에서 화재 경보음을 감지하려면 다음의 공장 환경에서 녹음된 소리로 시작하십시오. 다양한 상황(물론 연기 경보가 울리지 않음).

감지하려는 소리는 가능한 한 격리되어야 합니다. 즉, 녹음은 환경적 배경 소리가 없는 소리 자체여야 합니다. 예를 들어, 그것은 연기 경보가 울리는 소리입니다.

이러한 소리를 수집한 후 GitHub 리포지토리의 코드는 환경 소리를 나타내는 여러 이미지를 만들기 위해 다양한 방법으로 환경 소리와 연기 경보 소리를 결합하는 방법(그런 다음 이를 스펙트로그램으로 변환하는 방법)을 보여줍니다. 화재 경보기의 유무에 관계없이 겹쳐집니다. 다음 이미지는 연기 경보음(밝은 가로 막대)이 위에 오버레이된 일부 환경 소리의 예입니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

훈련 및 테스트 데이터는 아마존 단순 스토리지 서비스 (Amazon S3) 버킷. 다음 디렉터리 구조는 버킷 내에서 데이터를 구성하는 좋은 시작점입니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

GitHub 리포지토리의 샘플 코드를 사용하면 생성할 교육 이미지 수를 선택할 수 있습니다. Rekognition Custom Labels에는 많은 수의 훈련 이미지가 필요하지 않습니다. 200-500개의 이미지로 구성된 훈련 세트로 충분해야 합니다.

Rekognition Custom Labels 프로젝트를 생성하려면 훈련 데이터와 테스트 데이터(선택 사항)가 포함된 S3 폴더의 URI를 지정해야 합니다. 훈련 작업에 대한 데이터 원본을 지정할 때 옵션 중 하나는 다음과 같습니다. 자동 라벨링다음 스크린 샷에 표시된대로

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

이 옵션을 사용하면 Amazon Rekognition이 폴더 이름을 레이블 이름으로 사용합니다. 연기 경보 감지 사용 사례의 경우 기차 및 테스트 폴더 내부의 폴더 구조는 다음 스크린샷과 같습니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

훈련 데이터 이미지는 경보 폴더에 들어가는 연기 경보 소리가 포함된 스펙트로그램과 경보 폴더에 연기 경보 소리가 포함되지 않은 스펙트로그램과 함께 해당 폴더로 이동합니다. no_alarm 폴더. Amazon Rekognition은 이러한 이름을 사용자 지정 레이블 모델의 출력 클래스 이름으로 사용합니다.

사용자 지정 레이블 모델을 학습시키는 데는 일반적으로 30~90분이 걸립니다. 훈련이 끝나면 훈련된 모델을 시작해야 사용할 수 있습니다.

소리 감지를 위한 종단 간 아키텍처

모델을 만든 후 다음 단계는 추론 파이프라인을 설정하여 모델을 사용하여 오디오 파일에 연기 경보음이 있는지 감지할 수 있도록 하는 것입니다. 이렇게 하려면 입력 사운드를 스펙트로그램으로 변환한 다음 훈련 프로세스에서와 같이 주파수별로 창을 만들고 필터링해야 합니다. 스펙트로그램의 각 창은 연기 경보가 울렸는지 여부를 나타내는 분류를 반환하는 모델에 제공됩니다.

다음 다이어그램은 이 추론 파이프라인을 구현하는 아키텍처의 예를 보여줍니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.

이 아키텍처는 오디오 파일이 S3 버킷에 배치될 때까지 기다린 다음 AWS 람다 호출할 함수. Lambda는 서버를 프로비저닝하거나 관리하지 않고도 거의 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는 서버리스 이벤트 기반 컴퓨팅 서비스입니다. 200개 이상의 AWS 서비스 및 SaaS(Software as a Service) 애플리케이션에서 Lambda 함수를 트리거하고 사용한 만큼만 비용을 지불할 수 있습니다.

Lambda 함수는 버킷 이름과 오디오 파일의 키(또는 파일 이름) 이름을 수신합니다. 파일은 Amazon S3에서 함수의 메모리로 다운로드된 다음 스펙트로그램으로 변환하고 윈도우 및 주파수 필터링을 수행합니다. 그런 다음 스펙트로그램의 각 창 부분은 이전에 훈련된 Amazon Custom Labels 모델을 사용하여 소리를 감지하는 Amazon Rekognition으로 전송됩니다. 해당 소리가 발견되면 Lambda 함수는 다음을 사용하여 신호를 보냅니다. 아마존 단순 알림 서비스 (Amazon SNS) 알림. Amazon SNS는 알림을 보낼 수 있는 게시/구독 접근 방식을 제공합니다. 아마존 단순 대기열 서비스 (Amazon SQS) 대기열, Lambda 함수, HTTPS 엔드포인트, 이메일 주소, 모바일 푸시 등.

결론

오디오 데이터와 함께 기계 학습을 사용하여 다른 소리가 동시에 발생하는 경우에도 특정 소리가 발생하는 시기를 결정할 수 있습니다. 그렇게 하려면 사운드를 스펙트로그램 이미지로 변환한 다음 주파수 대역별로 윈도잉 및 필터링하여 해당 스펙트로그램의 다른 부분으로 귀환해야 합니다. Rekognition Custom Labels를 사용하면 소리 감지를 위한 사용자 지정 모델을 쉽게 훈련할 수 있습니다.

당신은을 사용할 수 있습니다 GitHub 레포 자신의 실험을 위한 출발점으로 이 게시물의 예제 코드를 포함합니다. 오디오 이벤트 감지에 대한 자세한 내용은 소리 이벤트 감지: 튜토리얼.


저자 소개

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.그렉 좀머 빌 AWS 프로토타이핑 및 클라우드 엔지니어링 팀의 시니어 프로토타이핑 설계자로, AWS 고객이 기계 학습, IoT 및 서버리스 기술과 관련된 문제에 대한 혁신적인 솔루션을 구현하도록 돕습니다. 그는 미시간 주 앤아버에 거주하며 요가 연습, 반려견 먹이주기, 포커 게임을 즐깁니다.

Amazon Rekognition PlatoBlockchain Data Intelligence로 오디오 이벤트를 감지합니다. 수직 검색. 일체 포함.제프 하만 AWS 프로토타이핑 및 클라우드 엔지니어링 팀의 수석 프로토타이핑 설계자로, AWS 고객이 어려운 문제에 대한 혁신적인 솔루션을 구현하도록 돕습니다. 코네티컷 주 유니언빌에 거주하며 목공, 대장간, 마인크래프트를 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습