Python, C / ++, java … любой api для сравнения аудиосигналов?

Кто-нибудь знает библиотеку для python, c (++) или java, или даже для внешнего приложения, которое я могу использовать для проверки конкретного искажения звука в mp3? Моя проблема заключается в следующем: у меня очень надежное приложение Django, которое автоматически выполняет подкастинг для радиостанции для всех разных шоу, но примерно раз в неделю компьютер, который делает фактическую запись, записывает поврежденный звук, у которого есть определенный шаблон взаимодействия, это звук рубила почти как вертолет, где звук падает несколько раз в секунду. Я не надеюсь исправить эти аудиофайлы (поскольку я пробовал вручную с хорошим программным обеспечением для редактирования, и это просто потерянное дело), ​​а скорее обнаруживает, что у нас есть или нет этот тип коррупции, поэтому я могу переключиться на резервную версию записи автоматически. внешние инструменты должны идеально работать на linux, но окна приемлемы, если они безголовы (без принудительного gui).

Благодарю.

Я думаю, все, что вам нужно сделать, это сделать fft на mp3, и вы должны увидеть очень низкий частотный всплеск, который соответствует большим падениям. Я не гуру dsp, хотя и не уверен, что это сработает, но его легко попробовать.

Для этого вы можете использовать библиотеку numpy для python. http://numpy.scipy.org/

просто прочитайте в mp3-файле в массив, а затем сделайте fft, для теста я бы порекомендовал просто сначала его построить (используя, например, maptlotlib), с обеими версиями, с коррумпированными и хорошими, и посмотрите, можете ли вы легко обнаружить поврежденную версию. Тогда, надеюсь, вы можете написать простой алгоритм для обнаружения поврежденных файлов там fft.

Для чтения в mp3 в буфер данных вы можете использовать PyMedia http://pymedia.org/

Я не использовал PyMedia, поэтому я не уверен, что читаю mp3 в буфер (это не должно быть слишком сложно, я думаю), но после этого построение fft так же просто, как:

from numpy import * from numpy.fft import * import pylab # place code to read the mp3 file into buf[] here. buf_fft = fft(buf, 1024) pylab.plot(fftfreq(1024, 0.1), abs(buf_fft)) pylab.show() 

Попробуйте BASS Library и посмотрите, есть ли у вас то, что вы ищете.