笑いはいつ始まりますか?


14

私の週末のプロジェクトの1つは、信号処理の深海に連れて行ってくれました。いくつかの強力な数学を必要とするすべてのコードプロジェクトと同様に、理論的な根拠がないにも関わらず、解決策に手を加えたいと思っていますが、この場合は何もありません。つまり、テレビ番組中にライブの視聴者が笑うタイミングを正確に把握しようとしています。

私は笑いを検出するための機械学習アプローチを読むのにかなりの時間を費やしましたが、それは個々の笑いを検出することと関係があることに気付きました。一度に笑う200人は、音響特性が大きく異なります。私の直感では、ニューラルネットワークよりもはるかに粗雑な手法で区別できるはずです。私は完全に間違っているかもしれません!問題についての考えをいただければ幸いです。

これまでに試したことは次のとおりです。最近のサタデーナイトライブのエピソードから5分の抜粋を2秒のクリップに切り取りました。次に、これらの「笑い」または「笑いなし」とラベルを付けました。LibrosaのMFCC機能抽出ツールを使用して、データに対してK-Meansクラスタリングを実行しました。2つのクラスターがラベルに非常にきれいにマッピングされました。しかし、より長いファイルを反復処理しようとしたとき、予測には意味がありませんでした。

これから試すこと:これらの笑いのクリップを作成することについて、より正確になります。ブラインドスプリットアンドソートを行うのではなく、手動で抽出して、ダイアログが信号を汚染しないようにします。次に、それらを1/4秒のクリップに分割し、これらのMFCCを計算し、それらを使用してSVMをトレーニングします。

この時点での私の質問:

  1. これは理にかなっていますか?

  2. ここで統計が役立ちますか?私はAudacityのスペクトログラムビューモードでスクロールしてきましたが、笑いが発生する場所をかなりはっきりと見ることができます。対数パワースペクトログラムでは、スピーチは非常に特徴的な「溝」のように見えます。対照的に、笑いは、ほぼ正規分布のように、周波数の広いスペクトルを非常に均等にカバーします。拍手で表されるより限定された頻度のセットによって、拍手と笑いを視覚的に区別することさえ可能です。これにより、標準偏差を考えることができます。コルモゴロフ–スミルノフ検定と呼ばれるものがありますが、ここで役立つかもしれません。 対数パワースペクトログラム (上の画像では、45%のところでオレンジ色の壁がヒットしているように笑い声を見ることができます。)

  3. 線形スペクトログラムは、笑いが低周波数でよりエネルギッシュであり、高周波数に向かってフェードアウトすることを示しているようです-これはピンクノイズとしての資格があることを意味しますか?もしそうなら、それは問題の足がかりになりますか? スペクトログラム

専門用語を誤用した場合は謝罪します。この用語についてはウィキペディアにかなり載っていますが、ごちゃごちゃになったとしても驚かないでしょう。


1
「笑いの跡をしっかり検出するためにニューラルネットワークは必要ない」ということに同意します。私はまた、あなたが、信号でコルモゴロフを投げるあなたは正しい、と笑いトラックはIID笑の(加重)和であるならば、あなたは、通常の機能を取得する必要があることを考慮に同意いくつかの種類を。たぶん、周波数分解能を上げたいと思うかもしれません。ちなみに、DSPに「慣れていない」人にとっては、あなたの専門用語は結構です:)悲しいことに、私はオーディオの男ではないので、おそらくあまり役​​に立たないでしょう。
マーカスミュラー

お手伝いさせていただきます。トレーニング用のデータはありますか?最も重要なことの1つは、データのラベル付けです。ガベージイン-ガベージアウト。最も単純で効果的なアプローチの1つは、bag-of-frames GMMをトレーニングし、尤度を評価することです。
jojek

所定の時間に信号のパワー/振幅をチェックすることで笑いを無音から分離できる場合は、最初にチェックすることをお勧めします。「何か」が起こっている瞬間を閾値にする可能性を与えます。次に、頻度の分布を見てみることができます。たとえば、スピーチにはいくつかの特徴的な鋭いピークがあります(これらのピークがどこにあるかは気にしないでください)。これを追跡すると、笑いかどうかを判断するための値が得られる場合があります。(ボリューム情報が必要です。均一な静寂を持たないようにするため)
user6522399

回答:


0

観測に基づいて、その信号のスペクトルは十分に識別可能であるため、これを音声から笑いを分類する機能として使用できます。

問題を調べる方法はたくさんあります。

アプローチ#1

一度だけ、MFCCのベクトルを見ることができます。これを分類器に適用します。周波数領域には多くの係数があるため、これに基づいてAdaboostなどのブースティングアルゴリズムを使用してカスケード分類子構造を調べたい場合があります。音声クラスと笑いクラスを比較できます。

アプローチ#2

音声は本質的に時変信号であることに気づきます。そのため、効果的な方法の1つは、信号自体の時間変動を調べることです。このために、サンプルのバッチで信号を分割し、その時間のスペクトルを見ることができます。さて、スピーチが本質的に多くの情報を所有するため、スペクトルの変動がかなり大きくなる規定された持続時間の間、笑いはより反復的なパターンを有する可能性があることに気付くかもしれません。これをHMMタイプのモデルに適用して、特定の周波数スペクトルで一貫して同じ状態を維持しているか、継続的に変化しているかを確認できます。ここで、時折スピーチのスペクトルが笑いのスペクトルに似ていても、それはより多くの時間を変更します。

アプローチ#3

LPC / CELPタイプのコーディングを信号に強制的に適用し、残差を観察します。CELPコーディングは、音声生成の非常に正確なモデルを作成します。

ここの参照から:CELPコーディングの理論

音声信号の冗長性は、音声信号の短期予測と長期予測の後にほぼ削除され、残差にはほとんど相関が残っていません。次に、音声を合成する励起が検索され、コードブックのインデックスとゲインが固定コードブックから検索されます。最適なコードブックインデックス選択基準は、ローカルで合成された音声と元の音声信号の間のMMSEに基づいています。

簡単に言うと、アナライザーから予測されたすべての音声が削除された後、残されたものが正確な波形を再作成するために送信されます。

それはあなたの問題にどのように役立ちますか?基本的に、CELPコーディングを適用すると、信号のスピーチはほとんど削除され、残りは残りです。笑い声の場合、CELPは声道モデリングでそのような信号を予測できず、個々の音声にはほとんど残留がないため、信号の大部分が保持される可能性があります。この残留物を周波数領域で分析して、それが笑い声なのか音声なのかを調べることもできます。


0

ほとんどの音声認識エンジンは、MFCC係数だけでなく、MFCCレベルの1次および2次導関数も使用します。この場合、発症は非常に有用であり、笑いを他の音と区別するのに役立つと推測しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.