Сравнение звуковых сигналов - нетривиальная задача.
Звук - это просто последовательность значений (чисел), где индекс - это просто «время», а значение - это громкость звука (амплитуда).
Если вы сравниваете аудиоданные, например, два массива (последовательности), элемент за элементом, итерируя по индексу, будет удача получить что-то разумное. Хотя вам нужно некоторое преобразование этого массива, чтобы получить агрегированную информацию об этой последовательности чисел в целом (например, спектр сигнала).
Есть некоторые математические инструменты для этой задачи, например, упомянутые вами хорошо известные Преобразование Фурье и статистический инструмент Автокорреляция (он находит "доброту" последовательности чисел) .
Метод автокорреляции может быть относительно простым - вы просто выполняете сравнение массивов данных и вычисляете автокорреляцию. Но вы будете платить за простоту в случае исходного качества (или подготовки / нормализации) сигналов - они должны иметь одинаковую длительность. Значение приведенной корреляционной функции покажет, насколько отличаются две последовательности, то есть 0
- абсолютно разные, а 1
- почти одинаковые.
Для реализации преобразования Фурье (FFT) тоже не проблема, вы можете взять хорошо описанный алгоритм и реализовать его на любом языке без использования сторонних библиотек. Это делает работу очень хорошо.
FT поможет вам получить спектр сигнала, то есть другой набор значений: набор амплитуд на частоту (грубо говоря, частота как индекс массива, а не время в случае входного необработанного сигнала), и теперь вы можете сравнить эти данные спектры почти как два массива, перебирающих индекс (частоту) и затем определяющих их сходство - вычислите дельты и посмотрите, не попало ли оно в некоторый интервал принятия (или вы можете использовать более правильные статистические методы, например корреляционная функция ).
Что касается шумового сигнала , шум обычно вычитается из заданного набора данных (но здесь вы должны знать тип шума).
Все это связано с областью обработки сигналов, и если вы работаете над таким проектом, вам нужно больше узнать об этом.
Бонус: книга, например