1780
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鍵存在するので各鍵盤 の周波数 および音階 は以下のようになる


参考

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

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

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

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

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

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

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

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

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


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