1

我正在做声音延迟测试。我的设备将收到哔声信号或静音信号。我如何区分这些信号。请帮我。提前致谢..

4

3 回答 3

3

查看大约 10 ms 的样本(例如,44.1 kHz 的 441 个样本)并测量该缓冲区中的能量。如果它高于某个阈值,则它是一个信号,如果它低于阈值,则它是静音。

要测量能量,只需将缓冲区中每个样本的平方值相加,然后除以样本数。

于 2010-02-10T14:18:50.400 回答
1

这取决于。如果数字音频是合成生成的(例如通过另一个函数),那么您可以依赖这样一个事实,在一种情况下,您将获得真正的数字静音(归零样本),那么解决方案就是测试归零样本在测量窗口上。零以外的任何东西都不是沉默。

不过,我猜您正在处理从麦克风录制的真实音频。如果是这种情况,那么在时间窗口中测量能量并将其与阈值进行比较确实是有意义的。您必须确定的两个参数是:

  1. 阈值能级
  2. 时间窗口的长度

如果阈值太低,你的误报率就会太高;不是哔声的背景噪音可能会被解释为哔声。相反,如果您的阈值太高,您的系统可能会将哔声归类为噪音。幸运的是,如果您正在使用相当低的背景噪音进行音频,您的性能将不会对这个阈值非常敏感。

较长的窗口长度会降低这些误报/否定率,从而使您的系统更加健壮,但系统可用性可能会因窗口过长而受到影响。例如,自动电话系统对按键进行分类以帮助菜单导航。如果他们要求用户每次按住每个键三秒钟,准确性会提高,但会牺牲几乎所有的可用性。

我鼓励您不要像 Paul 建议的那样仅根据一个最大样本做出决定。这样做完全破坏了采样窗口长度提供的对误报的抵抗力。

于 2010-02-10T14:58:55.363 回答
0

如果他们使用环回方法,噪声是否考虑在内?例如,如果他们向第二个设备发送哔哔声,环回并将其发送回发送者,发送静音数据包并执行相同操作,他们不能在发送者级别测量延迟(前提是他们知道实际的网络延迟) .

于 2010-02-10T16:57:29.117 回答