DeepLearning.netのチュートリアルに従って、画像から特徴を抽出するたたみ込みニューラルネットワークの実装方法を学びました。チュートリアルはよく説明されており、理解と理解が容易です。
同じCNNを拡張して、同時にビデオ(画像+音声)からマルチモーダル機能を抽出したいと思います。
ビデオ入力は、音声に関連付けられた期間(30 FPSなど)に表示される一連の画像(ピクセル強度)に過ぎないことを理解しています。ただし、オーディオとは何か、どのように機能するのか、またはネットワークにフィードされるためにどのように分解されるのかは、実際にはわかりません。
このテーマに関する論文(マルチモーダルな特徴の抽出/表現)をいくつか読みましたが、音声がネットワークに入力される方法については説明していません。
さらに、私の研究から、理解を達成するために意図的に感覚を除外しないため、マルチモダリティ表現は脳が実際に機能する方法であることを理解しています。私たちがそれを知ることなく、すべてが同時に起こります(共同表現)。簡単な例として、ライオンのar音が聞こえると、ライオンの精神的なイメージを即座に作成し、危険を感じ、その逆もあります。複数の神経パターンが脳内で発火し、ライオンがどのように見えるか、音がするか、感じるか、匂いがするかなどの包括的な理解を実現します。
上記は私の最終的な目標ですが、当面は簡単にするために問題を分解します。
音声がどのように分析され、その後畳み込みニューラルネットワークで表現されるかについて誰かが光を当てることができれば本当に感謝しています。また、マルチモーダル同期、ジョイント表現、およびマルチモーダルデータを使用してCNNをトレーニングする適切な方法に関するご意見をお寄せください。
編集:オーディオはスペクトログラムとして表現できることがわかりました。オーディオの一般的な形式として、水平線が時間を表し、垂直線が周波数を表す2つの幾何学的な次元を持つグラフとして表されます。
これらのスペクトログラムの画像で同じ手法を使用することは可能ですか?つまり、これらのスペクトログラムを畳み込みニューラルネットワークの入力画像として単純に使用できますか?
スペクトログラムで深い畳み込みネットワークを使用して、話し言葉の識別タスクを行いました。 this TopCoder contest で提供されるデータセットの精度は約95%でした。詳細は こちら です。
単純な畳み込みネットワークは時間特性をキャプチャしないため、たとえば この作業では 畳み込みネットワークの出力は時間遅延ニューラルネットワークに供給されました。しかし、実験では、追加の要素がなくても、入力が同じサイズの場合、少なくともいくつかのタスクで畳み込みネットワークがうまく機能することが示されています。
分類器をトレーニングするために、オーディオデータから特徴ベクトルを抽出する多くの手法があります。最も一般的に使用されるのはMFCC(メル周波数ケプストラム)と呼ばれるもので、これは「改善された」スペクトログラムと考えることができ、より適切な情報を保持してクラスを区別します。他の一般的に使用される手法はPLP(Perceptual Linear Predictive)で、これも良好な結果をもたらします。これらはまだあまり知られていない他の多くのものです。
最近では、ディープネットワークを使用して特徴ベクトルを単独で抽出しているため、画像認識の場合と同様です。これは研究の活発な分野です。少し前に、特徴抽出器を使用して画像(SIFT、HOGなど)の分類器をトレーニングしましたが、これらは、入力として生画像を持ち、特徴ベクトルを抽出する深層学習技術に置き換えられました(実際、深層学習とは本当にすべて)。
また、オーディオデータはシーケンシャルであることに注意することも非常に重要です。分類器をトレーニングした後、分類器によって与えられた確率を入力として使用して、音声モデルの最も可能性の高いシーケンスを選択するHMMまたはCRFとしてシーケンシャルモデルをトレーニングする必要があります。
音声認識を学ぶための良い出発点は、JurskyとMartinsです: 音声と言語処理 。これらすべての概念を非常によく説明しています。
[[〜#〜] edit [〜#〜]:潜在的に有用な情報を追加]
オーディオファイルからMFCC機能ベクトルを抽出するモジュールを備えた音声認識ツールキットが多数ありますが、この目的で使用することは必ずしも簡単ではありません。現在、 CMU Sphinx4 を使用しています。 FeatureFileDumperという名前のクラスがあり、スタンドアロンで使用して、オーディオファイルからMFCCベクトルを生成できます。