質問

この例では、

として方法(portAudioを使用して)入力音声ストリームから抽出する周波数情報に?私はportaudioについて興味とnumpyの...

私はチャンクをnumpyの渡し、低音、中・高音用に1.0に戻っ-1.0から3つの値を取得することができますどのように、必ずFFT約100%じゃない?

これはちょうど私がこれのオーディオ部分の感覚を作ることができるように、1つのチャンネルのために、それは私がそれらを見たときに私の目の前で泳ぐ数学をだ場合、私は気にしない:)

役に立ちましたか?

解決

実際には、あなたがこれを行うには、フーリエ変換を使用することはありません。

低音で分割する任意のオーディオ信号を、中・高音は通常のフィルターを使用して行われます。特定の周波数範囲を減衰デバイスを処理する信号であるのA フィルタ。フィルタは、デジタルまたは電気的に構築することができます。例えば、それらは、スピーカでオーディオクロスオーバーシステムで使用されている。

あなたは、低域通過フィルタを使用した低周波のベースパートを取得するには、

。低域、高域成分をフィルタをフィルタリングします。彼らはまた、「ハイカット」フィルタと呼ばれている。
ミッド周波数半ばの一部を取得するには、バンドパスフィルタを使用します。バンドパスは、低周波と高周波の両方からフィルタをフィルタリングします。彼らはまた、「ベルフィルタ」と呼ばれています。
高周波高音部分を取得するには、ハイパスフィルタを使用します。ハイパスは、任意の低周波数からフィルタをフィルタリングします。彼らはまた、「ローカット」フィルタと呼ばれています。

実際に、あなたはまた、唯一の高域と低域通過フィルタを使用することができます。元の信号の両方からフィルタリングされた信号を減算した場合、結果は、帯域通過フィルタリングされた信号であろう。これはあなたに1つのフィルタを保存します。

各フィルタは、閾値周波数を持つことになります。閾値周波数は、フィルタがフィルタ処理を開始する必要があり、そこから特別な周波数です。フィルタ次数に応じて、信号は、等は、アプリケーションのために、2次設計は6 DB / OCT(1次)、12デシベル/ OCT(2次)、18デシベル/ OCT(3次)によって減衰されますおそらく細かい。
あなたのいくつかの点で信号および高次の一般的混乱でフィルタは、より多くの本が得ることができる可聴ことに注意してください。ちなみに、これはフーリエ変換などの処理を全ての信号のための純粋な物理学と同様です。

これらの3つのフィルタを使用すると、フーリエ変換だけで3つのスペクトルの点で変換することと等価にすることができます()です。

他のヒント

フーリエ述べ、の変換周波数の様々な範囲/スライスのそれぞれの音の強さを与える値の大規模なコレクション(例えば、発現を、ヘルツ単位)

どのようにあなたが望むように、ちょうど3つの数字の中に(例えば)千の強度(スペクトルの各10ヘルツスライスごとに、と言う)を変換するために、もちろん非常にヒューリスティックな問題である - たとえばあなただけ決めることができました周波数の範囲は、「中間」である間に、すべてを「ベース」と「高音」に対応し、それぞれの平均強度を計算しました。何それの価値のために、私は「低音」のための一般的な規則は「高音」6kHzのために、250Hzのまであるし、上記(イン間の「ミッドレンジ」である)、CFR例えば信じますこのページ - しかし、それはそうではなく、任意の慣例だ、「あなたの毒を選びます」 ! - )

それはどのように人間の聴覚作品だから、あなたはの相対的なレベルは、あなたは、互いにそれらを正規化し、おそらく対数スケールであなたの所望の範囲(内嘘に適切にスケールするでしょうしたら; - )

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