android - Android CDD 中的麦克风灵敏度

标签 android microphone android-compatibility

Android 兼容性定义文档指出

  1. “音频输入灵敏度应设置为 1000 Hz 时 90 dB 声功率级 (SPL) 源对于 16 位样本产生 2500 的 RMS”。

  2. “PCM 幅度电平应在麦克风处的 90 dB SPL 和 -18 dB 至 +12 dB 之间的至少 30 dB 范围内线性跟踪输入 SPL 变化。”

问题:

(1) 是否包括麦克风灵敏度加上 Android 设备的内部增益以实现 RMS 2500?

(2) 仅适用于麦克风最大声级还是包括 Android 设备内部?

最佳答案

你的问题让我很困惑。我认为你正在混合不同的级别和 yield 。

90dBspl rms 的声级通过麦克风传输到电域。麦克风有不同的声学单位可供转换。它以 dBPa 或 Pa 为单位测量声压级。 (94dBspl = 0dBPa) 指定的 -42dBV/Pa 意味着如果您有 0dBPa 或 1Pa(这是相同的声压级),那么您将从麦克风中获得 -42dBV。模拟电域。 -42dBV=7.94mV(0dBV=1V)

现在,从这一点开始,可以有不同的模拟和数字增益。首先你可以有一些模拟增益,然后你有一个 A/D 转换器。之后您就进入了数字领域,然后您也可以获得数字增益。 Android 要求未指定这些增益。它指定在给定的声学声压级下您应具有的最终数字级。您当然可以计算声音链中的每一步,但最简单的方法是将所有数字增益设置为 0dB,并且可能将模拟增益设置为 +20dB 左右(如果可能),然后您尝试获得原声声音具有适当声压级的声源。您将需要一个声压级计,并在一个相当无混响、无回声的房间中通过扬声器播放大约 20 厘米的正弦 1kHz 音调。

现在,您可以使用设备录制 90dBspl 1kHz 音调,并在数字域中分析录音。如果可以的话,您应该调整模拟域的增益。那么数字余量将是正确的。如果您不知道自己在做什么,您可能很容易尝试在数字域中调整太多,从而导致数字削波或量化噪声。仅当您在模拟域中完成了所有操作后才应添加数字增益。

如果一切都调整正确,您将在 90dBspl rms 声级和记录的 -22dBFS rms 数字级(16 位系统中的 2500 rms 级)之间获得良好的匹配(然而,这是一种非常奇怪的测量方法) )。在此类系统中,0dBFS rms 是完全饱和的方波。完全饱和的正弦曲线将具有 -3dBFS rms 或 0dBFS 峰值。

请注意,如果您启用了任何自动增益控制,您可能无法满足线性度的要求。

关于android - Android CDD 中的麦克风灵敏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26826067/

相关文章:

android - 应用程序在更改样式下的主题时崩溃

android - Braintree Integration 只有 PayPal 选项没有信用卡选项

java - 转换错误

html - 使用 html5 捕获移动 chrome 上的麦克风输入

java - 如何从麦克风录制声音?

Android 6.0 Marshmallow (API 23) 中弃用了 AndroidHttpClient 和 HttpGet API

android - 致命信号 11 安卓可视化工具

java - 按下后退按钮并再次打开应用程序后媒体播放器崩溃

javascript - 来自javascript的麦克风音量控制

安卓兼容性 - micromax funbook