1

私はプロジェクトに取り組んでいますが、私の理解を超えた障害にぶつかりました。私の目標は、サウンド ファイルから情報が供給される人工的なニューラル ネットワークを作成し、それをシステムに移植して、和音のラベル付けを行うことです。これを音楽の編曲に役立てたいと思っています。実際に編曲自体を行うのではなく、ハーモナイゼーションの面で役立つようにしたいと考えています。余談です。

Goertzel と FFT 関数についてできる限り読みましたが、これらの関数が探しているものかどうかはわかりません。サウンド サンプルの特定の周波数を探しているのではなく、サンプルの高域、中域、低域の周波数を見つけたいと考えています。

特定の周波数が見つかった場合、Goertzel アルゴリズムが高い数値を返すことは知っていますが、特定のサンプルで考えられるすべてのトーンに対してアルゴリズムを実行するのは、計算上無駄なようです。何を使用するかについてのアイデアはありますか?

または、これが不可能な場合は、この 1 つのプロジェクトに多くの時間を費やす前に、そのことも知りたいです。

お時間をいただきありがとうございます!

4

3 に答える 3

1

Probably better suited to DSP StackExchange.

Suppose you FFT a single 110Hz tone to get a spectrogram; you'll see evenly spaced peaks at 110 220 330 etc Hz -- the harmonics. 110 is the fundamental.

Suppose you have 3 tones. Already it's going to look quite messy in the frequency domain. Especially if you have a chord containing e.g. A110 and A220.

On account of this, I think a neural network is a good approach.

Feed in FFT output.

It would be a good idea to use a neural network that accepts complex valued inputs, as FFT outputs of a complex number for each frequency bin.

http://www.eagle.tamut.edu/faculty/igor/PRESENTATIONS/IJCNN-0813_Tutorial.pdf

It may seem computationally wasteful to extract so many frequencies with FFT, but FFT algorithms are extremely efficient nowadays. You should probably use a bit strength of 10, so 2^10 inputs -> 2^9 = 512 complex bins.

于 2016-04-01T22:59:40.147 に答える
0

FFTは正しい方法です。高調波は基本周波数の整数倍であるため、気にする必要はありません。同じ音の「オクターブ」が高いだけです。また、和音を認識するために、オクターブ全体にわたる音符の移調は問題ではありません。

于 2016-04-02T13:21:00.897 に答える
0

FFT は適切なソリューションです。基本的に、正弦波のみで構成される入力信号の FFT がある場合、どの周波数がどの音律の特定のトーンに存在するかをマッピングするだけでコードを決定できます。次に、それらによって指定されたコードを検索します。トーン。入力として正弦波がない場合、トレーニングに十分なサンプルがあれば、ニューラル ネットワークを使用して問題を解決することは有効な試みです。

于 2016-04-01T21:00:39.953 に答える