2016-01-08 11 views
5

गणना करें मैं एक स्वचालित भाषण मान्यता इंजन बनाने के मूल चरणों को समझता हूं। हालांकि, मुझे एक स्पष्ट विचार की आवश्यकता है कि विभाजन कैसे किया जाता है और फ्रेम और नमूने क्या हैं। मैं जो कुछ जानता हूं उसे लिखूंगा और उन उत्तरों में मुझे सही करने के लिए उत्तर-एर की अपेक्षा करूंगा जहां मैं गलत हूं और मुझे आगे मार्गदर्शन करता हूं।फ्रेम पर भाषण डेटा कैसे विभाजित करें और एमएफसीसी

वाक् पहचान के बुनियादी कदम के रूप में मैं यह पता कर रहे हैं:

(मैं यह सोचते हैं रहा हूँ इनपुट डेटा एक wav/ogg (या ऑडियो किसी तरह का) फ़ाइल है)

  1. पूर्व भाषण संकेत पर जोर दें: यानी, एक फ़िल्टर लागू करें जो उच्च आवृत्ति संकेतों पर जोर देगा। संभवतया कुछ ऐसा: y [n] = x [n] - 0.95 x [n-1]
  2. उस समय को ढूंढें जिसमें से बोलियां क्लिप शुरू और आकार बदलती हैं। (चरण 1 के साथ इंटरचेंज योग्य)
  3. क्लिप को छोटे समय के फ्रेम में विभाजित करें, प्रत्येक सेगमेंट 30msecs लंबा है। इसके अलावा, प्रत्येक सेगमेंट में लगभग 256 फ्रेम्स होंगे और दो सेगमेंट में 100 फ्रेम्स का पृथक्करण होगा? (यानी, 30 * 100/256 एमसीसी?)
  4. प्रत्येक फ्रेम (1 सेगमेंट के 1/256 वें) में हैमिंग विंडो लागू करें? नतीजा सिग्नल के फ्रेम की एक सरणी है।
  5. फास्ट फूरियर एक्स (टी)
  6. मेल फ़िल्टर बैंक प्रसंस्करण के प्रतिनिधित्व वाले प्रत्येक फ्रेम के संकेत रूपांतरण करें: (अभी तक नहीं विस्तार में चला गया)
  7. असतत कोसाइन रूपांतरण करें: (अभी तक नहीं विस्तार में चला गया है - लेकिन यह है कि पता मुझे प्रत्येक इनपुट कथन के लिए MFCCs भी कहा जाता है ध्वनिक वैक्टर का एक सेट दे देंगे
  8. डेल्टा ऊर्जा और डेल्टा स्पेक्ट्रम:।। मुझे लगता है कि इस डेल्टा और MFCCs के दोहरे डेल्टा गुणांक, बहुत ज्यादा नहीं
  9. गणना करने के लिए प्रयोग किया जाता है इस के बाद पता , मुझे लगता है कि मुझे मेल फ्रीक्वेंसी सेप्स्ट्रम गुणांक (डेल्टा और डबल डेल्टा) को संबंधित फोनेम में वर्गीकृत करने और विश्लेषण टी करने के लिए एचएमएम या एएनएन का उपयोग करने की आवश्यकता है। o शब्दों के लिए फोनेम से मिलान करें और क्रमशः वाक्यों के लिए शब्द।

हालांकि ये मेरे लिए स्पष्ट हैं, अगर मैं चरण 3 सही हूं तो मैं उलझन में हूं। यदि यह सही है, तो निम्नलिखित 3 चरणों में, क्या मैं इसे प्रत्येक फ्रेम पर लागू करता हूं? इसके अलावा, चरण 6 के बाद, मुझे लगता है कि प्रत्येक फ्रेम में एमएफसीसी का अपना सेट होता है, क्या मैं सही हूँ?

अग्रिम धन्यवाद!

+0

एक .wav/.mp4 फ़ाइल से mfcc का निर्माण कैसे करें? –

+1

@kRazzyR किसी टिप्पणी में इसका उत्तर कैसे देना है, लेकिन आपको एक समय श्रृंखला के रूप में ऑडियो फ़ाइल (यदि आवश्यक हो, तो पहले इसे डीकंप्रेस करें) को पढ़ने की आवश्यकता है। फिर इस प्रश्न और उत्तर में बताए गए चरणों को मोटे तौर पर लागू करें। – cipher

+0

ठीक है, मैं इसे समझता हूं। लिब्रोस नामक एक अजगर पैकेज है। मैं आयात का उपयोग कर एमएफसीसी उत्पन्न करने में सक्षम था 'आयात librosa वाई, sr = librosa.load (' ./ data/tring/abcd.wav ') mfcc = librosa.feature.mfcc (y = y, sr = sr) ' –

उत्तर

6

क्लिप को छोटे समय के फ्रेम में विभाजित करें, प्रत्येक सेगमेंट 30msecs लंबा है। इसके अलावा, प्रत्येक सेगमेंट में लगभग 256 फ्रेम्स होंगे और दो सेगमेंट में 100 फ्रेम्स का पृथक्करण होगा? (यानी, 30 * 100/256 एमसीसी?)

फ्रेम नहीं, लेकिन नमूने। 8khz नमूना दर पर 30 मिमी का प्रत्येक फ्रेम 30/1000 * 8000 = 240 नमूने है। फ्रेम्स ओवरलैप किए गए हैं और फ्रेम के बीच स्थान 10ms या 80 नमूने हैं। यह यहाँ कैसे चित्र पर दिखता है:

Signal split on frames

यहाँ क्यू 80 है और कश्मीर में 240 नमूने है।

यदि यह सही है, तो निम्नलिखित 3 चरणों में, क्या मैं इसे प्रत्येक फ्रेम पर लागू करता हूं?

हाँ

इसके अलावा, चरण 6 के बाद, मुझे लगता है कि प्रत्येक फ्रेम MFCC का अपना निर्धारित है, तो मैं सही हूँ।

हां।

संबंधित मुद्दे