2016-06-22 3 views
0

Используя библиотеку Librosa, я создал функции MFCC аудиофайла 1319 секунд в матрице 20 X 56829. Здесь 20 представляет собой отсутствие функций MFCC (которые я могу вручную отрегулировать). Но я не знаю, как он сегментировал длину аудио в 56829. Каков размер кадра, который требует обработки звука?Python Librosa: Каков размер кадра по умолчанию, используемый для вычисления функций MFCC?

import numpy as np 
import matplotlib.pyplot as plt 
import librosa 

def getPathToGroundtruth(episode): 
    """Return path to groundtruth file for episode""" 
    pathToGroundtruth = "../../../season01/Audio/" \ 
         + "Season01.Episode%02d.en.wav" % episode 
    return pathToGroundtruth 

def getduration(episode): 
    pathToAudioFile = getPathToGroundtruth(episode) 
    y, sr = librosa.load(pathToAudioFile) 
    duration = librosa.get_duration(y=y, sr=sr) 
    return duration 
def getMFCC(episode): 
    filename = getPathToGroundtruth(episode) 
    y, sr = librosa.load(filename) # Y gives 
    data = librosa.feature.mfcc(y=y, sr=sr) 
    return data 


data = getMFCC(1) 
+0

вы могли бы предоставить код ты использовал? – lCapp

+0

обновил вопрос с помощью кода – Rangooski

ответ

3

Короткий ответ

Вы можете указать Изменение длины путем изменения параметров, используемых в расчетах STFT. Следующий код будет удвоить размер вашей продукции (20 х 113658)

data = librosa.feature.mfcc(y=y, sr=sr, n_fft=1012, hop_length=256, n_mfcc=20) 

Длинный ответ

librosa.feature.mfcc() функция Librosa действительно просто действует как оболочка для librosa.feature.melspectrogram() функции librosa (который является оболочкой для librosa.core.stft и librosa.filters.mel).

Все параметры, относящиеся к разделению аудиосигнала, а именно к кадру и значениям перекрытия, указаны в функции спектрального спектрометра Mel-scaled power (с другими настраиваемыми параметрами, заданными для вложенных основных функций). Эти параметры указываются в качестве аргументов ключевого слова в функции librosa.feature.mfcc().

Все дополнительные **kwargs параметры подаются librosa.feature.melspectrogram() и впоследствии librosa.filters.mel()

По умолчанию, Mel-масштабируется стеклоподъемника спектрограммы и хмель длина являются следующие:

n_fft=2048

hop_length=512

Итак, предположим, что вы использовали частоту выборки по умолчанию (sr=22050), вывод ваших MFCC функция имеет смысл:

выходная длина = (секунды) * (частота дискретизации)/(hop_length)

(1319) * (22050)/(512) = образцы

параметры, которые вы в состоянии настроить, являются следующие:

Melspectrogram Parameters 
------------------------- 
y : np.ndarray [shape=(n,)] or None 
    audio time-series 

sr : number > 0 [scalar] 
    sampling rate of `y` 

S : np.ndarray [shape=(d, t)] 
    power spectrogram 

n_fft : int > 0 [scalar] 
    length of the FFT window 

hop_length : int > 0 [scalar] 
    number of samples between successive frames. 
    See `librosa.core.stft` 

kwargs : additional keyword arguments 
    Mel filter bank parameters. 
    See `librosa.filters.mel` for details. 

Если вы хотите дополнительно указать характеристики мне л гребенки фильтров используется для определения Mel-масштабируется мощности спектрограммы, вы можете настроить следующие

Mel Frequency Parameters 
------------------------ 
sr  : number > 0 [scalar] 
    sampling rate of the incoming signal 

n_fft  : int > 0 [scalar] 
    number of FFT components 

n_mels : int > 0 [scalar] 
    number of Mel bands to generate 

fmin  : float >= 0 [scalar] 
    lowest frequency (in Hz) 

fmax  : float >= 0 [scalar] 
    highest frequency (in Hz). 
    If `None`, use `fmax = sr/2.0` 

htk  : bool [scalar] 
    use HTK formula instead of Slaney 

Документацию Librosa:

librosa.feature.melspectrogram

librosa.filters.mel

librosa.core.stft

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