Как получить номер кадра и размер кадра из файла WAV - PullRequest
3 голосов
/ 18 января 2012

В настоящее время я делаю тезис о распознавании аккордов с EPCP с wav-файлом в качестве входных данных, но сейчас я застрял в определении количества кадров и размера кадра одного файла wav. Мне нужны эти данные в качестве параметров для функции Hammingwindow в библиотеке NAudio

public static double HammingWindow(int n, int frameSize)

Я получил все доступные заголовки wav, но я не знаю, как получить количество кадров и размер кадра. Могу ли я рассчитать его на основе данных заголовка? Или есть другой способ?

Ответы [ 3 ]

2 голосов
/ 13 февраля 2012

Если бы вы знали, что такое окно Хэмминга, вы бы не задавали такой вопрос. Статья в Википедии расскажет вам все об этом.

Я сам не специалист по DSP, но я работаю с ним уже несколько месяцев в свободное время. Все, что я могу вам сказать, это то, что это очень сложная область! Ничего, что вы можете понять за неделю или около того. Студенты получают образование в этой области в течение нескольких семестров в средней школе. Просто в качестве примечания.

Итак, относительно вашего вопроса:

Вы выбираете размер блока, обычно это определяется вашим аудиооборудованием. Это всегда основание 2, поэтому 128, 256 .... типичное значение - 1024. Это ваш размер кадра.

При использовании WAV-файлов вы можете выбрать нужный размер кадра. Он должен просто соответствовать вышеупомянутым критериям.

Окно в этом контексте - это «кривая», которая начинается в момент времени 0 с некоторым значением и заканчивается в frameSize-1 с некоторым значением.

Параметр "n" вашей функции - это позиция в этом окне. Функция возвращает значение от 0 до 1, которое представляет значение в «n».

1 голос
/ 05 ноября 2014

Я не использовал HammingWindow.Кадр в соответствии с это подобен образцу, но для многоканального формата «снимок всех каналов в определенной точке данных».

Вы можете получить размер выборки , используя что-то вроде this из заголовка, если это действительно то, что вы хотите.

1 голос
/ 13 февраля 2012

NAudio имеет демонстрацию WPF, в которой SampleAggregator.cs использует функцию HammingWindow. Вы проверили этот образец и поняли, как он используется?

...