অডিও শ্রেণীবিভাগ নির্দেশিকা, অডিও শ্রেণীবিভাগ নির্দেশিকা

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

এটা চেষ্টা করুন!

এবার শুরু করা যাক

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

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

টাস্কের বিবরণ

এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।

বৈশিষ্ট্য

  • ইনপুট অডিও প্রসেসিং - প্রসেসিং এর মধ্যে অডিও রিস্যাম্পলিং, বাফারিং, ফ্রেমিং এবং ফোরিয়ার ট্রান্সফর্ম অন্তর্ভুক্ত থাকে।
  • লেবেল মানচিত্রের লোকেল - প্রদর্শন নামের জন্য ব্যবহৃত ভাষা সেট করুন
  • স্কোর থ্রেশহোল্ড - পূর্বাভাস স্কোরের উপর ভিত্তি করে ফলাফল ফিল্টার করুন।
  • শীর্ষ-কে সনাক্তকরণ - নম্বর সনাক্তকরণের ফলাফলগুলি ফিল্টার করুন।
  • লেবেল অনুমোদিত তালিকা এবং অস্বীকৃতি - সনাক্ত করা বিভাগগুলি নির্দিষ্ট করুন৷
টাস্ক ইনপুট টাস্ক আউটপুট
ইনপুট নিম্নলিখিত ডেটা প্রকারগুলির মধ্যে একটি হতে পারে:
  • অডিও ক্লিপ
  • অডিও স্ট্রিম
অডিও ক্লাসিফায়ার শ্রেণীভুক্ত একটি তালিকা আউটপুট করে:
  • বিভাগ সূচক: মডেল আউটপুট মধ্যে বিভাগের সূচক
  • স্কোর: এই বিভাগের জন্য আত্মবিশ্বাসের স্কোর, সাধারণত [0,1] এ একটি সম্ভাবনা
  • বিভাগের নাম (ঐচ্ছিক): TFLite মডেল মেটাডেটাতে উল্লেখ করা বিভাগের নাম, যদি পাওয়া যায়
  • ক্যাটাগরি ডিসপ্লে নেম (ঐচ্ছিক): TFLite মডেল মেটাডেটাতে উল্লেখ করা ক্যাটাগরির ডিসপ্লে নাম, ডিসপ্লে নাম লোকেল অপশনের মাধ্যমে নির্দিষ্ট করা ভাষায়, যদি পাওয়া যায়

কনফিগারেশন অপশন

এই কাজের নিম্নলিখিত কনফিগারেশন বিকল্প আছে:

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
running_mode টাস্কের জন্য চলমান মোড সেট করে। অডিও ক্লাসিফায়ার দুটি মোড আছে:

AUDIO_CLIPS: স্বাধীন অডিও ক্লিপগুলিতে অডিও টাস্ক চালানোর জন্য মোড।

AUDIO_STREAM: একটি অডিও স্ট্রীমে অডিও টাস্ক চালানোর মোড, যেমন মাইক্রোফোন থেকে। এই মোডে, রেজাল্টলিসনারকে অবশ্যই অ্যাসিঙ্ক্রোনাসভাবে শ্রেণীবিভাগের ফলাফল পাওয়ার জন্য একজন শ্রোতা সেট আপ করতে কল করতে হবে।
{ AUDIO_CLIPS, AUDIO_STREAM } AUDIO_CLIPS
display_names_locale টাস্কের মডেলের মেটাডেটাতে প্রদত্ত প্রদর্শন নামের জন্য ব্যবহার করার জন্য লেবেলের ভাষা সেট করে, যদি উপলব্ধ থাকে। ইংরেজির জন্য ডিফল্ট হল en । আপনি TensorFlow Lite Metadata Writer API ব্যবহার করে একটি কাস্টম মডেলের মেটাডেটাতে স্থানীয় লেবেল যোগ করতে পারেন স্থানীয় কোড en
max_results ফিরতে সর্বোচ্চ স্কোর করা শ্রেণীবিভাগ ফলাফলের ঐচ্ছিক সর্বোচ্চ সংখ্যা সেট করে। <0 হলে, সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হবে। যেকোনো ইতিবাচক সংখ্যা -1
score_threshold ভবিষ্যদ্বাণী স্কোর থ্রেশহোল্ড সেট করে যা মডেল মেটাডেটাতে প্রদত্ত একটিকে ওভাররাইড করে (যদি থাকে)। এই মানের নিচের ফলাফল প্রত্যাখ্যান করা হয়। [০.০, ১.০] সেট না
category_allowlist অনুমোদিত বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যাদের বিভাগের নাম এই সেটে নেই সেগুলি ফিল্টার আউট করা হবে৷ সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_denylist সাথে পারস্পরিক একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট না
category_denylist অনুমোদিত নয় এমন বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যার বিভাগের নাম এই সেটে আছে তা ফিল্টার আউট করা হবে। সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_allowlist সাথে পারস্পরিকভাবে একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট না
result_callback অডিও ক্লাসিফায়ার যখন অডিও স্ট্রিম মোডে থাকে তখন অসিঙ্ক্রোনাসভাবে শ্রেণিবিন্যাসের ফলাফল পেতে ফলাফল শ্রোতাকে সেট করে। চলমান মোডটি AUDIO_STREAM এ সেট করা থাকলেই কেবল ব্যবহার করা যেতে পারে৷ N/A সেট না

মডেল

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

Yamnet মডেল হল একটি অডিও ইভেন্ট ক্লাসিফায়ার যা AudioSet ডেটাসেটে অডিওসেট ডেটাতে সংজ্ঞায়িত অডিও ইভেন্টগুলির পূর্বাভাস দিতে প্রশিক্ষিত। এই মডেল দ্বারা স্বীকৃত অডিও ইভেন্টের তথ্যের জন্য, মডেল লেবেল তালিকা দেখুন।

ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ সংস্করণ
ইয়ামনেট 1 x 15600 কোনটিই নয় (float32) সর্বশেষ

টাস্ক বেঞ্চমার্ক

উপরের পূর্ব-প্রশিক্ষিত মডেলগুলির উপর ভিত্তি করে পুরো পাইপলাইনের জন্য টাস্ক বেঞ্চমার্কগুলি এখানে রয়েছে৷ CPU/GPU ব্যবহার করে Pixel 6-এর গড় বিলম্বিততার ফলাফল হল লেটেন্সি।

ণশড CPU লেটেন্সি GPU লেটেন্সি
ইয়ামনেট 12.29 মি -
,

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

এটা চেষ্টা করুন!

এবার শুরু করা যাক

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

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

টাস্কের বিবরণ

এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।

বৈশিষ্ট্য

  • ইনপুট অডিও প্রক্রিয়াকরণ - প্রক্রিয়াকরণের মধ্যে অডিও রিস্যাম্পলিং, বাফারিং, ফ্রেমিং এবং ফোরিয়ার ট্রান্সফর্ম অন্তর্ভুক্ত রয়েছে।
  • লেবেল মানচিত্রের লোকেল - প্রদর্শন নামের জন্য ব্যবহৃত ভাষা সেট করুন
  • স্কোর থ্রেশহোল্ড - পূর্বাভাস স্কোরের উপর ভিত্তি করে ফলাফল ফিল্টার করুন।
  • শীর্ষ-কে সনাক্তকরণ - নম্বর সনাক্তকরণের ফলাফলগুলি ফিল্টার করুন।
  • লেবেল অনুমোদিত তালিকা এবং অস্বীকৃতি - সনাক্ত করা বিভাগগুলি নির্দিষ্ট করুন৷
টাস্ক ইনপুট টাস্ক আউটপুট
ইনপুট নিম্নলিখিত ডেটা প্রকারগুলির মধ্যে একটি হতে পারে:
  • অডিও ক্লিপ
  • অডিও স্ট্রিম
অডিও ক্লাসিফায়ার শ্রেণীভুক্ত একটি তালিকা আউটপুট করে:
  • বিভাগ সূচক: মডেল আউটপুট মধ্যে বিভাগের সূচক
  • স্কোর: এই বিভাগের জন্য আত্মবিশ্বাসের স্কোর, সাধারণত [0,1] এ একটি সম্ভাবনা
  • বিভাগের নাম (ঐচ্ছিক): TFLite মডেল মেটাডেটাতে উল্লেখ করা বিভাগের নাম, যদি পাওয়া যায়
  • ক্যাটাগরি ডিসপ্লে নেম (ঐচ্ছিক): TFLite মডেল মেটাডেটাতে উল্লেখ করা ক্যাটাগরির ডিসপ্লে নাম, ডিসপ্লে নাম লোকেল অপশনের মাধ্যমে নির্দিষ্ট করা ভাষায়, যদি পাওয়া যায়

কনফিগারেশন অপশন

এই কাজের নিম্নলিখিত কনফিগারেশন বিকল্প আছে:

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
running_mode টাস্কের জন্য চলমান মোড সেট করে। অডিও ক্লাসিফায়ার দুটি মোড আছে:

AUDIO_CLIPS: স্বাধীন অডিও ক্লিপগুলিতে অডিও টাস্ক চালানোর জন্য মোড।

AUDIO_STREAM: একটি অডিও স্ট্রীমে অডিও টাস্ক চালানোর মোড, যেমন মাইক্রোফোন থেকে। এই মোডে, রেজাল্টলিসনারকে অবশ্যই অ্যাসিঙ্ক্রোনাসভাবে শ্রেণীবিভাগের ফলাফল পাওয়ার জন্য একজন শ্রোতা সেট আপ করতে কল করতে হবে।
{ AUDIO_CLIPS, AUDIO_STREAM } AUDIO_CLIPS
display_names_locale টাস্কের মডেলের মেটাডেটাতে প্রদত্ত প্রদর্শন নামের জন্য ব্যবহার করার জন্য লেবেলের ভাষা সেট করে, যদি উপলব্ধ থাকে। ইংরেজির জন্য ডিফল্ট হল en । আপনি TensorFlow Lite Metadata Writer API ব্যবহার করে একটি কাস্টম মডেলের মেটাডেটাতে স্থানীয় লেবেল যোগ করতে পারেন স্থানীয় কোড en
max_results ফিরতে সর্বোচ্চ স্কোর করা শ্রেণীবিভাগ ফলাফলের ঐচ্ছিক সর্বোচ্চ সংখ্যা সেট করে। <0 হলে, সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হবে। যেকোনো ইতিবাচক সংখ্যা -1
score_threshold ভবিষ্যদ্বাণী স্কোর থ্রেশহোল্ড সেট করে যা মডেল মেটাডেটাতে প্রদত্ত একটিকে ওভাররাইড করে (যদি থাকে)। এই মানের নিচের ফলাফল প্রত্যাখ্যান করা হয়। [০.০, ১.০] সেট না
category_allowlist অনুমোদিত বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যাদের বিভাগের নাম এই সেটে নেই সেগুলি ফিল্টার আউট করা হবে৷ সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_denylist সাথে পারস্পরিক একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট না
category_denylist অনুমোদিত নয় এমন বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যার বিভাগের নাম এই সেটে আছে তা ফিল্টার আউট করা হবে। সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_allowlist সাথে পারস্পরিকভাবে একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট না
result_callback অডিও ক্লাসিফায়ার যখন অডিও স্ট্রিম মোডে থাকে তখন অসিঙ্ক্রোনাসভাবে শ্রেণিবিন্যাসের ফলাফল পেতে ফলাফল শ্রোতাকে সেট করে। চলমান মোডটি AUDIO_STREAM এ সেট করা থাকলেই কেবল ব্যবহার করা যেতে পারে৷ N/A সেট না

মডেল

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

Yamnet মডেল হল একটি অডিও ইভেন্ট ক্লাসিফায়ার যা AudioSet ডেটাসেটে অডিওসেট ডেটাতে সংজ্ঞায়িত অডিও ইভেন্টগুলির পূর্বাভাস দিতে প্রশিক্ষিত। এই মডেল দ্বারা স্বীকৃত অডিও ইভেন্টের তথ্যের জন্য, মডেল লেবেল তালিকা দেখুন।

ণশড ইনপুট আকৃতি কোয়ান্টাইজেশন টাইপ সংস্করণ
ইয়ামনেট 1 x 15600 কোনটিই নয় (float32) সর্বশেষ

টাস্ক বেঞ্চমার্ক

উপরের পূর্ব-প্রশিক্ষিত মডেলগুলির উপর ভিত্তি করে পুরো পাইপলাইনের জন্য টাস্ক বেঞ্চমার্কগুলি এখানে রয়েছে৷ CPU/GPU ব্যবহার করে Pixel 6-এর গড় বিলম্বিততার ফলাফল হল লেটেন্সি।

ণশড CPU লেটেন্সি GPU লেটেন্সি
ইয়ামনেট 12.29 মি -