Я пытаюсь проанализировать файл фильма, разделив его на снимки с камеры, а затем пытаюсь определить, какие снимки важнее других. Одним из факторов, которые я рассматриваю в качестве важного для кадра, является громкость звука во время этой части фильма. Для этого я анализирую соответствующий звуковой файл. У меня возникают проблемы с определением, насколько "громким" является выстрел, потому что я не думаю, что полностью понимаю, что представляют собой данные в файле WAV.
Я прочитал файл в аудио-буфер, используя метод, аналогичный описанному в в этом посте .
Уже разбив соответствующий видеофайл на кадры, я сейчас пытаюсь найти, какие кадры громче, чем другие, в файле WAV. Я пытаюсь сделать это, извлекая каждый образец в файл, как это:
double amplitude = (double)((audioData[i] & 0xff) | (audioData[i + 1] << 8));
Некоторые из других постов, которые я прочитал, по-видимому, указывают на то, что мне нужно применить быстрое преобразование Фурье к этим аудиоданным, чтобы получить амплитуду, что заставляет меня задуматься о том, какие значения, которые я извлек, на самом деле представляют. Что я делаю правильно? Мой формат звукового файла - 16-битный моно PCM с частотой дискретизации 22 050 Гц. Должен ли я что-то делать с этим значением 22 050 при попытке проанализировать объем файла? Другие посты предлагают использовать Root Mean Square для оценки громкости. Это требуется, или просто более точный способ сделать это?
Чем больше я смотрю на это, тем больше смущаюсь. Если бы кто-нибудь мог пролить свет на мои ошибки и недоразумения, я был бы очень признателен!