5

ラインイン/マイクオーディオからのデータの多くの特徴を認識できるアルゴリズムを書き/プログラム/開発したいです。オーディオ ストリームは音楽であり、曲同士を区別するために特徴を除外したいと思います。区別することで、曲のジャンルを区別することができます。

私が絶対に検出したい重要なことの 1 つは、曲の小節/ビートの種類です。たとえば、曲が 3/4 拍子であるかどうかを知りたいとします。

私が見つけた唯一の有益な記事は BPM 検出に関するものでしたが、それは曲と別の曲を区別するのに十分ではありません.

FFT は、オーディオ ストリームからさまざまな特性を取得するための良い出発点ですが、どこから始めればよいかわかりません。FFT でバー/ビートを取得することは可能ですか? これに関する良いチュートリアル/コード例はありますか?

FFT は、オーディオ ストリームの特性を取得するのに十分ですか? または、オーディオ ストリームの特性を取得するのに適した他のアルゴリズムはありますか?

C# は私が最も経験のあるプログラミング言語であるため、できれば C# で行うことをお勧めします。これは C# で可能ですか、それとも別の言語の方が優れていますか?

私の質問を要約すると、曲を区別するためのビート/バーやその他の情報を取得するために、オーディオ ストリームの特徴を見つけることに関する情報を探しています。

4

3 に答える 3

0

オープン ソースのaubioライブラリは、オーディオから特徴を抽出します。C で書かれていますが、管理された実装の参考になるかもしれません。または、それに P/Invoke することもできます。

aubio は、オーディオ信号から注釈を抽出するために設計されたツールです。その機能には、各攻撃の前にサウンド ファイルをセグメント化し、ピッチ検出を実行し、ビートを叩き、ライブ オーディオから MIDI ストリームを生成することが含まれます。

于 2014-05-10T22:06:04.637 に答える
0

フーリエ変換は音の周波数を教えてくれます。これは、それが記録されたキーを伝えるのに十分な場合があります. これ以上のことを教えてくれるとは思えません。

ソフトウェア (Shazam など) は、録音された 2 つの音楽を同じものとして識別できます。何か違うことをしたい - 分類の形で意味を抽出したい. これを音声認識と比較してください。それは同様の問題です。多くの場合、複数の楽器が関係するため、音楽は実際にははるかに困難です。私たちの脳は、非常に高度なパターン認識を使用して個々の楽器 (ドラム、ギター) を抽出し、個々の楽器を使用して拍子とビートを決定することができます。テレビの音をオンにして会話を追うことができるのと同じように。コンピューターは音を個別の声に分解することは (まだ) できず、単純に連続した音を聞くことができます。このことから、意味のある情報 (ビート、メートル) を抽出するには、少なくともコンピューター上でサウンドを個別の「声」に分解できるようになるまで待つ必要があると思います。

あなたがやりたいことはいつか可能になり、素晴らしいものになるでしょう。しかし、私たちはまだ少し離れていると思います。おそらく、コンピューターが会話を流暢に解釈できるようになれば、音楽も流暢に解釈できるようになるでしょう。たぶん10年後。

于 2013-04-21T07:50:14.260 に答える