5

您好,我想知道是否可以使用 android 音调生成器类在一个设备中创建音调并在另一台设备中收听相同的音调。如果这是可能的,我还有其他一些问题。

考虑到背景噪音是否可以只听这种特定的音调?

这个过程会占用大量资源吗?

我可以使用人耳听不见或接近它的音调吗?

最后,我可以使用只能在距发送设备几英尺远的地方听到的音调吗?

非常感谢你们的时间男孩和女孩:)

编辑 > 感谢您添加音频处理标签 sabastian。更好的描述。

4

2 回答 2

4

这将是 CPU 密集型的,是的。实现它的方法很简单:您需要一个永久记录器,它将接收到的数据放入 FFT(快速傅立叶变换)。FFT 基本上只做一件事:将音频分成频率/功率等级。通过这个“清除背景噪音”结果,您可以检查诸如“是否有 1000Hz 的音调播放至少 2 秒”之类的内容 - 并采取相应措施。这里有一个合理的速度 FFT 实现:http ://www.badlogicgames.com/wordpress/? p=449 FFT 也可以用于检测双音拨号 (DTMF) - 同时 2 个频率(实际上是使用 IS)比只使用一个要好得多(因为错误率显着下降,您可以缩短音调发送/检测的持续时间)。

“听不见”是不可能的,因为(a)扬声器不能产生这样的声音(b)你的采样率受到限制 - 因此在产生和记录如此高的频率方面也受到限制。

自然会强加“几英尺”(不是很响亮的扬声器,不是很好的麦克风)。

于 2011-01-30T13:22:32.827 回答
2

看看另一个问题:“Android:需要记录麦克风输入”。我认为您可以针对您的任务对其进行修改,然后使用声音字节进行过滤或 FFT。

希望能帮助到你

于 2012-06-24T14:15:50.670 回答