以前、アレクサにも使われている、音響イベント検出について解説しました。
音響イベント検出とは、「○○秒~○○秒にギターの音が鳴っている」といったことが、自動で分かるようになります。
今回は、その機能に加え、音源方向を特定する人工知能について、解説・実験してみます。
音響イベント検出とは
音響イベント検出とは、環境音認識のためのタスクで、以下の図のように、音データの中から特定の音響イベントの発生区間を検出するというものです。
図の下側のように、「○○秒~○○秒にギターの音が鳴っている」といったことが、自動で分かるようになります。
英語ではSound Event Detectionと呼ばれ、DCASEと呼ばれる環境音認識を目的としたコミュニティにおいて、音響イベント検出コンペが開催されています。
DCASE2020 Challenge - DCASE
この機能は、アメリカではすでにAlexa Guardというサービスとして、アレクサに搭載されているのですが、ユーザーが外出中のガラス破損音など、侵入者などの異常と思われる音響イベントを自動で検知して、スマホにお知らせしてくれたりします。
音響イベント検出と音源定位の同時推定とは
さて、音響イベント検出では、事前に学習した音響イベントの有無を判別するだけですが、それに加えて、音源の方向を同時に推定する方法が2018年に提案されています。
Adavanne, Sharath, et al. "Sound event localization and detection of overlapping sources using convolutional recurrent neural networks." IEEE Journal of Selected Topics in Signal Processing 13.1 (2018): 34-48.
このタスクは、「Sound Event Localization and Detection (SELD)」、日本語では、「音響イベント検出と定位(音源到来方向推定)」と呼ばれ、深層学習ベースの手法によって実現されます。DCASEと呼ばれる環境音認識を目的としたコミュニティにおいて、2019年よりSELDのためのコンペが開催されています。
これができると、以下の図のように、
「右の方から、話し声がする」
「前の方から、車が通過する音がする」
といったことがわかるようになります。より詳細に周囲環境を理解することができるので、例えばロボットであれば、より高度な認識機能を持ち、人間らしい振る舞いができるようになります。
ネットワーク構成
参考文献では、CRNN(Convolutional Recurrent Neural Network)という手法が用いられています。以前解説しましたが、CNNとRNNを組み合わせた手法で、それぞれを単体で使うよりも、性能が向上します。
具体的には、時系列波形である音の信号を短時間フーリエ変換(STFT)によって2次元画像に変換し、CNNとRNNを直列に組み合わせたCRNNに入力します。
音源の方向を推定するためには、人間の耳と同じように、複数のマイクが必要です。 詳細は省きますが、複数マイク間の音源到達時間差などの空間的な特徴を利用します。複雑に聞こえはしますが、そういった特徴を含んだ入力データを深層学習ネットワークに入力してやれば、とりあえずはうまくいきます。(精度を求めようとすると、突っ込むだけでは不十分ではありますが。)
ネットワーク構成は、以下の図に示すように、8層のCNNと2層の双方向GRUを用いたCRNNを用いました。その後、Deconvolution層を用いることで、Class x Angle x Timeという次元の出力を得ました。
実験条件
今回は、簡易的な実験を行うため、3クラスのドライソース音源を混合することで、データセットを作成しました。
音源クラス:3クラス(Voice, Barping, Cough)
音源方向:5°間隔72方向(水平方向360°)
1サンプルあたりのクラス数:3クラス
データ数:10,000データ
実験結果
上から、入力スペクトログラム、音響イベントの正解、予測結果の順で並んでいます。横軸が時間、縦軸は音源方向、色の違いがクラスを示しています。
特に、深い考察までは行いませんが、ほぼほぼ正しく音源クラス、方向ともに推定できていることが分かります。
まとめ
今回は、音響イベント検出に加え、音源方向推定を同時に行う深層学習ネットワークを紹介しました。
3クラスという小さなデータセットではありますが、クラス・音源方向ともに、高い精度で推定できていることが確認できました。
今後この機能がさらに発展し、クラス数の増加や対雑音性が向上することで、より高度な認識機能を備えたロボットが登場することかと思うので、非常に将来性のある分野ではないかと、個人的には考えています。
現状のアマゾンエコーには、音源方向推定はできませんが、今後こういった機能も搭載されるのではないでしょうか。
現状のアマゾンエコー(Alexa Guard)についても書いていますので、よければそちらもご覧ください。