iphone - AVAudioRecorder:峰值和平均功率

标签 iphone cocoa-touch avaudiorecorder

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

为什么返回的值为负数?不是应该在没有声音时为 0,在声音幅度增大时增大吗?如何转换为更“可读”的格式?

谢谢。

最佳答案

峰值功率是指取所有样本的所有绝对值中的最大值。它对于防止音频剪辑很有用。

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

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

db = 10 * log10 (level);

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

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

关于iphone - AVAudioRecorder:峰值和平均功率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240846/

相关文章:

objective-c - 纵向的 UISplitViewController : how to hide master popover programmatically?

iphone - 如何正确地向用户提供网络反馈?

ios - 录制时实时上传音频片段?

iphone - iOS 7 中状态栏出现在我的 View 边界上方

javascript - 在 webview 中加载 .js 文件时出现问题

iphone - 执行选择器 : withObject: afterDelay not executing for MBProgressHUD

iphone - indexPath.section 的确切含义是什么?

ios - AVAudioRecorder默认记录设置

Swift - 保存录音

iphone - 具有自定义高度的自定义 UINavigationBar 导致 UIBarButtonItem 的定位错误