2

iOS のマイクから A 特性および C 特性の dB サウンド レベルを計算するにはどうすればよいですか?

これが私が試したことですが、私が得た測定値は、iPhone の横にある騒音計よりもはるかに下回っています。

  1. オーディオセッションモードを測定に設定するために少し変更した Novocain ライブラリを使用します。
  2. Maximilian オーディオ ライブラリを使用して、着信オーディオ フレームを FFT で実行し、振幅を dB に変換します。
  3. Maximilian オーディオ ライブラリの Octave Analyzer を使用して、FFT 出力を 10hz から 20480hz のオクターブ ビンに配置します。
  4. 各オクターブ ビンに対して、関連する dB 重み付けの db ゲインを適用します (たとえば-70.f、10hz ビンに保存されている db 値に db ゲインを適用して、A 重み付けされた dB ゲインを取得します)。
  5. 各 dB ビンを振幅に減らし、ゲインを振幅に減らし、加算を行い、再び dB 値に変換することにより、各ビンの db 値を一緒に追加しました。

これは正しい軌道に乗っていますか、疑問がありますか? 誰かがアプローチの概要を説明できますか? ライブラリやその他の例を提案してください(私は見ました)。

注 – おおよその dB(A) と dB(C) の値が欲しいのですが、これは科学的である必要はありません。マイクロフォンの周波数応答を補正する方法がわからない場合、マイクロフォンの応答を補正する場合、上記の手法は正しいでしょうか?

4

1 に答える 1

6

デバイスから物理的な音圧レベルを測定できるとは思いません。ステップ 2 では、「振幅を dB に変換」します。ただし、デバイスから記録する振幅には任意の単位があります。16 ビット オーディオを録音する場合、オーディオは -32768 ~ +32767 の範囲の数値として表されます。浮動小数点データを扱っている場合、これは 32768 で正規化されるため、(およそ) -1 から +1 の範囲になります。

デバイスのマイクは、さまざまなサウンド レベルに対応する必要があります。一般に、デバイスには、現在の平均サウンド レベルに適応する何らかの自動ゲイン コントロールがあります。これは、1.0 のピーク値を測定した場合、それが対応する実際の SPL を知る方法がないことを意味します。録音を一連の dB に変換できますが、これは異なる dB の定義を使用します:電力比として. これは、dB(A) などの SPL 測定値とは相関がありません。

AGC をオフにして、サウンド メーターに対してデバイスを校正できる場合は、おおよその dB(A) 測定値を生成できる可能性があります。

編集: JASA は、異なる世代の iPhone を比較するために、既存の SPL 測定アプリと統計を詳細に比較した論文を公開しました:スマートフォンの音測定アプリケーションの評価

于 2012-10-25T14:43:31.713 に答える