2016-11-02 5 views
0

Я совершенно новый в обучении машинам, и я создаю простое приложение для распознавания устных цифр.
Я использовал MFCC для извлечения фильтрующей характеристики моих аудиофайлов. MFCC выводит мне матрицу размером 13 x length_of_audio. Я хотел бы использовать эту информацию для моего вектор-функции. Но, очевидно, каждый пример имел бы различное количество функций.
Вопрос в том, какие подходы обрабатывают различные функции. Например. могу ли я использовать PCA, чтобы всегда извлекать фиксированное количество функций, а затем использовать их в определенном алгоритме обучения?
Я бы хотел использовать логистическую регрессию как алгоритм обучения.Машинное обучение: PCA для различного количества функций

Это то, что я получил при анализе одной из разговорных цифр. MFCC

ответ

0

В вашем случае, если у вас есть для пользователя length_of_audio_matrix = N не имеют особенность вектор 13 * N, у вас есть N особенности векторов длины 13 (они составляют последовательность, но они отличаются особенностью векторы).

Вы должны составить матрицу из 13 функций:

MFCCUser1,Slot1 
MFCCUser1,Slot2 
.... 
MFCCUser1,SlotN 
MFCCUser2,Slot1 
MFCCUser2,Slot2 
... 

И тогда вы можете применить Principal Component Analysis.

У вас только есть 13 функций, вам действительно нужно их уменьшить?

+0

Спасибо за ваш ответ, но я не совсем понимаю, что вы имеете в виду: «У вас только 13 функций»? См. Цифру, добавленную в мой вопрос, я думаю, что все маленькие квадраты в «тепловой карте» MFCC - это функции, которые дают мне в этом случае вектор-функцию длиной около 13 * 85 – FilipR

+0

Если я понимаю вашу проблему, у вас есть аудиозапись , Чтобы извлечь функции, вы делите сигнал на куски X miliseconds, после чего вы извлекаете компоненты 13MFCC на каждую звуковую часть. Если вы хотите использовать PCA, вы должны использовать PCA на 13-дюймовых векторах компонентов MFCC (все они имеют одинаковую длину). Но PCA используется для уменьшения количества функций, вы обрабатываете только 13 Я не вижу необходимости их сокращения. – Rob

+0

Да, у меня есть аудиозаписи. У каждой аудиозаписи не более 1 секунды. Я разделил 1 секунду аудиозаписи на 100 звуковых фрагментов, каждые 10 мс. MFCC выводит 13 функций на 10 мс аудиокомплекту, потому что у меня не более 100 штук (некоторые аудио имеют менее 1 секунды) -> У меня есть 13 функций * 100 штук = 1300 функций для 1-секундной аудиозаписи. И мой вопрос: потому что не у всех аудиозаписей есть ровно 1 секунда, поэтому я не всегда получаю вектор-функцию 1300, поэтому я могу использовать PCA для уменьшения числа функций до определенного числа, s.t. Я могу применить ML algo? Или есть другой лучший подход? – FilipR

Смежные вопросы