Android PCM缓冲器的最大振幅-音频

Android PCM缓冲器的最大振幅-音频,android,media,android-mediaplayer,audiorecord,Android,Media,Android Mediaplayer,Audiorecord,我试图从PCM缓冲器中找到最大振幅值 我的问题是- 1) 我发现要在DB中找到这个值,公式是:amplDB=20log(abs(ampl)/32767)。现在假设ampl在-32768到32767之间,log((abs)ampl/32767)的值将始终为负值。那么这个公式正确吗?我应该否定amplDB的值吗 2) 我的价值观越来越高。对于正常歌曲,最大振幅值也是32767,这似乎不正确。歌曲通常的振幅值是多少 3) 我找到了另一个公式amplDb=ampl/2700。这2700是干什么用的 4)

我试图从PCM缓冲器中找到最大振幅值

我的问题是-

1) 我发现要在DB中找到这个值,公式是:amplDB=20log(abs(ampl)/32767)。现在假设ampl在-32768到32767之间,log((abs)ampl/32767)的值将始终为负值。那么这个公式正确吗?我应该否定amplDB的值吗

2) 我的价值观越来越高。对于正常歌曲,最大振幅值也是32767,这似乎不正确。歌曲通常的振幅值是多少

3) 我找到了另一个公式amplDb=ampl/2700。这2700是干什么用的

4) 有没有其他方法可以计算振幅值


谢谢

您使用的公式是正确的。请记住,dB是一种感知测量,它将强度与您设置的参考级别进行比较。因此,它总是负值是有意义的,因为公式中使用的参考电平是最大PCM电平。换句话说,您的分贝将始终低于(负)您的最高水平(0分贝)

关于获得的值,获得最大振幅是很正常的。如果这是一首商业歌曲,一个常见的掌握实践就是尽可能地增强信号。如果是你录制的,可能与麦克风的灵敏度和你录制的声音有关

最后,需要明确的是,这与回放时声音发生的声压级无关,因为您只查看录制声音的振幅差异