您好我想知道如果使用Android音调生成器类可以在一个设备中创建音调并在另一个设备中侦听相同的音调。如果可以的话,我还有其他一些问题。
考虑到背景噪音是否可以只听这个特定音调?
这个过程是否会耗费资源?
我可以使用对人耳或听不到的音调吗?
最后我可以使用只能在发送设备几英尺处听到的音调吗?
非常感谢你们这些男女老少:)
编辑> 谢谢你添加音频处理标签sabastian。更好的描述。
答案 0 :(得分:4)
这将是CPU密集型,是的。 它的方法很简单:你需要一个永久记录器,它将接收到的数据放入FFT(快速傅立叶变换)。 FFT基本上做了一件事:将音频分成频率/功率范围。通过这种“背景噪音清洁”结果,您可以检查诸如“是否有1000Hz的音调播放至少2秒”之类的事情 - 并采取相应的行动。 这里有一个合理的速度FFT实现:http://www.badlogicgames.com/wordpress/?p=449 也可以使用FFT(实际上,IS使用)来检测双音素拨号(DTMF) - 同时2个频率比仅使用一个频率要好得多(因为错误率显着降低,你可以在短时间内发送音调/检出)。
“听不见”是不可能的,因为(a)扬声器不能产生这样的声音(b)你的采样率有限 - 所以在制作和录制这样的高频时也是有限的。
“几英尺”将自然施加(不是很响的扬声器,不是很好的麦克风)。
答案 1 :(得分:2)
看看另一个问题:"Android: Need to record mic input"。我认为您可以为您的任务修改它,然后使用声音字节,您可以进行过滤或FFT。
希望有所帮助