【发布时间】:2010-02-10 13:52:19
【问题描述】:
我正在做声音延迟测试。我的设备将收到哔声信号或静音信号。我如何区分这些信号。请帮我。提前谢谢..
【问题讨论】:
标签: iphone audio voip signal-processing
我正在做声音延迟测试。我的设备将收到哔声信号或静音信号。我如何区分这些信号。请帮我。提前谢谢..
【问题讨论】:
标签: iphone audio voip signal-processing
查看大约 10 毫秒的样本(例如,44.1 kHz 的 441 个样本)并测量该缓冲区中的能量。如果高于某个阈值,则为信号,如果低于阈值,则为静音。
要测量能量,只需将缓冲区中每个样本的平方值相加,然后除以样本数。
【讨论】:
这取决于。如果数字音频是合成生成的(比如通过另一个函数),那么您可以依赖这样一个事实,在一种情况下,您将获得真正的数字静音(归零样本),那么解决方案就是测试归零样本在测量窗口上。零以外的任何东西都不是沉默。
不过,我猜您正在处理从麦克风录制的真实音频。如果是这种情况,那么在时间窗口中测量能量并将其与阈值进行比较确实是有意义的。您必须确定的两个参数是:
如果阈值太低,你的误报率就会太高;不是哔声的背景噪音可能会被解释为哔声。相反,如果您的阈值太高,您的系统可能会将哔声归类为噪音。幸运的是,如果您在背景噪音相当低的情况下播放音频,那么您的性能对这个阈值不会很敏感。
较长的窗口长度会降低这些误报/否定率,从而使您的系统更加健壮,但过长的窗口可能会影响系统可用性。例如,自动电话系统对按键进行分类以帮助菜单导航。如果他们要求用户一次按住每个键三秒钟,准确性会提高,但会牺牲几乎所有的可用性。
我鼓励您不要像 Paul 建议的那样仅根据一个最大样本做出决定。这样做完全破坏了采样窗口长度提供的对误报的抵抗力。
【讨论】:
如果他们使用环回方法,噪声是否考虑在内?例如,如果他们向第二个设备发送哔哔声,环回并将其发送回发送者,发送静音数据包并执行相同操作,他们不能在发送者级别测量延迟(前提是他们知道实际的网络延迟) .
【讨论】: