আমি কি পিয়ানোতে সংগীত নোট সনাক্ত করতে এফএফটি ব্যবহার করতে পারি?


13

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

  1. একটি নোট খেলে আমার একটি নমুনা রেকর্ড করুন
  2. দ্রুত ফুচার ট্রান্সফর্ম ব্যবহার করে সিগন্যালটিকে ফ্রিকোয়েন্সি ডোমেনে রূপান্তর করুন
  3. সর্বাধিক উপস্থিত ফ্রিকোয়েন্সি সন্ধান করুন (মূলত ফ্রিকোয়েন্সি ডোমেন ডেটার মূলত আরগম্যাক্স)
  4. ধরে নিন যে প্লে করা নোটটি থেকে ফ্রিকোয়েন্সি এসেছে এবং নোটটিকে শ্রেণিবদ্ধ করার জন্য এটি ব্যবহার করুন

আমি এখনও এর কোনটি চেষ্টা করে দেখিনি কারণ আমি ভুল পথে শুরু করতে চাই না। সুতরাং, তাত্ত্বিকভাবে, এই কাজ করবে?


আপনি শিরোনামে আরও সুনির্দিষ্ট হতে পারলে ভাল লাগবে। আমি পিয়ানো পিচ স্বীকৃতি সম্পর্কে কিছুটা অন্তর্ভুক্ত করার চেষ্টা করেছি, তবে আমার (অ-নেটিভ) ইংরেজি আজ স্পষ্টতই আমাকে ব্যর্থ করছে।
পাইপ

1
@ পাইপ ঠিক আছে আমি এটিকে পরিবর্তন করেছি
michaelsnowden

1
আপনার একটি নোট খেলার "নমুনা" ইতিমধ্যে প্রশস্ততা এবং সময়ের একটি তরঙ্গরূপ হওয়া উচিত। মূলত, পয়েন্ট 2টি নিরর্থক। অপেক্ষাকৃত সহজ প্রয়োগের জন্য, আপনার উপরের পদক্ষেপগুলি ঠিকঠাক হওয়া উচিত।
ব্যবহারকারী 2943160

@ user2943160 আমি এটি স্পষ্ট হতে যুক্ত করেছি। শব্দটি অনেকগুলি ফর্ম্যাটে সংরক্ষণ করা যেতে পারে এবং এটি সময়কালে একটি দুর্দান্ত প্রশস্ততায় পড়তে সাধারণত কিছুটা ম্যাংলিং লাগে।
মাইকেলসনোডন

@ মিমিয়েলসনডেন: আপনি "প্রশস্ততা" শব্দটি ব্যবহার করছেন: একটি সাইনোসয়েডাল ফাংশনটির প্রশস্ততা হ'ল । এটি সংকেতের সর্বাধিক (ভোল্টেজ, স্থানচ্যুতি, ...) এবং এটি একটি ধ্রুবক (বা ধীরে ধীরে ফ্রিকোয়েন্সিটির সাথে সম্মতিতে পরিবর্তন করা)। আপনি যা বলতে চাইছেন তা হ'ল সংকেত । অন্যথায় আমি "সময়ের সাথে প্রশস্ততা" দিয়ে ভাবতে চাইছি আপনি সংকেতের খামটি বোঝাই তবে যতদূর আমি বুঝতে পেরেছি আপনি তা করেন না। y ( টি )Y(টি)=একজনপাপ(ωটি)একজনY(টি)
দই

উত্তর:


23

ধারণাটি ভাল, তবে আপনি দেখতে পাবেন এটি বাস্তবে এতটা সহজ নয়।

পিচ কেবলমাত্র প্রধান স্বর নয়, তাই সমস্যা নম্বর 1 number

এফএফটি ফ্রিকোয়েন্সি বিনগুলি সংগীত স্কেলের একসাথে সমস্ত (বা একাধিক) টোন আঘাত করতে পারে না।

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

আপনার যদি মাত্র কয়েকটি নির্দিষ্ট টোন সনাক্ত করতে হয় তবে আপনি গের্তজেল অ্যালগরিদমকে আরও সহজ এবং দ্রুত করতে পারেন।

পিচ সনাক্তকরণ জটিল, এবং সেই ক্ষেত্রটিতে এখনও গবেষণা চলছে। টোন সনাক্তকরণ বেশ সোজা এগিয়ে, তবে আপনি যা চান তা পেতে পারে না।


যদি আমরা এই অনুমান দিয়ে শুরু করি যে নমুনাগুলি একটি নির্দিষ্ট উপকরণের হয় তবে সমস্যাটি সামাল দেওয়া কিছুটা সহজ হতে পারে, তাই না?
মকিথ

এটি সত্যিই দুর্দান্ত দেখাচ্ছে। একটি ফলোআপ প্রশ্ন হ'ল: গোর্তজেল অ্যালগোরিদম একই সাথে দু'টি নোট বাজানো হচ্ছে এমন দুটি নোট সনাক্ত করতে ব্যবহার করা যেতে পারে?
মাইকেলসনোডেন

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

2
@ স্মিথ: বাছাই করুন। আপনি নোটগুলি পরীক্ষা করে দেখতে পারেন যে কোনও নির্দিষ্ট উপকরণের (এবং সম্ভবত কেবলমাত্র আগ্রহের নোটগুলি) জন্য প্রধান সুরটি সনাক্ত করা যথেষ্ট কিনা তা সনাক্ত করতে পারি, যদিও এখন পর্যন্ত আমি জানি, সমস্ত যন্ত্র থেকে সমস্ত নোট সনাক্ত করার জন্য কোনও সাধারণ সমাধান নেই।
জেআরই

3

আমি বলব সিগন্যালের একটি মাল্টিমোডাল পর্যবেক্ষণ উইন্ডো ব্যবহার করা আরও ভাল। আপনার অডিও সিগন্যালের তরঙ্গলেখের ক্ষয়ের লাইনের সাথে কিছু যা আপনাকে নোটের অভ্যন্তরে একাধিক ওভারটোন সনাক্ত করতে দেয়। হ্যাঁ, আসলে ওয়েভলেটস, আমি বলব উপায় is

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

অবশ্যই তরঙ্গলেখের পচনের পরে ডাব্লুউকে নোট এবং পেরিফেরিয়াল টোন সনাক্তকারী অ্যালগরিদমগুলি প্রয়োগ করতে হবে।

আমি মনে করি পিচ সনাক্তকরণের ক্ষেত্রে লোকেরা যে সমস্যাগুলি নিয়ে কথা বলছে তা সত্যই ওয়েভলেটগুলি সমাধান করে।

আপনি যদি শিখতে চান যে ওয়েভলেটগুলি কীভাবে কাজ করে এটি এইচপি কর্তৃক প্রকাশিত একটি দুর্দান্ত শ্বেতপত্র :) :) http://www.hpl.hp.com/hpjorter/94dec/dec94a6.pdf এবং ওয়েভলেটগুলির ভূমিকা

বাস্তবায়নের জন্য, ম্যাটল্যাবের একটি ওয়েভলেট সরঞ্জাম রয়েছে এবং আমি নিশ্চিত যে আর ইত্যাদি প্ল্যাটফর্মের জন্য অন্যান্য প্যাকেজগুলির আধিক্য রয়েছে sure


1

আমি অনুমান করি আপনি পিয়ানো সীমার মাঝখানে খেলানো নোটগুলি সম্পর্কে ভাবছেন (200 এবং 500 Hz এর মধ্যে বলুন) তবে এমনকি এই পরিসরের মধ্যেও একটি একক নোটে অনেকগুলি ওভারটোন থাকবে, যা মৌলিক ফ্রিকোয়েন্সিটির সঠিক গুণক নয় , এবং প্রতিটি নোটের শুরুতে এবং সম্ভবত শেষেও উল্লেখযোগ্য পরিমাণে ব্রডব্যান্ড শব্দ।

নোট সীমার নীচের প্রান্তে জোরে নোটগুলির জন্য, আপনি দেখতে পাবেন যে খুব কম শব্দ শক্তি (1% এরও কম) আসলে নোটের মৌলিক পিচে রয়েছে।

অন্য সমস্যাটি হ'ল কোনও এফএফটি-র নির্বোধ ব্যাখ্যাটি আপনি যে সিগন্যালটি সনাক্ত করার চেষ্টা করছেন তা ধ্রুব প্রশস্ততা ধারণ করে। এটি পিয়ানো নোটগুলিতে প্রযোজ্য নয় যেখানে প্রশস্ততা আসলে বেশ কয়েকটি সুপারপোজযুক্ত ক্ষতিকারক ক্ষয়গুলি অনুসরণ করে - ক্ষয়ের প্রাথমিক অংশটির তুলনামূলকভাবে স্বল্প সময়ের ধ্রুবক থাকে, তবে পরবর্তী অংশটিতে দীর্ঘ সময় ধ্রুবক থাকে।

আপনি শর্ট-টাইমস্কেল ফুরিয়ার ট্রান্সফর্ম পদ্ধতিগুলি আরও ভালভাবে তদন্ত করতে পারেন, উদাহরণস্বরূপ গ্যাবার ট্রান্সফর্ম, বা তরঙ্গকরণ-ভিত্তিক পদ্ধতিগুলি।

নোট করুন যেহেতু প্রতিটি নোটের জন্য ক্রমান্বয়ে নোটগুলির মৌলিক পিচটি প্রায় 6% বৃদ্ধি পায়, তাই অডিওতে সুরেলাগুলির ফ্রিকোয়েন্সিগুলি সনাক্ত করার জন্য আপনার অগত্যা খুব উচ্চ নির্ভুলতার প্রয়োজন হবে না। মিউজিকাল নোটগুলি সঠিকভাবে চিহ্নিত করা ঠিক যেমন নোটগুলি সংগীতের স্কেল অনুসারে সঠিকভাবে সুরক্ষিত রয়েছে তা নির্ধারণ করার মতো একই সমস্যা নয়, যেখানে ফ্রিকোয়েন্সিগুলি 0.1% এর চেয়ে সঠিকতার জন্য আরও পরিমাপ করা প্রয়োজন।


0

হ্যাঁ, এফএফটি হ'ল এটিই! আপনি যে ডাডা খাওয়াচ্ছেন তার ফ্রিকোয়েন্সি বর্ণালী আপনাকে দিতে। হার্ড অংশটি বাস্তবায়নের বিশদ, যেমনটি আপনি উল্লেখ করেছেন mentioned

আপনি যা করতে চান তার উপর নির্ভর করে ঠিক উত্তরটি পরিবর্তন করে।

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

আপনি যদি নিজেকে এফএফটি এবং এটি কীভাবে সংগীতের সাথে সম্পর্কিত তা শেখাতে চান তবে মতলব এর মতো এমন কিছু পাওয়া ভাল যেখানে আপনি যে কোনও তথ্যের এফএফটি গুনতে পারবেন। এটি রেকর্ড করার ক্ষমতা এবং ওয়াব ফাইলগুলি এবং এগুলি পড়ার পাশাপাশি প্লেব্যাক করার ক্ষমতা রাখে। এগুলি পুনরায় ব্যবহার করা সহজ। আপনি যদি বাক্য গঠনটি জানেন তবে আপনি অডিওটি গ্রাফ করতে পারেন এবং সব ধরণের বিশ্লেষণের পরিবর্তে দ্রুত করতে পারেন।

আপনি যদি এমন কোনও কাজ করার জন্য কোনও ডিভাইস তৈরি করতে চান তবে এটি বেশ জটিল। গণনা করতে আপনার একটি ইউসি / ডিএসপি / এফপিগা / ইত্যাদি প্রয়োজন হবে। সর্বাধিক জনপ্রিয় ডিভাইসগুলি ইতিমধ্যে এফএফটি কোড নিয়ে আসে যাতে আপনার নিজের এটি কোড করতে হবে না (জটিল)।

আপনাকে সার্কিটারি এবং এগুলি সব তৈরি করতে হবে। এটি কঠিন নয় তবে আপনার অভিজ্ঞতা / জ্ঞানের উপর নির্ভর করে এটি বেশ কিছুটা সময় নিতে পারে এবং খাড়া শেখার বক্ররেখা রয়েছে। এটি চূড়ান্ত পণ্যের মানের উপরও নির্ভর করে।

গাণিতিকভাবে, একটি আদর্শ সংগীতের নোট "মৌলিক" এর একটি জ্যামিতিক সিরিজ নিয়ে গঠিত।

ধরুন এফ 0 হ'ল মৌলিক ফ্রিকোয়েন্সি, তবে বেশিরভাগ সংগীত নোটগুলি এফ (টি) + এফ 0 * যোগ (a_k ই ^ (2 ^ কে এফ 0 * পাই আই টি)) = F0 + a_1 * এফ 1 + এ_2 * এফ 2 + দ্বারা সংযুক্ত করা হবে। ...

A_k এর উচ্চতর ফ্রিকোয়েন্সিগুলির কেবল শক্তি F_k এবং F_k কেবল F0 এর কয়েকটি সংখ্যক। যদি সমস্ত কে-এর জন্য a_k = 0 হয় তবে আমাদের খাঁটি সাইনোসয়েড রয়েছে। এর পিচ সনাক্ত করা সহজ। কেবলমাত্র এফএফটির সর্বাধিক সন্ধান করুন এবং সেই ফ্রিকোয়েন্সিটি সুরের সুর = বাদ্যযন্ত্র নোট।

আপনি এফএফটি গ্রহণ করার সময়, আপনি সেই ডেটাটি শেষ করেন এবং কেবল গণিত করেন। এটি মূলত ক্যালকুলাস।

অপেক্ষাকৃত সহজ।

কিছু সমস্যা আপনাকে মোকাবেলা করতে হবে। মনে রাখবেন যে এগুলি সমস্ত "সমাধান" হয় না।

  1. লেটেন্সি - আপনি যদি কোনও ধরণের রিয়েল টাইম স্টাফ করতে চলেছেন তবে এটি সমস্যা হয়ে উঠতে পারে।

  2. একাধিক নোট - সমস্ত অতিরিক্ত সুরেলা কারণে নোটগুলির গ্রুপ নির্ধারণ করা কঠিন। যদি এ = 440hz এবং A '= 880hz খেলেন তবে বেশিরভাগ সুরেলা ওভারল্যাপ হয়ে যাবে। আপনি সহজেই A = 440hz পেতে পারেন তবে A '= 880hz পাওয়া আরও কঠিন is আপনি যখন chords, দ্রুত রান, ইত্যাদি সম্পর্কে ভাবেন, তখন অবশ্যই সমস্ত তথ্য (নোট) পাওয়া খুব কঠিন হতে পারে। যদিও সব কিছু সাধারণত গাণিতিকভাবে সম্ভব হয় তবে ডেটা নিজেই ত্রুটি এবং বিভেদ থাকে এবং কিছু ক্ষেত্রে সমীকরণগুলি সংজ্ঞায়িত করা হয়।

  3. শোরগোল - সংকেতের কোলাহল আপনাকে উত্সাহজনক ফলাফল দিতে পারে। যদি কোনও মিউজিকাল শব্দ হয় তবে এটি আপনার ফলাফলগুলিকে ঘায়েল করতে পারে। এর পরে আরও ভাল অ্যালগরিদম প্রয়োজন = সময় + অর্থ + জ্ঞান।

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