我已经在 StackOverflow 和网络上搜索了许多关于口哨检测等的问题,并且许多人确实尽可能多地解释了他们如何去检测他们的东西。
但我不明白 FFT 如何帮助您检测给定样本音频数据中的某些声音?这是我到目前为止从我在这里和那里找到的一些东西所理解的。
-The sine wave is more or less the building block of ALL signals, musical or not
-Three parameters - FREQUENCY, AMPLITUDE, and INITIAL PHASE, characterize every steady sine wave completely.
-They make each and any kind of wave unique.
-Fourier transform can be used to inspect what kinds of sine waves there are in a signal
SOURCE -- [Audio signal processing basics][3]
Audio data that the computer generates as received from the mic or other input source, for live processing, is an array of amplitudes processed (or stored or taken) at a particular sample rate.
那么如何从那开始检测口哨声和鼓掌声呢?还有复杂的事情,比如说一首特定歌曲的短时间吹口哨?
我的检测理论是,我们在频谱图中测试我们的哨子,并记录特定的频率和幅度特性。然后,如果这些特定特征在输入中再次重复,我们就检测到了哨声。我是对还是错?这个声音处理的东西有点复杂。
忘了提这个 - 我正在使用 Python。Java 也可以,因为我发现的大多数示例代码都是针对 Java 中的 Android 的。我也可以在 Java 中工作。提及任何库或 API 也会有所帮助。