Я пытаюсь разработать метод классификации аудио с использованием MFCC в Weka. Имеющиеся у меня MFCC генерируются с размером буфера 1024, поэтому для каждой аудиозаписи есть серия коэффициентов MFCC. Я хочу преобразовать эти коэффициенты в формат данных ARFF для Weka, но не знаю, как подойти к этой проблеме.
Я также задал вопрос об объединении данных, потому что мне кажется, что это может повлиять на данные. преобразование в формат ARFF.
Я знаю, что для ARFF данные должны быть перечислены через атрибуты. Должен ли каждый коэффициент MFCC быть отдельным атрибутом или массивом коэффициентов как единым атрибутом? Должны ли каждые данные представлять один MFCC, временное окно или весь файл или звук? Ниже я написал, как, по моему мнению, он должен был бы выглядеть, если бы учитывался только один MFCC, который, как я думаю, не смог бы классифицировать весь звук.
@relation audio
@attribute mfcc1 real
@attribute mfcc2 real
@attribute mfcc3 real
@attribute mfcc4 real
@attribute mfcc5 real
@attribute mfcc6 real
@attribute mfcc7 real
@attribute mfcc8 real
@attribute mfcc9 real
@attribute mfcc10 real
@attribute mfcc11 real
@attribute mfcc12 real
@attribute mfcc13 real
@attribute class {bark, honk, talking, wind}
@data
126.347275, -9.709645, 4.2038302, -11.606304, -2.4174862, -3.703139, 12.748064, -5.297932, -1.3114156, 2.1852574, -2.1628475, -3.622149, 5.851326, bark
Любая помощь будет оценена.
Изменить: я создал несколько файлов ARFF / a> с использованием Weka с использованием openSMILE, следуя методу из этот веб-сайт, но я не уверен, как эти данные будет использоваться для классификации звука, потому что каждая строка данных составляет 10 миллисекунд звука из одного и того же файла. Атрибут name каждой строки - «unknown», который, как я предполагаю, является атрибутом, который данные будут пытаться классифицировать. Как я могу классифицировать общий звук (а не 10 миллисекунд) и сравнить его с несколькими другими общими звуками?
Редактировать №2: Успех!
После более тщательного прочтения веб-сайт, который я нашел, я увидел скрипт Accumulate и файлы данных Test and Train. Скрипт накопления объединяет все файлы, созданные каждым набором данных MFCC из отдельных аудиофайлов, в один файл ARFF. Их файл состоял из около 200 атрибутов со статистикой для 12 MFCC. Хотя мне не удалось получить эту статистику с помощью OpenSmile, я использовал для этого библиотеки Python. Статистические данные были максимальным, минимальным, эксцессом, диапазоном, стандартным отклонением и так далее. Я точно классифицировал свои аудиофайлы с помощью BayesNet и Multilayer Perceptron в Weka, которые дали мне 100% точность.