Что возвращается после выполнения команды для извлечения mf cc? - PullRequest
1 голос
/ 20 апреля 2020

Я изучал звуковой анализ, и в нем я встретил термин mf cc. Поэтому, когда я выполняю librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40), я получаю numpy массив формы 40 к 216. Итак, я получаю, что извлек 40 объектов за 216 кадров. Но здесь то, что именно подразумевается под кадрами, похоже ли это на частоту дискретизации и где мы определяем ее при загрузке аудиофайла.

1 Ответ

1 голос
/ 20 апреля 2020

Что не сразу видно из mf cc документов , так это то, что он вызывает librosa.feature.melspectrogram внутри. И melspectrogram имеет параметры win_length / n_fft и hop_length, которые определяют frame . Вы также можете передать эти параметры в mfcc.

Так что же такое кадр? По сути, это результат обработки нескольких необработанных выборок: при условии, что длина окна составляет 2048 выборок (это значение по умолчанию) и длина перехода 512 (также по умолчанию), каждый из кадров, возвращаемых mfcc, соответствует 2048 необработанным сэмплы и 512 сэмплов «дальше по аудио», чем у его предшественника. Другими словами, существует значительное перекрытие между кадрами.

Например, для создания mf cc для вашего аудио, определяя кадр как 1024 семпла и длину скачка 512, вы можете вызвать :

librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40, hop_length=512, n_fft=1024)

Опять же, если вы не передаете эти аргументы явно, используются значения по умолчанию melspectrogram .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...