AVAudioRecorder:峰值和平均功率

Posted

技术标签:

【中文标题】AVAudioRecorder:峰值和平均功率【英文标题】:AVAudioRecorder: peak and average power 【发布时间】:2009-08-06 19:23:56 【问题描述】:

AVAudioRecorder 的 peakPowerForChannel 和 averagePowerForChannel 方法有什么区别?

为什么返回的值是负数?不应该是0表示没有声音,当声音的幅度上升时上升?如何转换为更“可读”的格式?

谢谢。

【问题讨论】:

【参考方案1】:

峰值功率意味着取所有样本的所有绝对值的最大值。这对于防止音频剪辑很有用。

平均功率是样本的 RMS(均方根)。这对于确定音频对人耳的声音有多大很有用。

该值为负数,因为它以分贝表示,其中 0 dB 等于音频系统的最大值。是一个log10的尺度,换算公式是:

db = 10 * log10 (level);

其中 db 是分贝,level 是范围从 0.0 到 1.0 的标量值。所以当level为0.0(静音)时,结果为负无穷。

如果您想要“可读”格式,您可以使用电平表(UIProgressView 或您自己的),最大值为 0.0,最小值为 -60.0(您可以根据本底噪声进行调整)。一旦你习惯了分贝,它们就会比线性水平更有意义。

【讨论】:

【参考方案2】:

虽然我没有查看这些值,但由于它与音量有关,我猜它是以分贝的变化来衡量的。

0 表示最大响度,任何比这更安静的都可以表示为分贝的下降。

正面和负面无关紧要。请记住,它是一个对数刻度,用于测量响度(或感知响度)的差异。

【讨论】:

以上是关于AVAudioRecorder:峰值和平均功率的主要内容,如果未能解决你的问题,请参考以下文章

在开关电源中MOS管源极对地的那个电阻怎么算啊 ? 谢谢各位!

峰值因子,峰均比,Reference Level

如何在Matlab中找到正轴的平均峰值

高功率瞬态电压抑制TVS二极管

Unity 之 UPR优化建议汇总

jmeter 并发用户数,在线用户数,平均并发 峰值并发实战演示