【问题标题】:Max Amplitude from PCM Buffers - Audio AndroidPCM 缓冲区的最大振幅 - Android 音频
【发布时间】:2014-08-26 16:11:04
【问题描述】:

我正在尝试从 PCM 缓冲区中找到最大幅度值。

我的问题是-

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

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

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

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

谢谢

【问题讨论】:

    标签: android media android-mediaplayer audiorecord


    【解决方案1】:

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

    关于您获得的值,获得最大幅度是很正常的。如果是商业歌曲,一个常见的母带做法是尽可能地增强信号。如果是您录制的,可能与麦克风的灵敏度和您正在录制的声音有关。

    最后,为了清楚起见,这与播放时声音发生的声压级无关,因为您只查看录制声音的振幅差异。

    【讨论】:

      猜你喜欢
      • 2022-08-21
      • 2017-07-21
      • 2011-08-18
      • 2012-12-03
      • 1970-01-01
      • 2017-07-10
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多