2017-11-27 387 views
5

Mam bazę danych, która zawiera streaming wideo. Chcę obliczyć funkcje LBP z obrazów i dźwięku MFCC, a dla każdej klatki w filmie mam trochę adnotacji. Adnotacja jest zaznaczona ramkami wideo i czasem filmu. W związku z tym chcę zmapować czas, który mam z adnotacji na wynik mfcc. Wiem, że sample_rate = 44100Implementacja algorytmu MFCC w języku Python

from python_speech_features import mfcc 
from python_speech_features import logfbank 
import scipy.io.wavfile as wav 

audio_file = "sample.wav" 
(rate,sig) = wav.read(audio_file) 
mfcc_feat = mfcc(sig,rate) 
print len(sig) //2130912 
print len(mfcc_feat) // 4831 

Po pierwsze, dlaczego wynikiem długości MFCC jest 4831 i jak mapować że w adnotacją, że mam w kilka sekund? Łączny czas trwania filmu wynosi 48 sekund. Adnotacja wideo wynosi 0 wszędzie poza oknami 19-29 sekund, gdzie jest 1. Jak mogę zlokalizować próbki w oknie (19-29) od wyników mfcc?

+0

Tylko uwaga: Librosa ma różne metody ekstrakcji cech. To może ci pomóc w pracy. https://github.com/librosa/librosa/blob/master/examples/LibROSA%20demo.ipynb – dkato

Odpowiedz

3

Run

mfcc_feat.shape 

Powinieneś dostać (4831,13). 13 to długość MFCC (domyślnie numcep to 13). 4831 to okna. Domyślnie winstep wynosi 10 ms, a to odpowiada czasowi trwania pliku dźwięku. Aby dostać się do okien odpowiadających 19-29 sekund, po prostu wyciąć

mfcc_feat[1900:2900,:] 

Pamiętaj, że nie możesz słuchać MFCC. Po prostu reprezentuje wycinek audio o wartości 0,025 s (domyślna wartość parametru winlen).

Jeśli chcesz dostać się do samego dźwięku, to

sig[time_beg_in_sec*rate:time_end_in_sec*rate] 
+0

Ale czy nie ma również niektórych pokryć? To mnie zdezorientowało. – konstantin

+0

Chcę wziąć cechy sygnału i użyć ich do dalszej analizy. Co to znaczy słuchać MFCC (jego współczynniki z dziedziny częstotliwości - jak mogę ich słuchać)? – konstantin

+0

re: overlap: Oczywiście. MFCC są obliczane na podstawie 'winlen' i każdego' winstep'. Tak więc liczba okien zależy od 'winstep'. Jakość funkcji zależy od "winlen". W różnych aplikacjach używasz różnych rozmiarów okien. – igrinis