Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。

Amazon Rekognition で音声イベントを検出する

ほとんどの人が音声データで機械学習 (ML) を使用することを考えるとき、通常頭に浮かぶユース ケースは次のとおりです。 転記、音声テキスト変換とも呼ばれます。 ただし、ML を使用して音を検出するなど、他にも便利なアプリケーションがあります。

ソフトウェアを使用して音を検出することを呼びます オーディオ イベントの検出、そしてそれには多くのアプリケーションがあります。 たとえば、騒がしい工場フロアからの音を監視し、機械の問題を示す警報ベルを聞きたいとします。 医療環境では、オーディオ イベント検出を使用して、急性の健康問題を示す患者からの音を受動的に聞くことができます。 メディア ワークロードは、この手法に適しています。たとえば、スポーツ ビデオで審判の笛が吹かれたことを検出する場合などです。 もちろん、この手法はさまざまな監視ワークロードで使用できます。たとえば、街の通りの上に取り付けられたマイクから発砲音や自動車事故の音を聞くことができます。

この投稿では、重要なバックグラウンド サウンドが同時に発生している場合でも、オーディオ ファイル内のサウンドを検出する方法について説明します。 さらに、おそらく驚くべきことに、コンピューター ビジョン ベースの手法を使用して検出を行います。 Amazonの再認識.

機械学習による音声データの使用

オーディオ イベントを検出するための最初のステップは、オーディオ データがどのように表現されているかを理解することです。 この投稿では、録音されたオーディオのみを扱いますが、これらの手法はストリーミング オーディオでも機能します。

録音されたオーディオは、通常、録音中にマイクに当たった音波の強度を経時的に測定する一連のサウンド サンプルとして保存されます。 これらのサンプルを保存する形式はさまざまですが、一般的なアプローチは、10,000 秒あたり 20,000、40,000、または 0 サンプルを保存することです。各サンプルは 65535 ~ XNUMX (XNUMX バイト) の整数です。 各サンプルは特定の瞬間の音波の強度のみを測定するため、生の状態では有用な機能がないため、サウンド データは一般に ML プロセスには役立ちません。

そのデータを有効にするために、サウンド サンプルは、 スペクトログラム、時間の経過に伴うさまざまな周波数帯域の強度を示すオーディオ データの表現です。 次の図に例を示します。

この画像の X 軸は時間を表します。つまり、画像の左端がサウンドの開始点であり、画像の右端が終了点です。 画像内のデータの各列は、異なる周波数帯域 (画像の左側の目盛りで示されます) を表し、各ポイントの色は、その時点でのその周波数の強度を表します。

スペクトログラムの垂直スケーリングは、他の表現に変更できます。 たとえば、線形スケーリングは、Y 軸が周波数にわたって均等に分割されることを意味し、対数スケーリングは対数スケールを使用するなどです。 これらの表現を使用する際の問題は、通常、サウンド ファイル内の周波数が均等に分散されていないことです。そのため、関心のあるほとんどの情報が画像の下部 (低周波数) 近くに集まってしまいます。

その問題を解決するために、私たちのサンプル画像は メルスペクトログラム、人間が音を知覚する方法を厳密に近似するようにスケーリングされます。 画像の左側にある周波数インジケーターに注目してください。これらは、それらが垂直方向にどのように分布しているかを示しており、非線形スケールであることは明らかです。

さらに、測定中のオーディオのさまざまな機能を強化するために、周波数ごとの強度の測定値を時間ごとに変更できます。 メル スペクトログラムによって実装される Y 軸のスケーリングと同様に、音楽 (クロマ) の研究に使用される 12 の特徴的なピッチ クラスの強度などの機能を強調するものもあります。 別のクラスは、水平 (ハーモニック) 機能または垂直 (パーカッシブ) 機能を強調します。 検出される音の種類によって、検出システムに使用されるスペクトログラムの種類が決まります。

前の例のスペクトログラムは、2 分強のミュージック クリップを表しています。 次の図に示すように、拡大すると詳細が明らかになります。

Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。

画像の上部にある数字は、オーディオ ファイルの開始からの秒数を示しています。 画像の下部近くの明るい色で示されているように、XNUMX 秒間に XNUMX 回以上繰り返されるように見える一連の音をはっきりと見ることができます。

ご覧のとおり、これはオーディオをスペクトログラムに変換する利点の XNUMX つです。明確な音は肉眼で簡単に確認できることが多く、そうでない場合でも、コンピュータ ビジョン オブジェクト検出アルゴリズムを使用して検出できることがよくあります。 実際、これはまさに私たちが音を検出するためにたどるプロセスです。

スペクトログラムで離散音を探す

検索するオーディオ ファイルの長さにもよりますが、3 ~ 30 秒しか持続しない個別のサウンドを見つけるのは困難です。 共有した最初のスペクトログラムを参照してください。XNUMX:XNUMX 分のデータ全体を表示しているため、XNUMX 秒程度しか続かない詳細は表示されません。 XNUMX番目の画像に示されているリズムを見るために、大幅に拡大しました。 明らかに、より大きなサウンド ファイル (したがって、はるかに大きなスペクトログラム) では、別のアプローチを使用しない限り、すぐに問題が発生します。 そのアプローチは呼ばれます ウィンドウ処理.

ウィンドウ処理とは、一度に数秒 (またはそれ以下) を分離して、スペクトログラム全体を移動するスライディング ウィンドウを使用することを指します。 画像全体の一部を繰り返し分離することで、検出対象の音の存在を検索できる小さな画像が得られます。 各ウィンドウは探している画像の一部しか得られない可能性があるため (ウィンドウの最初から正確に開始されないサウンドを検索する場合など)、ウィンドウ処理は多くの場合、後続のウィンドウを重ねて実行されます。 たとえば、最初のウィンドウは 0:00 に開始して 2 秒延長され、次に 0 番目のウィンドウは 01:2 に開始されて 0 秒延長され、02 番目のウィンドウは 2:XNUMX に開始されて XNUMX 秒延長されます。

ウィンドウ処理は、スペクトログラム イメージを水平方向に分割します。 画像の特定の垂直部分のみをトリミングまたは検索して特定の周波数帯域を分離することにより、検出プロセスの有効性を向上させることができます。 たとえば、検出したいアラーム ベルが特定の周波数から別の周波数の範囲の音を生成することがわかっている場合、現在のウィンドウを変更して、それらの周波数範囲のみを考慮することができます。 これにより、操作するデータの量が大幅に削減され、検索が大幅に高速化されます。 また、目的の範囲外の周波数帯域で発生する可能性のある偽陽性の一致が排除されるため、精度も向上します。 次の画像は、完全な Y 軸 (左) と限定された Y 軸 (右) を比較しています。

完全な Y 軸

完全な Y 軸

限定された Y 軸

限定された Y 軸

ウィンドウ処理アプローチを使用してスペクトログラムを反復処理し、特定の周波数帯域にフィルター処理する方法がわかったので、次のステップは実際にサウンドを検索することです。 そのために、私たちは使用します Amazon Rekognitionカスタムラベル. Rekognition カスタム ラベル機能は、Amazon Rekognition の既存の機能に基づいて構築されています。Amazon Rekognition は、多くのカテゴリにわたる数千万の画像で既にトレーニングされています。 何千もの画像の代わりに、トレーニング画像の小さなセット (通常は数百の画像) をアップロードするだけで済みますが、モデルのトレーニング不足または過剰トレーニングを避けるために、特定のユース ケースに基づいて実験的に最適なトレーニング データセットのサイズに到達する必要があります。 ) は、Rekognition カスタム ラベル コンソールを介してユース ケースに固有のものです。

画像がすでにラベル付けされている場合、数回クリックするだけで Amazon Rekognition トレーニングにアクセスできます。 または、Amazon Rekognition のラベル付けインターフェイス内で画像に直接ラベルを付けるか、 Amazon SageMakerグラウンドトゥルース ラベルを付けます。 Amazon Rekognition が画像セットからトレーニングを開始すると、わずか数時間でカスタム画像分析モデルが作成されます。 バックグラウンドで、Rekognition Custom Labels は自動的にトレーニング データを読み込んで検査し、適切な ML アルゴリズムを選択し、モデルをトレーニングし、モデル パフォーマンス メトリックを提供します。 その後、カスタムモデルを Rekognition カスタム ラベル API アプリケーションに統合します。

トレーニング データの組み立てと Rekognition カスタム ラベル モデルのトレーニング

この投稿に関連付けられている GitHub リポジトリでは、バックグラウンド ノイズに関係なく、煙探知機の音を聞く方法を示すコードを見つけることができます。 この場合、Rekognition カスタム ラベル モデルはバイナリ分類モデルであり、結果は「煙警報音が検出された」または「煙警報音が検出されなかった」のいずれかになります。

カスタム モデルを作成するには、トレーニング データが必要です。 このトレーニング データは、主に XNUMX つのタイプで構成されています。環境音と、検出したい音 (煙警報が鳴るなど) です。

環境データは、音を検出したい環境に典型的なさまざまなサウンドスケープを表す必要があります。たとえば、工場環境で煙警報音を検出したい場合は、その工場環境で録音された音から始めます。さまざまな状況(もちろん、煙警報が鳴らなくても)。

検出したい音は、可能であれば分離する必要があります。つまり、録音は、環境の背景音のない音そのものであるべきです。 この例では、煙探知機が鳴る音です。

これらの音を収集した後、GitHub リポジトリのコードは、環境音を表す多数の画像を作成するために、環境音を煙警報音とさまざまな方法で組み合わせる方法 (およびそれらをスペクトログラムに変換する方法) を示しています。煙警報音の有無にかかわらず。 次の画像は、その上に煙警報音 (明るい水平バー) が重ねられた環境音の例です。

Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。

トレーニング データとテスト データは、 Amazon シンプル ストレージ サービス (Amazon S3) バケット。 次のディレクトリ構造は、バケット内のデータを整理するための出発点として適しています。

Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。

GitHub リポジトリのサンプル コードでは、作成するトレーニング イメージの数を選択できます。 Rekognition カスタム ラベルは、多数のトレーニング イメージを必要としません。 200 ~ 500 枚の画像のトレーニング セットで十分です。

Rekognition Custom Labels プロジェクトを作成するには、トレーニング データと (オプションで) テスト データを含む S3 フォルダーの URI を指定する必要があります。 トレーニング ジョブのデータ ソースを指定するときのオプションの XNUMX つは、 自動ラベリング、次のスクリーンショットに示すように。

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 は、サーバーをプロビジョニングまたは管理することなく、ほぼすべてのタイプのアプリケーションまたはバックエンド サービスのコードを実行できる、サーバーレスのイベント駆動型コンピューティング サービスです。 200 を超える AWS サービスとサービスとしてのソフトウェア (SaaS) アプリケーションから Lambda 関数をトリガーし、使用した分だけ支払うことができます。

Lambda 関数は、バケットの名前と音声ファイルのキーの名前 (またはファイル名) を受け取ります。 ファイルは Amazon S3 から関数のメモリにダウンロードされ、スペクトログラムに変換され、ウィンドウ処理と周波数フィルタリングが実行されます。 次に、スペクトログラムのウィンドウ処理された各部分が Amazon Rekognition に送信されます。Amazon Rekognition は、以前にトレーニングされた Amazon カスタム ラベル モデルを使用して音を検出します。 その音が見つかった場合、Lambda 関数は Amazon シンプル通知サービス (Amazon SNS) 通知。 Amazon SNS は、通知を送信できる pub/sub アプローチを提供します Amazon シンプル キュー サービス (Amazon SQS) キュー、Lambda 関数、HTTPS エンドポイント、E メールアドレス、モバイルプッシュなど。

まとめ

オーディオ データで機械学習を使用して、他の音が同時に発生している場合でも、特定の音がいつ発生するかを判断できます。 これを行うには、サウンドをスペクトログラム イメージに変換し、周波数帯域によるウィンドウ処理とフィルタリングによって、そのスペクトログラムのさまざまな部分を特定する必要があります。 Rekognition Custom Labels を使用すると、サウンド検出用のカスタム モデルを簡単にトレーニングできます。

あなたが使用することができます GitHubレポ 独自の実験の開始点として、この投稿のサンプル コードが含まれています。 オーディオ イベント検出の詳細については、次を参照してください。 サウンド イベント検出: チュートリアル.


著者について

Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。グレッグサマービル は、AW​​S プロトタイピングおよびクラウドエンジニアリングチームのシニアプロトタイピングアーキテクトであり、AWS のお客様が機械学習、IoT、およびサーバーレステクノロジーに関する困難な問題に革新的なソリューションを実装するのを支援しています. 彼はミシガン州アナーバーに住んでおり、ヨガの練習、犬の食事、ポーカーを楽しんでいます。

Amazon Rekognition PlatoBlockchain Data Intelligence を使用してオーディオ イベントを検出します。 垂直検索。 あい。ジェフ・ハーマン AWS プロトタイピングおよびクラウドエンジニアリングチームのシニアプロトタイピングアーキテクトであり、AWS のお客様が困難な問題に対して革新的なソリューションを実装するのを支援しています。 彼はコネチカット州ユニオンビルに住み、木工、鍛冶、マインクラフトを楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習