Python, C / ++, java … любой api для сравнения аудиосигналов?
Кто-нибудь знает библиотеку для python, c (++) или java, или даже для внешнего приложения, которое я могу использовать для проверки конкретного искажения звука в mp3? Моя проблема заключается в следующем: у меня очень надежное приложение Django, которое автоматически выполняет подкастинг для радиостанции для всех разных шоу, но примерно раз в неделю компьютер, который делает фактическую запись, записывает поврежденный звук, у которого есть определенный шаблон взаимодействия, это звук рубила почти как вертолет, где звук падает несколько раз в секунду. Я не надеюсь исправить эти аудиофайлы (поскольку я пробовал вручную с хорошим программным обеспечением для редактирования, и это просто потерянное дело), а скорее обнаруживает, что у нас есть или нет этот тип коррупции, поэтому я могу переключиться на резервную версию записи автоматически. внешние инструменты должны идеально работать на linux, но окна приемлемы, если они безголовы (без принудительного gui).
Благодарю.
- Сообщения об ошибках PyAudio alsa
- Как программно изменить объем в Ubuntu
- Как добавить молчание перед wav-файлом
- чтение WAV-файла из базы данных TIMIT в python
- Звуковой выход / входной сигнал малины ALSA
Я думаю, все, что вам нужно сделать, это сделать 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 и посмотрите, есть ли у вас то, что вы ищете.
- Django / Python: как читать файл и проверять, что это аудиофайл?
- Python: конвертировать hex bytestream в "int16"
- Python Ripping CD-файлы для WAV
- AttributeError: объект 'module' не имеет атрибута 'spectrogram'
- pygame.Sound.get_num_channels неточно
- Запись Loopback («What u hear») в Python с использованием PyAudio
- Захват аудио 192 кГц с использованием Python 3
- PyAudio, как определить частоту и амплитуду во время записи?
- Пигаме, звуки не играют