2017-11-27 19 views
5

का पाइथन कार्यान्वयन मेरे पास एक डेटाबेस है जिसमें एक वीडियो स्ट्रीमिंग है। मैं छवियों और एमएफसीसी ऑडियो से एलबीपी सुविधाओं की गणना करना चाहता हूं और वीडियो में प्रत्येक फ्रेम के लिए मुझे कुछ एनोटेशन है। एनोटेशन वीडियो फ्रेम और वीडियो के समय के साथ रेखांकित है। इस प्रकार, मैं उस समय को मैप करना चाहता हूं जो मेरे पास एनोटेशन से एमएफसीसी के परिणाम तक है। मुझे पता है कि sample_rate = 44100एमएफसीसी एल्गोरिदम

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 

सबसे पहले, क्यों MFCC की लंबाई का परिणाम 4831 और कैसे मैप करने के लिए है कि एनोटेशन मैं सेकंड में है में है? वीडियो की कुल अवधि 48 सेकंड है। और वीडियो की एनोटेशन 1 9-9सीसी खिड़कियों को छोड़कर हर जगह 0 है जहां 1 है। मैं mfcc के परिणामों से विंडो के अंदर नमूने कैसे ढूंढ सकता हूं (1 9 -29)?

+0

बस एक टिप्पणी है: Librosa विभिन्न सुविधा निष्कर्षण तरीकों है। यह आपके काम में मदद कर सकता है। https://github.com/librosa/librosa/blob/master/examples/LibROSA%20demo.ipynb – dkato

उत्तर

3

भागो

mfcc_feat.shape 

आप मिलना चाहिए (4831,13)। 13 आपकी एमएफसीसी लंबाई है (डिफ़ॉल्ट numcep 13 है)। 4831 खिड़कियां है। डिफ़ॉल्ट winstep 10 एमसीसी है, और यह आपके ध्वनि फ़ाइल अवधि से मेल खाता है। खिड़कियों 19-29 सेकंड के लिए इसी को पाने के लिए, बस काट

mfcc_feat[1900:2900,:] 

याद रखें, कि आप MFCC बात नहीं कर सकते हैं। यह सिर्फ 0.025 सेकंड के ऑडियो के टुकड़े का प्रतिनिधित्व करता है (winlen पैरामीटर का डिफ़ॉल्ट मान)।

आप ऑडियो खुद को पाने के लिए चाहते हैं, यह

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

लेकिन कुछ ओवरलैप भी नहीं है? यह मुझे उलझन में है। – konstantin

+0

मैं सिग्नल की विशेषताओं को लेना चाहता हूं और कुछ और विश्लेषण के लिए उनका उपयोग करना चाहता हूं। एमएफसीसी (आवृत्ति डोमेन के इसके गुणांक सुनने के लिए आपका क्या मतलब है - मैं उन्हें कैसे सुन सकता हूं)? – konstantin

+0

पुन: ओवरलैप: बेशक। एमएफसीसी की गणना 'विनलेन' और प्रत्येक 'विनस्टेप' पर की जाती है। तो खिड़कियों की संख्या 'winstep' पर निर्भर करता है। सुविधाओं की गुणवत्ता 'winlen' पर निर्भर करती है। विभिन्न अनुप्रयोगों के लिए आप विभिन्न विंडोज आकारों का उपयोग करते हैं। – igrinis