wav2midi 方針・設計

yuichi
897
0
0

wav2midi 方針・設計

Published at May 1, 2018 1:57 a.m.
Edited at May 9, 2018 1:09 p.m.

音声波形のパワースペクトルの抽出

音声波形 の周波数成分ーつまりパワースペクトルはフーリエ変換を用いて求めることができる。

ここで、対象となる音声波形はサンプリング周期により一定間隔で標本化された離散値となる。そのため、離散フーリエ変換(Discrete Fourier Transform―DFT)を用いる。

まず、をある区間個標本化したときのの標本化列は以下のようになる

そして、のパワースペクトルは離散フーリエ変換より以下のように求められる。

ここで、 はサンプリング周期個標本化されているので、取りうる周波数 および角周波数 は標本点 を使って以下のようになる

よって、 は、パワースペクトル列 となり、以下のようになる。

高速フーリエ変換(Fast Fourier Transform―FFT)

DFTでは計算量が となり計算量が膨大になるため、実際に実装する際は FFT を用いる。これで計算量が となり大幅に減らすことができる。

まず、 回転因子 というものを導入する。

すると、 は以下のようになる。

ここで、回転因子は以下の関係が成り立つ。

つぎに、 が偶数である場合に、 が偶数の場合と奇数の場合にわけ、それぞれ ごとに分割する。

ここで、数列 および を考える。

および回転因子 の性質により とすると および はそれぞれ以下のようになる。

これより、およびそれぞれが、離散フーリエ変換の式になっているので、あとはこれを再帰的に分割していく。

この一連の演算の結果の数列を とすると以下のような式になる。

よって、 は以下のようになる。


参考

音階の周波数

音階は1オクターブごとに12個存在し、隣り合う音階の周波数の比率が一定である。すなわち音階の周波数は等比数列となる。また、1オクターブごとに周波数が2倍となるため、音階の周波数の公比は以下のようになる。

また、最初の音階 の周波数は である。そのため、初項 は以下のようになる。

よって、 および より 番目の音階の周波数―すなわち一般項 は以下のようになる。

さて、ここでピアノの鍵盤は88鍵存在するので各鍵盤の周波数 および音階 は以下のようになる


参考

パワースペクトルから音階の抽出

パワースペクトルのピーク(基音)を抽出することにより求めることができる。

まず、基音はパワースペクトル列で最大の大きさを持つはずなので、最大値抽出する。

次に、 以上の大きさを持つスペクトル列を基音と定義すると以下のようになる。

これより基音の周波数 は以下のようになる。

ここで、式について解くと以下のようになる。

ここで、 を音階の周波数以外の一般の周波数について考える。つまり、 とすると上式は以下のようになる。

ただし、音階は整数である必要があるので、上式を四捨五入してもっとも近い整数に丸める。そのため以下のようになる。

及び、 より、音声波形 の音階 は以下のようになる。


本記事では、自然数 を含む。