Как получить номер кадра и размер кадра из файла WAV
В настоящее время я делаю тезис о распознавании аккордов с EPCP с wav-файлом в качестве входных данных, но сейчас я застрял в определении количества кадров и размера кадра одного файла wav. Мне нужны эти данные в качестве параметров для функции Hammingwindow в библиотеке NAudio
public static double HammingWindow(int n, int frameSize)
Я извлек все доступные заголовки wav, но я не знаю, как получить количество кадров и размер кадра. Могу ли я рассчитать его на основе данных заголовка? Или есть другой способ?
3 ответа
Если бы вы знали, что такое окно Хэмминга, вы бы не задавали такой вопрос. Статья в Википедии рассказывает вам все об этом.
Я сам не специалист по DSP, но я работаю с ним уже несколько месяцев в свободное время. Все, что я могу вам сказать, это то, что это очень сложная область! Ничего, что вы можете понять за неделю или около того. Студенты получают образование в этой области в течение нескольких семестров в средней школе. Просто как примечание.
Итак, относительно вашего вопроса:
Вы выбираете размер блока, это обычно определяется вашим аудиооборудованием. Это всегда имеет основание 2, поэтому 128, 256 .... типичное - 1024. Это ваш размер кадра.
При использовании WAV-файлов вы можете выбрать нужный размер кадра. Он должен просто соответствовать вышеупомянутым критериям.
Окно в этом контексте представляет собой "кривую", которая начинается в момент времени 0 с некоторым значением и заканчивается в frameSize-1 с некоторым значением.
Параметр "n" вашей функции - это позиция в этом окне. Функция возвращает значение между 0 и 1, которое представляет значение в "n".
NAudio имеет демонстрацию WPF, в которой SampleAggregator.cs использует функцию HammingWindow. Вы проверили этот образец и поняли, как он используется?