এমএফসিসি গণনা / বুঝতে সহায়তা করুন: মেল-ফ্রিকোয়েন্সি সিপস্ট্রাম কোফিয়েনটিস


17

আমি অনলাইনে বিট এবং টুকরো পড়ছি কিন্তু আমি সবগুলি একসাথে টুকরা করতে পারি না। সিগন্যাল / ডিএসপি স্টাফ সম্পর্কে আমার কিছু পটভূমি জ্ঞান রয়েছে যা এর জন্য পর্যাপ্ত পূর্বশর্ত হওয়া উচিত। আমি শেষ পর্যন্ত জাভাতে এই অ্যালগরিদম কোডিং করতে আগ্রহী কিন্তু এখনও আমি এটি পুরোপুরি বুঝতে পারি না যে কেন আমি এখানে আছি (এটি গণিত হিসাবে গণনা করা হয়, তাই না?)।

আমি জানি যে এটি আমার জ্ঞানের ফাঁকগুলির সাথে কাজ করে think

  1. আপনার অডিও স্পিচ নমুনা দিয়ে শুরু করুন, একটি .wav ফাইলটি বলুন, যা আপনি কোনও অ্যারেতে পড়তে পারেন। এই অ্যারের কল , যেখানে থেকে রেঞ্জ (তাই নমুনার)। মানগুলি অনুমান করা অডিও তীব্রতার সাথে মিলিত হয় - প্রশস্ততা।x[n]n0,1,,N1N

  2. অডিও সংকেতটি 10 ​​মিমি বা "যেখানে স্পিচ সিগন্যালটি" স্থিতিশীল "বলে মনে করেন তার আলাদা" ফ্রেমে "বিভক্ত করুন। এটি কোয়ান্টাইজেশনের একটি রূপ। সুতরাং যদি আপনার নমুনার হার 44.1KHz হয়, 10 মিমি 441 নমুনার সমান বা মান ।x[n]

  3. একটি ফুরিয়ার ট্রান্সফর্ম (গণনার জন্য এফএফটি) করুন। এখন এটি সম্পূর্ণ সিগন্যালে বা এর প্রতিটি পৃথক ফ্রেমে করা হয়েছে ? আমি মনে করি একটি পার্থক্য আছে কারণ সাধারণভাবে ফুরিয়ার রূপান্তর একটি সংকেতের সমস্ত উপাদানকে দেখে, তাইx[n] সাথে যোগ এফ ( এক্স 2 [ এন ] ) সাথে যোগ ... ফাঃ ( x N [ n ] ) যেখানে x আমি [F(x[n])F(x1[n])F(x2[n])F(xN[n]) ছোট ফ্রেম হয়। যাইহোক, বলুন আমরা কিছু এফএফটি করি এবংএর বাকি অংশে এক্স [ কে ] দিয়ে শেষ করি।xi[n]X[k]

  4. মেল স্কেলে ম্যাপিং, এবং লগিং। আমি জানি কিভাবে নিয়মিত ফ্রিকোয়েন্সি নম্বরগুলি মেল স্কেলে রূপান্তর করতে হয়। এক্স [ কে ] এর প্রতিটি জন্য ("এক্স-অক্ষস" যদি আপনি আমাকে অনুমতি দিবেন), আপনি সূত্রটি এখানে করতে পারেন: http://en.wikedia.org/wiki/Mel_scale । তবে "y- মান" বা এক্স [ কে ] এর প্রশস্ততা সম্পর্কে কীভাবে ? এগুলি কি কেবল একই মান বজায় থাকলেও নতুন মেল (এক্স-) অক্ষের উপযুক্ত দাগগুলিতে স্থানান্তরিত হয়েছে? আমি কিছু কাগজে দেখেছি এক্স [ কে ] এর প্রকৃত মানগুলি লগ করার বিষয়ে কিছু ছিল কারণ যদি তবে এক্স [ কে ] = [ কেkএক্স[]এক্স[]এক্স[] যেখানে এই সংকেতগুলির মধ্যে একটির আপনি যে শব্দটি চান না তা হ'ল মনে করা হচ্ছে, এই সমীকরণের লগ অপারেশনটি বহুগুণিত শব্দকে অ্যাডিটিভ আওয়াজে পরিণত করে, যা আশা করা যায় যে ফিল্টার করা যাবে (?)।এক্স[]=একজন[]*বি[]

  5. এখন চূড়ান্ত পদক্ষেপটি হ'ল উপরে থেকে আপনার পরিবর্তিত এর একটি ডিসিটি নেওয়া (তবে এটি পরিবর্তিত হয়ে শেষ হয়েছে)। তারপরে আপনি এই চূড়ান্ত ফলাফলটির প্রশস্ততা নিন এবং সেগুলি আপনার এমএফসিসি। আমি উচ্চ ফ্রিকোয়েন্সি মানগুলি ফেলে দেওয়ার বিষয়ে কিছু পড়েছি readএক্স[]

সুতরাং আমি এই লোকেদের কীভাবে ধাপে ধাপে গণনা করব তা সত্যই বোঝার চেষ্টা করছি এবং পরিষ্কারভাবে কিছু জিনিস আমাকে উপরের দিক থেকে সরিয়ে দিচ্ছে।

এছাড়াও, আমি "ফিল্টার ব্যাংক" ব্যবহারের কথা শুনেছি (মূলত ব্যান্ড পাস ফিল্টারগুলির একটি অ্যারে) এবং জানি না যে এটি আসল সংকেত থেকে ফ্রেমগুলি তৈরি করা বোঝায়, বা সম্ভবত আপনি এফএফটির পরে ফ্রেমগুলি তৈরি করেন?

শেষ অবধি, আমি এমএফসিসি সম্পর্কে 13 সহগ সহ কিছু দেখেছি?


1
এটি একটি দুর্দান্ত প্রশ্ন, তবে উত্তর দেওয়ার জন্য এখানে অনেক কিছুই রয়েছে। আমি এটিকে ২-৩ টি বিভিন্ন প্রশ্নে বিভক্ত করার সুপারিশ করব (আপনি যদি ধারাবাহিকতা বজায় রাখতে চান তবে অন্যের থেকে রেফারেন্স দিতে পারেন) যাতে আরও সহজে উত্তর দেওয়া যায়।
jonsca

যেহেতু আপনি আগে গণিত.এসইতে একই প্রশ্ন জিজ্ঞাসা করেছেন (এবং পরামর্শ দেওয়া হয়েছে যে dsp.SE এটির জন্য একটি ভাল বাড়ি), সম্ভবত আপনার প্রশ্নটি গণিত.এসইতে মুছে ফেলা উচিত।
দিলিপ সরোতে

আমি math.SE সংস্করণটি মুছে ফেলা
YoungMoney

খুব সুন্দর এবং ইনফোটমেটিভ টিউটোরিয়াল ধন্যবাদssssssssssssssss

1
আরে আপনি আপনার প্রশ্নে বলেছেন যে "মেল স্কেলে ম্যাপিং, এবং লগিং I আপনি এই অংশ গণনা করতে আমাকে সাহায্য করতে পারেন? আমার কাছে আমার এক্সএফএফটি আউটপুট রয়েছে [কে] = 1 * 184 তবে আমার ত্রিভুজাকার ব্যান্ড পাস ফিল্টারটি 20 * 3 সেট রয়েছে। তারপরে আমি কীভাবে তাদের উভয়কে গুণতে পারি। দয়া করে ASAp
আয়ুশ

উত্তর:


25

ধাপে ধাপে...

1. এবং 2 । এটা সঠিক। নোট করুন যে ফ্রেমগুলি সাধারণত ওভারল্যাপিং হয়, উদাহরণস্বরূপ, ফ্রেম 0 হল নমুনা 0 থেকে 440; ফ্রেম 1 হ'ল নমুনা 220 থেকে 660; ফ্রেম 2 হ'ল 440 থেকে 880 পর্যন্ত নমুনা ... আরও মনে রাখবেন যে ফ্রেমের নমুনাগুলিতে একটি উইন্ডো ফাংশন প্রয়োগ করা হয়েছে।

। ফুরিয়ার ট্রান্সফর্মটি প্রতিটি ফ্রেমের জন্য করা হয়। এর পিছনে অনুপ্রেরণা সহজ: একটি স্পিচ সিগন্যাল সময়ের সাথে সাথে পরিবর্তিত হয়, তবে সংক্ষিপ্ত অংশগুলির মধ্যে স্থির থাকে। আপনি প্রতিটি স্বল্প বিভাগকে স্বতন্ত্রভাবে বিশ্লেষণ করতে চান - কারণ এই বিভাগগুলিতে কয়েকটি সহগতি দ্বারা দক্ষতার সাথে বর্ণনা করার জন্য সিগন্যালটি যথেষ্ট সহজ। কেউ "হ্যালো" বলার কথা ভাবুন। আপনি একবারে সমস্ত শব্দ বিশ্লেষণ করে সমস্ত ফোনমাকে একটি একক বর্ণালীতে বিভক্ত দেখতে চান না (এফএফটি অস্থায়ী তথ্যের পতন ঘটে)। পর্যায়ক্রমে মঞ্চটি শব্দের স্বীকৃতি দিতে আপনি "hhhheeeeeeeeeeelloooooooooo" দেখতে চান, সুতরাং এটি ছোট অংশে বিভক্ত হতে হবে।

। "মেল স্কেলে ম্যাপিং" বিভ্রান্তিমূলক এবং সম্ভবত সে কারণেই আপনি বিভ্রান্ত হচ্ছেন। এই পদক্ষেপের জন্য আরও ভাল বিবরণটি হ'ল: "মেল-স্কেলড ফ্রিকোয়েন্সি থেকে সুরযুক্ত ফিল্টারগুলির একটি ব্যাঙ্কের মাধ্যমে সংকেত শক্তির গণনা করুন"। এখানে এটি করা হয় কিভাবে। আমরা ফ্রিকোয়েন্সি বিবেচনা করি (সাধারণভাবে ব্যবহৃত মান হ'ল এন = 40 ) মেল স্কেল অনুসারে সমানভাবে ব্যবধানে 20 হার্জ (শ্রবণ রেঞ্জের নীচে) এবং নাইকুইস্ট ফ্রিকোয়েন্সি between ব্যবহারিক উদাহরণ: সিগন্যালটি 8kHz এ নমুনাযুক্ত এবং আমরা 40 টি বিন চাই want 4kHz (Nyquist) যেহেতু 2250 মাইল, ফিল্টারব্যাঙ্ক কেন্দ্রের ফ্রিকোয়েন্সিগুলি হবে: 0 মাইল, 2250/39 মেল, 2 x 2250/39 মেল .. 2250 মাইল।এনএন=40

একবার এই ফ্রিকোয়েন্সি সংজ্ঞায়িত হয়ে গেলে, আমরা এই প্রতিটি ফ্রিকোয়েন্সিটির চারপাশে এফএফটি প্রস্থের (বা শক্তি) একটি ভারিত যোগফল গণনা করি।

নিম্নলিখিত ছবিটি দেখুন, 12 টি বিন সহ একটি ফিল্টার ব্যাঙ্ক উপস্থাপন করুন:

12 টি চ্যানেলের সাথে মেল ফ্রিকোয়েন্সি ফিল্টারব্যাঙ্ক

অষ্টম বিনের কেন্দ্রের ফ্রিকোয়েন্সি প্রায় 2kHz রয়েছে। অষ্টম বিনের শক্তিটি প্রায় 1600 থেকে 2800 হার্জেডের ওজনযুক্ত এফএফটি শক্তির সংমিশ্রনের মাধ্যমে প্রাপ্ত হয় - প্রায় 2 কেজি হার্জে ওজন পিক করে।

বাস্তবায়ন দ্রষ্টব্য: ওজনযুক্ত অঙ্কের এই গুচ্ছটি একটি একক ক্রিয়ায় করা যেতে পারে - এফএফটি এনার্জি ভেক্টর দ্বারা "ফিল্টারব্যাঙ্ক ম্যাট্রিক্স" এর একটি ম্যাট্রিক্স গুণ।

সুতরাং এই পর্যায়ে আমরা এফএফটি বর্ণালীকে "সংক্ষিপ্তকরণ" 40 (একটি চিত্রের মধ্যে 12) শক্তির মানগুলিতে সেট করেছি, প্রতিটি প্রতিটি বিভিন্ন ফ্রিকোয়েন্সিগুলির সাথে সম্পর্কিত range আমরা এই মানগুলির লগ নিই।

কেকে=13


মেল ফিল্টারব্যাঙ্ক সম্পর্কে কেবল একটি দ্রুত প্রশ্ন - উচ্চতা / প্রশস্ততা 1.8 - 2 থেকে বিস্তৃত এটি গুরুত্বপূর্ণ বা এগুলি ইউনিট (1) উচ্চতা হতে পারে?
ইয়ংমনি

1
এটি গুরুত্বপূর্ণ নয়। সর্বাধিক ব্যবহারের প্রভাব। 1.0 বনাম 2.0 এর প্রশস্ততা কেবল 4 ধাপে ধ্রুবক দ্বারা লগ-এনার্জিটি স্থানান্তরিত করবে এবং এভাবে কেবল পদক্ষেপ 5 এ প্রথম সহগকে প্রভাবিত করবে (যা প্রায়শই যাইহোক বাতিল করা হয়)। নোট করুন যে কিছু বাস্তবায়ন শক্তি নরমালাইজেশন ব্যবহার করছে যাতে ফিল্টারটি যত বিস্তৃত হয় ততই এর শীর্ষ প্রশস্ততা ( i.imgur.com/IOaLa.gif ) হয়। এটি স্বীকৃতি অ্যাপ্লিকেশনগুলিতে সামান্য পারফরম্যান্সের পরিবর্তনের কারণ হতে পারে। আপনি যদি ব্যবহারের এমএফসিসি বাস্তবায়নের দিকে লক্ষ্য করেন তবে প্রতিটি পদক্ষেপে আসলে অনেকগুলি ছোট ছোট তফাত রয়েছে
বিট.ইলি

এটি এখানে একটি পুরানো বিষয় তবে গ্রাফ সম্পর্কে আমার কিছু জিজ্ঞাসা করতে হবে। যদি নাইকুইস্ট 4kHz হয় তবে কেন সেই ব্যান্ড-সীমাবদ্ধ ফিল্টারগুলি 4kHz পয়েন্ট অতিক্রম করবে। এটি কি এমএফসিসির জন্য ঠিক আছে? সাধারণত, আপনি কি ফিল্টারটি নাইকুইস্টকে পাস করতে চান না? আমি কি সঠিক?
Celdor

2
আপনাকে একটি রেফারেন্স আছে কেন এন = 40 Mel filterbank ফ্রিকোয়েন্সি (অথবা 26, আরেকটি সাধারণ মান আমি দেখেছি) ব্যবহার করা হয়?
জেমস মালিকগণ

1
কোথায় 39 melআসা ধাপ 4 থেকে?
গার্ট কমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.