人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。2011-06-18高速フーリエ変換(FFT)音声信号処理Pythonで音声信号処理(2011/05/14)今回は、高速フーリエ変換(FFT)を試してみます。Transformの略でその名の通り、前回の離散フーリエ変換(DFT)を大幅に高速化したしたアルゴリズムです。一般にフーリエ変換といったらFFTが使われるようです。DFTは自分で公式に忠実に実装してみましたが、FFTはPythonのnumpyやscipyに実装があるのでそれを使ってみます。numpyの実装はnumpy.fft.fftでscipyの実装はscipy.fftpack.fftです。使い方はほとんど同じですが、この記事によるとscipyの実装の方が高速とのこと。scipy版には他にもいろいろ関数があります。使っていきたいと思います。show()前回と同じくFFTの結果から振幅スペクトルと位相スペクトルを求めています。横軸の周波数は、fftfreq()を用いると簡単に計算できます(前回みたいに自分で計算しても簡単ですけど)。第2引数にはサンプリング周波数の逆数、サンプリング周期を与えます。sine.wavは前回使った基本周波数250Hzのサイン波です。実行すると、こうなります。前回の離散フーリエ変換の結果と同じです。1個、別の波形で試してみます。基本周波数250Hzののこぎり波です。これも前回と同じ結果が得られました。この程度の例だと高速になったのかほとんどわかりません。リアルタイムで音声を分析したりすると違いがわかるのかもね。次回は、フーリエ変換の前処理としてよく使われる窓関数の効果を試してみたいと思います。»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。