2

AVAudioRecorderのpeakPowerForChannelメソッドとaveragePowerForChannelメソッドの違いは何ですか?

そして、なぜ返される値が負であるのですか?音が出ない場合は0で、音の振幅が大きくなると上がるはずではないですか?より「読みやすい」形式に変換するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

20

ピーク パワーとは、すべてのサンプルのすべての絶対値の最大値を取ることを意味します。オーディオのクリッピングを防ぐのに役立ちます。

平均パワーは、サンプルの RMS (二乗平均平方根) です。これは、オーディオが人間の耳に聞こえる音量を判断するのに役立ちます。

値はデシベルで表されるため、負の値になります。ここで、0 dB はオーディオ システムの最大値に等しくなります。これは log10 スケールで、換算式は次のとおりです。

db = 10 * log10 (level);

ここで、db はデシベルで、level は 0.0 から 1.0 の範囲のスカラー値です。したがって、レベルが 0.0 (無音) の場合、結果は負の無限大になります。

「読み取り可能な」形式が必要な場合は、最大値が 0.0 で最小値が -60.0 のレベル メーター (UIProgressView または独自のもの) を使用できます (ノイズ フロアに応じて調整できます)。デシベルに慣れると、線形レベルよりも理にかなっています。

于 2009-12-31T00:09:59.113 に答える
3

これらの値は見ていませんが、音量に関係しているので、デシベルの変化として測定されていると思います。

0は最大ラウドネスであり、それよりも静かなものはデシベルの低下として表すことができます。

ポジティブとネガティブは関係ありません。ラウドネス(または知覚されるラウドネス)の差を測定するのは対数目盛であることを覚えておいてください。

于 2009-08-06T19:31:57.650 に答える