Звучит так, будто вы не собираетесь тратить много времени на изучение / разработку аудио, и, следовательно, вам нужно что-то, что вы можете быстро понять и просто работать. Если вы готовы пойти с чем-то более сложным, см. здесь для очень хорошей справки.
В таком случае, я бы ожидал, что простой громкости и пересечения нуля будет достаточно для определения фрагментов звука. Это здорово, потому что вы можете использовать технику, похожую на rsync .
Выберите некоторое количество сэмплов в качестве размера фрагмента и регулярно просматривайте эталонные аудиоданные. (Давайте назовем это «размером порции».) Вычислите меру пересечения нуля (вы, вероятно, хотите логарифм (или быстрое приближение) простого подсчета пересечения нуля). Сохраните фрагменты в двухмерной пространственной структуре на основе времени и меры пересечения нуля.
Затем проведите свои аудиоданные гораздо более тонким шагом за раз. (Вероятно, не нужно быть таким маленьким, как один образец.) Обратите внимание, что вам не нужно пересчитывать меры для всего размера фрагмента - просто вычтите пересечения нулей, которые больше не находятся в блоке, и добавьте новый те, которые есть. (Вам все еще нужно будет вычислить логарифм или его приближение.)
Ищите «следующий» фрагмент с достаточно близкой частотой. Обратите внимание, что поскольку вы ищете все в порядке от начала и до конца, нет причин смотреть на все фрагменты. На самом деле, мы не хотим этого, потому что у нас гораздо больше шансов получить ложные срабатывания.
Если кусок совпадает достаточно хорошо, посмотрите, полностью ли он соответствует, чтобы замолчать.
Единственная касающаяся точка - это пространственная структура 2D, но, честно говоря, это можно сделать намного проще, если вы хотите простить строгое окно приближения. Тогда вы можете просто иметь перекрывающиеся корзины. Таким образом, все, что вам нужно сделать, это проверить две ячейки для всех значений через определенное время - по сути, два двоичных поиска в структуре поиска.
Недостатком всего этого является то, что может потребоваться некоторая настройка, чтобы получить права, и это не проверенный метод.