Можно ли программно узнать какие звуки записал микрофон?
Добрый день! Имеется система видеонаблюдения. Если к ней добавить направленный микрофон, можно потом по записи звука, какой либо программой определить, что это был за звук? (например подъехала машина, собака залаяла, дрон пролетел или самолет)
kisaa Ничего так элементарность - уже начиная с вопроса о том, какие фичи ей скормить :-)
mor1s Если выборка таки есть - я бы попробовал построить спектрограмм и обучить на них какую-то сетку с устройством типа rnn (для учёта последовательностей) поверх conv1d (для создания отдельных фильтров). Но это не точно (хотя на спектрограммы всё равно стоит глянуть).
Как baseline я бы попробовал такое решение:
- записываем звук как кучу коротких чанков (там, 0.5 сек. например)
- строим спектрограммы на этих чанках (будет матрица вида N * k, где k - число частот, N - длина записи)
- усредняем спекторграммы по оси "длины записи" (получим вектора размера k)
- обучаем на этих чанках и происвоенных им лейблах классификатор (возможно - k-nearest neighbours? Во всяком случае задача в таком виде кажется похожей на решаемую им)
Потом бы (при наличии большой выборки) извращался над более сложными решениями - например, как в моём комментарии к ответу kisaa - и сравнивал бы качество классификации (на кроссвалидации, конечно :-) ).