2017-11-27 7 views
5

Ich habe eine Datenbank, die ein Videostreaming enthält. Ich möchte die LBP-Funktionen aus Bildern und MFCC-Audio berechnen und für jedes Bild im Video habe ich eine Anmerkung. Die Anmerkung ist mit den Video-Frames und der Uhrzeit des Videos verknüpft. Daher möchte ich die Zeit, die ich von der Annotation habe, dem Ergebnis des mfcc zuordnen. Ich weiß, dass die sample_rate = 44100Python-Implementierung von MFCC-Algorithmus

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 

Erstens, warum das Ergebnis der Länge des mfcc ist 4831, und wie diese in der Anmerkung zur Karte, die ich in Sekunden habe? Die Gesamtdauer des Videos beträgt 48 Sekunden. Und die Anmerkung des Videos ist überall 0 außer den 19-29sec Fenstern wo ist 1. Wie kann ich die Proben innerhalb des Fensters (19-29) von den Ergebnissen des mfcc lokalisieren?

+0

Nur ein Kommentar: Librosa verschiedene Merkmalsextraktion Methoden hat. Es kann Ihrer Arbeit helfen. https://github.com/librosa/librosa/blob/master/examples/LibROSA%20demo.ipynb – dkato

Antwort

3

Run

mfcc_feat.shape 

Sie sollten erhalten (4831,13). 13 ist Ihre MFCC-Länge (Standard ist numcep ist 13). 4831 ist das Fenster. Standard winstep ist 10 ms, und dies entspricht Ihrer Sound Dateidauer. Um zu den Fenstern zu gelangen, die 19-29 Sek. Entsprechen, schneiden Sie einfach

Denken Sie daran, dass Sie nicht auf die MFCC hören können. Es repräsentiert nur den Audioabschnitt von 0,025 Sekunden (Standardwert von winlen Parameter).

Wenn Sie den Ton selbst zu bekommen, ist es

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

Aber gibt es nicht auch einige Überschneidungen? Das hat mich verwirrt. – konstantin

+0

Ich möchte die Merkmale des Signals nehmen und sie für weitere Analysen verwenden. Was meinst du, die MFCC zu hören (ihre Koeffizienten des Frequenzbereichs - wie kann ich ihnen zuhören)? – konstantin

+0

re: Überlappung: Natürlich. MFCCs werden über "winlen" und jeden "winstep" berechnet. Die Anzahl der Fenster hängt also von 'winstep' ab. Die Qualität der Features hängt von 'winlen' ab. Für verschiedene Anwendungen verwenden Sie unterschiedliche Fenstergrößen. – igrinis