Почему libleosa liblesa.feature.mfcc () выпрыгивает 2D массив? -- python поле с участием mfcc пол Связанный проблема

Why does librosa librosa.feature.mfcc() spit out a 2D array?


1
vote

проблема

русский

Вызов libleosa.feature.mfcc () в аудиофайле выплесет 2D-массив, как так:

 <код> array([[ -5.229e+02,  -4.944e+02, ...,  -5.229e+02,  -5.229e+02],    [  7.105e-15,   3.787e+01, ...,  -7.105e-15,  -7.105e-15],    ...,    [  1.066e-14,  -7.500e+00, ...,   1.421e-14,   1.421e-14],    [  3.109e-14,  -5.058e+00, ...,   2.931e-14,   2.931e-14]])   

Мой вопрос в том, что это? Потому что я ожидал 1D массив коэффициентов, почему это 2D? А какие размеры? Может быть, это мое недопонимание того, что я должен возвращаться, однако любое объяснение будет оценено. Я попытался смотреть онлайн, но все, кажется, просто знают, что это такое.

Английский оригинал

Calling librosa.feature.mfcc() on an audio file spits out a 2D array like so:

array([[ -5.229e+02,  -4.944e+02, ...,  -5.229e+02,  -5.229e+02],    [  7.105e-15,   3.787e+01, ...,  -7.105e-15,  -7.105e-15],    ...,    [  1.066e-14,  -7.500e+00, ...,   1.421e-14,   1.421e-14],    [  3.109e-14,  -5.058e+00, ...,   2.931e-14,   2.931e-14]]) 

My question is what are these? Because I was expecting a 1D array of coefficients, why is it 2D? and what are the dimensions? Maybe this is my misunderstanding of what I should be getting back, however any explanation would be appreciated. I tried looking online but everyone seems to just know what it is.

</div
     
 
 

Список ответов

1
 
vote
vote
Лучший ответ
 

Одно измерение - это время, другой - это разные частоты. Эта ссылка показывает, как она выглядит, если вы это записали:

http://musicinformationretrival.com/mfcc.html

 

One dimension is the time, the other one are the different frequencies. This link shows how it looks if you plot it:

http://musicinformationretrieval.com/mfcc.html

</div
 
 
3
 
vote

Я тоже покончил на этом.

Проверить https://librosa.github.io/librosa/glossary.html В частности, формулировка для «рамки».

Вы обычно представляете, что серия образцов, которые выходит налево, направо на оси X - однако обратите внимание, что она называется «y» в либрезе.

Давайте предположим, что мой образец, с окном 2 и Hop Size 1:

 <код> [1,2,3,4,5]   

Когда я ожидаю следующее:

 <код> array([[1, 2],        [2, 3],        [3, 4],        [4, 5]])   

Какая либрета на самом деле дает мне:

 <код> array([[1, 2, 3, 4],        [2, 3, 4, 5]])   

Кажется, что это связано с удобством для того, чтобы Librosa любит отображать / бросить данные вокруг.

Простой способ работать с тем, что у вас обычно есть в вашей голове, - это транспонировать NP.Array

 <код> mfccs = librosa.feature.mfcc(np.array([1,2,3,4,5])) # The mfccs exists down the columns, not across each row!  array([[-353.18529412],        [  -9.92147635],        [   1.39044844],        [  19.76460942],        [  25.52789074],        [ -18.65229483],        [  17.41164986],        [  32.40858638],        [ -13.52776281],        [   8.38747316],        [  23.82210792],        [  16.50381765],        [ -23.39931177],        [  40.04480991],        [   7.76233177],        [  -2.54971281],        [   4.81715362],        [  36.80008536],        [  -9.8943455 ],        [  -0.57583487]])  mfccs.T # Now mffcs[0] (the first row) refers to the first mfcc!  array([[-353.18529412,   -9.92147635,    1.39044844,   19.76460942,           25.52789074,  -18.65229483,   17.41164986,   32.40858638,          -13.52776281,    8.38747316,   23.82210792,   16.50381765,          -23.39931177,   40.04480991,    7.76233177,   -2.54971281,            4.81715362,   36.80008536,   -9.8943455 ,   -0.57583487]])   

для начинающих : Что это делает? Думайте о матрице (массиве), напечатанном на кусочке прозрачного пластика, затем возьмите левую нижнюю часть и переверните страницу над перемещением внизу влезу вверх вправо.

 

I got tripped up on this one as well.

Check out https://librosa.github.io/librosa/glossary.html specifically the wording for 'frame'.

You would usually imagine a series of samples going left to right on the x axis - however note that it's referred to as 'y' in librosa.

Let's assume my sample is, with a window of 2 and hop size 1:

[1,2,3,4,5] 

When I expect the following:

array([[1, 2],        [2, 3],        [3, 4],        [4, 5]]) 

What librosa actually gives me is:

array([[1, 2, 3, 4],        [2, 3, 4, 5]]) 

It seems to be due to convenience for the way librosa likes to display / throw data around.

The simple way to work with what you would usually have in your head is to transpose the np.array

mfccs = librosa.feature.mfcc(np.array([1,2,3,4,5])) # The mfccs exists down the columns, not across each row!  array([[-353.18529412],        [  -9.92147635],        [   1.39044844],        [  19.76460942],        [  25.52789074],        [ -18.65229483],        [  17.41164986],        [  32.40858638],        [ -13.52776281],        [   8.38747316],        [  23.82210792],        [  16.50381765],        [ -23.39931177],        [  40.04480991],        [   7.76233177],        [  -2.54971281],        [   4.81715362],        [  36.80008536],        [  -9.8943455 ],        [  -0.57583487]])  mfccs.T # Now mffcs[0] (the first row) refers to the first mfcc!  array([[-353.18529412,   -9.92147635,    1.39044844,   19.76460942,           25.52789074,  -18.65229483,   17.41164986,   32.40858638,          -13.52776281,    8.38747316,   23.82210792,   16.50381765,          -23.39931177,   40.04480991,    7.76233177,   -2.54971281,            4.81715362,   36.80008536,   -9.8943455 ,   -0.57583487]]) 

For beginners: what does this do? Think of the matrix (array) being printed on a piece of clear plastic then grab the bottom left and flip the page over moving the bottom left to the top right.

</div
 
 
 
 

Связанный проблема

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала  ( Pythons requests missing dependencies for socks support when using socks5 fro ) 
Я пытаюсь взаимодействовать с API из My Python 2.7 Shell, используя пакет, который опирается на запросы Python. Вещь - это удаленный адрес блокируется моей се...

0  Использование Selenium Python при взаимодействии с веб-сайтом вручную  ( Using selenium python while interacting with a website manually ) 
Обновление: Я создал пользовательский профиль с совместимым способом IE в качестве по умолчанию и получить ту же сообщение об ошибке, поэтому кажется что-то о...

1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame  ( Execute sql file return results as pandas dataframe ) 
У меня есть сложный запрос SQL Server, который я хотел бы выполнить из Python и вернуть результаты в виде файла PandaFrame. Моя база данных читается только ...

2  Добавьте номера в шестнадцатеричном базе без конвертации баз?  ( Add numbers in hexadecimal base without converting bases ) 
Мне нужно написать функцию, которая получает два числа в шестнадцатеричном базе, и вычисляет сумму обоих из них, мне не разрешено преобразовывать их в десятич...

6  ReportLab 'LayoutError' Обработка и отладки  ( Reportlab layouterror handling and debugging ) 
Я работал с некоторыми сложными выходами PDF с ReportLab. Это, как правило, хорошо, но есть некоторые случаи, где я получаю LayoutErrors - это обычно потому, ...

5  Сайт к изображению  ( Website to image ) 
Я запускаю Python 3.1, и вы бы назвали меня продвинутым начинающим :) Мой вопрос простой: я пытаюсь сделать простую программу, которая просит пользователям ...

2  Высокое использование ЦП в ткани 1.0.0  ( High cpu usage in fabric 1 0 0 ) 
в ткани 0,9, все работает нормально, но в 1.0.0, следующий скрипт ткани показывает 100% загрузку CPU в <Код> top : <код> from fabric.api import run def tes...

2  Векторный способ применить 3-измерительную маску к RGB в Pytorch  ( Vectorized way to apply a 3 dimension mask to rgb in pytorch ) 
У меня есть тензор HXWX3, представляющий изображение RGB, и тензора RGBX3 (Boolean) Tensor в качестве ввода. Предполагается, что для каждого (i, j) в маске те...

16  Как преобразовать шестигранную строку в шестнадцатеричный номер?  ( How to convert hex string to hex number ) 
У меня есть целое число в бывшем. 16 И я пытаюсь преобразовать этот номер в шестнадцатеричный номер. Я пытался достичь этого, используя функцию Hex, но всякий...

9  От CVX до CVXPY или CVXOPT  ( From cvx to cvxpy or cvxopt ) 
Я пытался пройти какой-код из Matlab в Python. У меня такая же проблема с выпуклой оптимизацией, работающая на MATLAB, но у меня возникли проблемы, передавающ...

0  Почему этот сценарий Python работает на Ubuntu, но не распачин?  ( Why does this python script work on ubuntu but not raspbian ) 
Друг, и я создал следующий скрипт, использующий BeautifulSoup, чтобы получить HTML страницы работы, а затем добавить работу на массив, затем файл, затем отпра...

1  Нахождение корней с Scipy.Optimize.root  ( Finding roots with scipy optimize root ) 
Я пытаюсь найти root y функции, называемой f с помощью python. Вот мой код: <код> def f(y): w,p1,p2,p3,p4,p5,p6,p7 = y[:8] t1 = w - 0.500371726*...

1  Как мне позвонить в родительский класс в подклассе?  ( How do i call on a parent class in a subclass ) 
Мне нужно создать вызов несвязанного метода, чтобы установить имя и листья, и я не знаю, как. Любая помощь ценится. Мой код: <код> class Plant(object): ...

0  Запустите сценарий Python в колбу  ( Run python script into flask ) 
У меня есть настольное приложение для обнаружения лиц, написанных в сценарии Python, используя OpenCV и Numpy. Я хочу поставить эти файлы Python в колбу и зап...

2  Скапировка не вызывает никакой другой функции после «__init__»  ( Scrapy not calling any other function after init ) 
ОС: Ubuntu 16.04 Стек - Scrapy 1.0.3 + Selenium Я довольно новичок в Scrape, и это может звучать очень простое, но в моем пауке только « init » выполняется. Л...

Связанный проблема

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала 
0  Использование Selenium Python при взаимодействии с веб-сайтом вручную 
1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame 
2  Добавьте номера в шестнадцатеричном базе без конвертации баз? 
6  ReportLab 'LayoutError' Обработка и отладки 
5  Сайт к изображению 
2  Высокое использование ЦП в ткани 1.0.0 
2  Векторный способ применить 3-измерительную маску к RGB в Pytorch 
16  Как преобразовать шестигранную строку в шестнадцатеричный номер? 
9  От CVX до CVXPY или CVXOPT 
0  Почему этот сценарий Python работает на Ubuntu, но не распачин? 
1  Нахождение корней с Scipy.Optimize.root 
1  Как мне позвонить в родительский класс в подклассе? 
0  Запустите сценарий Python в колбу 
2  Скапировка не вызывает никакой другой функции после «__init__»