是什么AVAudioRecorder的peakPowerForChannel和averagePowerForChannel方法?

之间的差

和为什么返回的值是负的?是不是应该是0没有声音和上去时声音的幅度上升?我怎么能转换成更多的“可读性”格式?

感谢。

有帮助吗?

解决方案

虽然我没有看过这些值,因为它涉及到音频音量,我猜它是作为以分贝的变化进行测量。

0将是最大响度和任何更安静比可以表示为以分贝为单位的下降。

正和负并不重要。只要记住,这是你在哪里测量响度(或感知响度)的差额对数刻度。

其他提示

峰值功率意味着采取所有样品的所有绝对值的最大值。这是用于防止音频的限幅是有用的。

平均功率是样品的RMS(根均方)。这是有用的,以确定音频多么响亮的声音对人耳。

,因为它以分贝,其中0分贝等于音频系统的最大值表示的值是负的。这是一个日志10的规模,和用于转换的计算公式是:

db = 10 * log10 (level);

其中db是分贝和电平是标量值范围从0.0到1.0。因此,当电平为0.0(无声),则结果为负无穷大。

如果你想要一个“可读”的格式,你可以使用电平表(UIProgressView或你自己的),其中最大为0.0,最小为-60.0(你可以根据噪声基底调整)。一旦你已经习惯了分贝,他们做比线性水平更有意义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top