2016-06-22 8 views
0

Mit Librosa Bibliothek, generierte ich die MFCC-Funktionen der Audiodatei 1319 Sekunden in eine Matrix 20 X 56829. Die 20 stellt hier die Nr. Von MFCC Features dar (die ich manuell einstellen kann). Aber ich weiß nicht, wie es die Audiolänge in segmentierte. Wie groß ist die Framegröße, um das Audio zu verarbeiten?Python Librosa: Was ist die Standard-Frame-Größe, die zur Berechnung der MFCC-Funktionen verwendet wird?

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

könnten Sie Code bereitstellen Sie verwendeten? – lCapp

+0

aktualisiert die Frage mit dem Code – Rangooski

Antwort

3

Kurzantwort

Sie die Änderung in der STFT Berechnungen verwendet, um die Länge durch Ändern der Parameter angeben können. Der folgende Code wird die Größe Ihrer Ausgabe verdoppeln (20 x 113658)

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

Lange Antwort

Librosa der librosa.feature.mfcc() Funktion wirklich nur als Wrapper ist zu librosa librosa.feature.melspectrogram() Funktion wirkt (das ist ein Wrapper zu librosa.core.stft und librosa.filters.mel Funktionen).

Alle Parameter zur Segmentierung des Audiosignals - nämlich die Rahmen- und Überlappungswerte - werden in der Mel-skalierten Leistungsspektrogrammfunktion (mit anderen abstimmbaren Parametern, die für verschachtelte Kernfunktionen spezifiziert sind) verwendet. Sie geben diese Parameter als Schlüsselwortargumente in der Funktion librosa.feature.mfcc() an.

Alle zusätzlichen **kwargs Parameter werden librosa.feature.melspectrogram() zugeführt und anschließend in librosa.filters.mel()

Standardmäßig wird die Mel-skalierten Power Spektrogramm-Fenster und Hop-Länge sind die folgenden:

n_fft=2048

hop_length=512

Unter der Annahme, dass Sie die Standard-Abtastrate (sr=22050) verwendet haben, wird die Ausgabe Ihres MFCC Funktion ist sinnvoll:

Ausgangslänge = (Sekunden) * (Abtastrate)/(hop_length)

(1319) * (22050)/(512) = Proben

die Parameter, die Sie stimmen können, sind die folgenden: die mich

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. 

Wenn Sie weiter spezifizieren Eigenschaften l Filterbank verwendet, um die Mel-skalierten Strom Spektrogramm zu definieren, können Sie tune folgende

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 

Dokumentation für Librosa:

librosa.feature.melspectrogram

librosa.filters.mel

librosa.core.stft

Verwandte Themen