2011-01-20 16 views
2

私はmp3ファイルから音楽を分析しようとしています。私は、テンポやピッチ、その他の音楽的特徴に関する情報を得たいと思っています。このデータを取得するにはどうすればよいですか?私にこの情報を提供するオープンソースソフトウェアはありますか、それとももっと良いライブラリはありますか?コンピュータによる音楽分析

誰も私に何をやるべきか、どこから見始めるべきかのヒントを教えてもらえますか?おかげさまで

答えて

0

Audacityは役立ちます。プログラムからそれらを使用したい場合は、ソースコードをチェックアウトすることができます。 http://audacity.sourceforge.net/download/source

注:最初に大胆をダウンロードして、必要なものがすべてあるかどうかを確認してください。

0

どこから始めたらいいのか分からないのであれば、サウンドフォージやその他の専門的な編集プログラムを購入することをお勧めします。あなたが本当に決定されている場合は、それはどこから来るでしょうので、あなたの物理学の本を入手してください。音の全体的なピッチを求めることは、微積分変換です。テンポのようなサウンドに関するその他の情報は、インパルスレスポンスフィルタといくつかのAIの助けを借りて見つけることができます。本当に献身的でない限り、エディタを買うだけです。

更新:もしあなたが本当にそれに行きたい場合はhere's素晴らしいリソース。

+0

これは、広く実装され、簡単に実行される計算変換です。 Pythonはそれを数多くのモジュールで持っています。 C++には多くの実装が用意されています。 FFTは、誰かが実際にやりたいと思っていることを止めるべきではないことを、今のところできるほど十分です。 – g19fanatic

+0

FFTは非常に簡単ですが、必要なfftだけでなく、fftの結果を理解するためにはAIが必要です。 – Rich

+0

彼は必ずしも彼が何をしようとしていると言っているわけではありません。彼がしようとしている非常に具体的なものであれば、彼は正しいことがあれば多くのAIを必要としません。 – g19fanatic

1

LibMADは、本当にうまく動作するopensource mp3デコーダライブラリです。これにより、変更する「生の」データが得られます。ピッチや他の「特性」を得るためには、数学に飛び込む必要があります。

ピッチは本質的に音の周波数です。これはFFTを使用して(実際にはデータのブロック単位で)オンザフライで行うことができます。 Python numpyにはfft関数があります(生データがある場合)。 FFTの後ろhere.

いくつかの「数学」を見つけることができ、C++におけるFFTのためのライブラリはhere

を見つけることができます

テンポも、データをFFTing生のデータにいくつかの2次ローパスフィルタを適用することによって計算することができます。上記にリンクされているdspガイドでは、デジタルフィルタについても説明しています。

幸運なことに、その良いことはたくさんありますが、あなたが準備が整っていなければ数え切れません。

+0

ピッチは周波数と本質的に同じではありません。周波数は、サウンドの1つのコンポーネントの物理的な測定値です。ピッチは、複雑な音の心理学的知覚*です。ピッチは、複雑なサウンドのさまざまな周波数と振幅に関係しますが、それは微妙で些細ではありません。 –

+0

あなたが正確な定義に到達しようとしているなら、あなたは正しいです。しかし、ここでの目的のために、私が提案したことはmp3の(特定の時点で)「ピッチを得る」ために働くでしょう。 fftsを使用すると、特定の音符にコーレンストしたピークを取り除き、複雑なサウンドのピッチを得るために既知の方法で(特定の比率で異なるピッチを作成する)それらを組み合わせることができます。明らかに、あなたがやろうとしていることについて何かを知っていなければならないので、彼はピッチを構成するものと関連する周波数を理解する必要があります。 Ref:http://www.physicsclassroom.com/class/sound/u11l2a.cfm – g19fanatic

関連する問題