4

specgramを使用して、録音されたオーディオ (マイク経由) と処理されたオーディオ (WAV ファイル) の両方を、Python で同じ離散化表現に確実に変換したいと考えています。

私のプロセスは次のとおりです。

  1. 生のサンプルを取得する (ファイルから読み取るか、マイクからストリームする)
  2. いくつかの正規化を実行します (???)
  3. スペクトログラムを生成するためにウィンドウ処理を使用して FFT を実行します (振幅ピークを使用して周波数対時間をプロットします)。
  4. 音声のピークを離散化して記憶する

基本的に、最後の離散化プロセスに到達するまでに、同じ曲の周波数/時間/振幅空間で可能な限り確実に同じ値になりたいと考えています。

私の問題は、録音されたオーディオと WAV で読み取ったオーディオで異なるボリューム (つまり、サンプルの振幅) をどのように説明するかということです。

正規化のための私のオプション (多分?):

  • FFT の前にウィンドウ内のすべてのサンプルを平均で割る
  • FFTの前にウィンドウ内のすべてのサンプルをトレンド除去
  • FFT の前に、ウィンドウ内のすべてのサンプルを最大振幅サンプル値 (ノイズと外れ値に敏感) で除算します。
  • スペクトログラムのすべての振幅を平均で割ります

この問題にどのように取り組むべきですか?信号処理の知識や経験はほとんどありません。

4

1 に答える 1