質問

オーディオサンプルの音楽キーを決定することに興味があります。アルゴリズムは、音楽オーディオサンプルのキーを概算しようとする方法(または)をどのように行うことができますか?

Antares AutoTuneとMelodyneは、この種のことを行う2つのソフトウェアです。

誰もがこれがどのように機能するかについての素人の説明を少し与えることができますか?コード進行などの周波数スペクトルを分析することにより、曲の鍵を数学的に推定する。

このトピックは私にとても興味があります!

編集 - この質問に貢献したすべての人から見られる素晴らしい情報源と豊富な情報が見つかります.

特に:the_mandrillとDanielBrückner。

役に立ちましたか?

解決

これは非常にトリッキーな問題であり、信号処理のバックグラウンド(またはそれについて学ぶことに興味がある)がない場合、あなたの前に非常にイライラする時間があることに注意する価値があります。あなたが問題にいくつかのFFTを投げることを期待しているなら、あなたはそれほど遠くに行くことはありません。本当に魅力的なエリアなので、あなたが興味を持っていることを願っています。

最初はピッチ認識の問題がありますが、これは、自己相関や高調波sumスペクトル(Paul Rのリンクを参照)などの方法を使用して、単純な単調な機器(たとえば音声)では合理的に簡単に行うことができます。ただし、多くの場合、これが間違った結果をもたらすことがわかります。多くの場合、期待していたピッチの半分または2倍になります。これはピッチと呼ばれます 期間は倍増します また オクターブエラー また、FFTまたは自己相関には、データが時間の経過とともに一定の特性があるという仮定があるために発生します。人間が演奏する楽器がある場合、常に何らかのバリエーションがあります。

一部の人々はの問題に近づいています 認識最初にピッチ認識を行い、次にピッチのシーケンスからキーを見つけます。これは 信じられないほど 一連のピッチシーケンス以外のものがある場合は困難です。一連のピッチのシーケンスがある場合、それはまだキーを決定する明確なカット方法ではありません:たとえば、それがメジャーかマイナーかを決定するために、あなたが色ノートをどのように扱うかを決定する方法です。したがって、Krumhanslのような方法を使用する必要があります 重要な発見アルゴリズム.

したがって、このアプローチの複雑さを考えると、別の方法は、すべてのメモを同時に調べることです。和音がある場合、または複数の楽器がある場合は、一度に遊んでいる多くの正弦波の豊富なスペクトルスープができます。個々の音は複数の高調波A基本周波数で構成されているため、(440Hz)は440、880、1320の正弦波で構成されます...さらに、Eをプレイする場合(これを参照してください ピッチの場合)それは659.25Hzです ほとんど (実際には1.498)の1回半。これは、Aの3番目の高調波ごとに、Eの2番目の高調波ごとに一致することを意味します。これが、コードが高調波を共有しているため、心地よく聞こえる理由です。 (余談ですが、西洋の調和が機能するという理由は、2の第12の根がパワー7のQuirkのために1.5近くであるという運命の癖によるものです)

5番目のこの間隔を超えてメジャー、マイナー、その他のコードを超えて見ると、他の比率が見つかります。多くの重要な発見技術がこれらの比率を列挙し、信号の各スペクトルピークのヒストグラムを埋めると思います。したがって、コードA5を検出した場合、440、880、659、1320、1760、1977でピークが見つかると予想されます。B5の場合、494、988、741などになります。信号内の正弦波ピーク(FFTパワースペクトルなど)は、ヒストグラム入力を増加させます。次に、各キーAGについて、ヒストグラムのビンを集計し、最も多くのエントリを持つものがあなたの鍵になる可能性が最も高くなります。

それは非常に単純なアプローチですが、かき鳴らしまたは持続的なコードの鍵を見つけるのに十分かもしれません。また、信号を小さな間隔(20msなど)に切り刻み、それぞれを分析して、より堅牢な推定値を構築する必要があります。

編集:
実験したい場合は、次のようなパッケージをダウンロードすることをお勧めします オクターブ また アサリ これにより、オーディオデータを視覚化し、FFTやその他の操作を実行しやすくなります。

その他の便利なリンク:

  • 私の博士論文 ピッチ認識のいくつかの側面について - 数学は少し重いですが、第2章は(私は)、音楽オーディオのモデリングのさまざまなアプローチの非常にアクセスしやすい紹介です
  • http://en.wikipedia.org/wiki/auditory_scene_analysis - 音楽について話していないにもかかわらず、私たちが複雑なシーンをどのように知覚するかについていくつかの魅力的な発見を持っているブレグマンの聴覚シーン分析
  • ダン・エリス この領域と同様の分野でいくつかの素晴らしい論文を行ってきました
  • キース・マーティン いくつかの興味深いアプローチがあります

他のヒント

私は、大学で2年以上にわたってポリフォニックCDの記録をスコアに転写する問題に取り組んできました。問題は難しいことで有名です。問題に関連する最初の科学論文は、1940年代にさかのぼり、今日まで遡ります。一般的なケースの堅牢な解決策はありません。

あなたが通常読むすべての基本的な仮定は正確ではなく、それらのほとんどは非常に単純なシナリオ以外のすべてに対して使用できなくなるほど十分に間違っています。

倍音の周波数はです いいえ 基本周波数の倍数 - 非線形効果があるため、高い部分が予想される周波数から離れてドリフトし、少数のHERTZだけでなく。 6番目を期待した7番目の部分を見つけることは珍しいことではありません。

フーリエ変換は行います いいえ フーリエ変換は線形間隔の周波数を生成する一方で、関心のある周波数は対数的に間隔を置いているため、オーディオ分析で優しく再生します。低い周波数では、隣接するピッチを分離するには高周波解像度が必要ですが、これにより時間の解像度が悪くなり、別々の音が迅速に再生された能力が失われます。

オーディオ録音は(おそらく) いいえ スコアを再構築するために必要なすべての情報が含まれています。私たちの音楽認識の大部分は、耳と脳で起こります。そのため、最も成功したシステムの一部は、音楽処理にわずかな部分に依存する(西部)音楽の構造に関する大規模な知識リポジトリを備えた専門家システムである理由です。

私が家に戻ったら、私が読んだペーパーを見て、20または30の最も関連性のあるものを選んで、ここに追加します。何かを実装する前にそれらを読むことをお勧めします - 最も一般的な仮定がやや間違っている前に述べられているように、実装とテスト中に50年以上にわたって発見および分析されたすべてのものを再発見したくありません。

難しい問題ですが、とても楽しいです。私はあなたが試したこととそれがどれほどうまく機能したかを本当に聞きたいです。


今のところ、定数Q変換、Cepstrum、およびWigner(-ville)分布を見ることができます。短時間のフーリエスペクトルのフェーズでのシフトから頻度を抽出する方法に関するいくつかの良い論文もあります。これにより、周波数を数倍大きく精度で決定できるため、非常に短いウィンドウサイズ(高時間分解能のため)を使用できます。基礎となるフーリエ変換の周波数解像度よりも。

このすべての変換は、通常のフーリエ変換よりもはるかに優れたオーディオ処理の問題に適合します。基本的な変換の結果を改善するために、エネルギーの再割り当ての概念を調べてください。

使用できます フーリエ変換 オーディオサンプルから周波数スペクトルを計算します。この出力から、を使用できます 特定のメモの周波数値 これをサンプル中に聞いたメモのリストに変える。一連のサンプルでサンプルごとに聞かれる最強のメモを選択すると、使用されるさまざまなメモのまともなマップが得られるはずです。 音楽のスケール メモの組み合わせを含む可能なスケールのリストを取得するため。

どの特定のスケールが使用されているかを決定するために、最も頻繁に聞いたメモのメモ(しゃれが意図されていない)を作成します。西洋の音楽では、スケールの根本は通常、聞こえる最も一般的なメモであり、5番目、そして4番目が続きます。共通などのパターンを探すこともできます コード, arpeggios, 、 また 進行.

ここでは、サンプルサイズがおそらく重要です。理想的には、各サンプルは単一のメモになります(1つのサンプルに2つのコードを取得しないように)。もし、あんたが フィルター 低周波数に集中すると、音楽のテンポを決定し、アルゴリズムを音楽のビートに「ロック」するために、パーカッション楽器に通常関連付けられているボリュームスパイク(「クリック」)を使用できる場合があります。長さの半分のビートのサンプルから始めて、そこから調整します。多くの有用なデータがないサンプル(スライドの中央で撮影したサンプルなど)を捨てる準備をしてください。

私が言うことができる限り この記事, 、さまざまなキーにはそれぞれ独自の周波数があるため、最も一般的な音とコードが何であるかを検出するために、オーディオサンプルを分析する可能性があります。結局のところ、同じ構成のシャープとフラットの構成を持つ複数のキーを持つことができます。違いは、キーが始まるというメモ、したがってそのようなキーのコードであるため、重要なノートとコードが表示される頻度であるように思われます。そのようなことを理解できる唯一の本当の方法。多くの情報を除外することなく、実際の数学の公式に関する素人の説明を得ることができるとは思いません。

これは、この分野でまったく経験がない人から来ていることに注意してください。彼の最初の露出は、この答えにリンクされている記事です。

これは複雑なトピックですが、単一のキー(シングルノート)を決定するための単純なアルゴリズムは次のようになります。

メモを含むサンプルの一部で、4096サンプル(正確なサイズは解像度の要求に依存する)でフーリエ変換を行います。スペクトルの電力ピークを決定します - これはノートの周波数です。

和音、異なる「楽器/効果」、または非ホモフォニック音楽パターンがある場合、物事はより緊密になります。

最初に必要です ピッチ検出アルゴリズム (例えば 自己相関).

次に、ピッチ検出アルゴリズムを使用して、多くの短い時間ウィンドウでピッチを抽出できます。その後、サンプリングされたピッチがどのミュージカルキーに最適かを確認する必要があります。

今すぐたくさんの曲を分類する必要がある場合は、次のようなもので問題をクラウドソーシングします 機械ターク.

キーの分析は、ピッチの分析と同じではありません。残念ながら、キーの概念全体はやや曖昧であり、異なる定義は通常、強壮剤の概念、つまり中央のピッチ/コードのみを共有する傾向があります。自動転写のための優れたシステムが存在したとしても、キーを決定するための信頼できるアルゴリズムはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top