ऑडियो क्लासिफ़िकेशन गाइड

MediaPipe Audio Classifier टास्क की मदद से ऑडियो क्लिप को तय की गई कैटगरी के सेट में बांटा जा सकता है. जैसे, गिटार का संगीत, ट्रेन की सीटी या चिड़िया का गाना. कैटगरी, मॉडल की ट्रेनिंग के दौरान तय की जाती हैं. यह टास्क, मशीन लर्निंग (एमएल) मॉडल वाले ऑडियो डेटा पर काम करता है. इसे स्वतंत्र ऑडियो क्लिप या लगातार स्ट्रीम करने की सुविधा के तौर पर इस्तेमाल किया जाता है. साथ ही, यह घटने वाले प्रॉबबिलिटी स्कोर के हिसाब से रैंक की गई संभावित कैटगरी की सूची दिखाता है.

इसे आज़माएं!

शुरू करें

अपने टारगेट प्लैटफ़ॉर्म के लिए, इनमें से किसी एक को लागू करने की गाइड का पालन करके इस टास्क का इस्तेमाल शुरू करें. इन प्लैटफ़ॉर्म की गाइड में, इस टास्क को लागू करने की बुनियादी जानकारी दी जाती है. इसमें, सुझाए गए मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड के उदाहरण भी शामिल होते हैं:

इन प्लैटफ़ॉर्म की गाइड से इस काम को लागू करने के बुनियादी तरीके की जानकारी मिलती है. इसमें एक सुझाया गया मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड के उदाहरण भी शामिल हैं.

टास्क की जानकारी

इस सेक्शन में इस टास्क की क्षमताओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.

सुविधाएं

  • इनपुट ऑडियो प्रोसेसिंग - ऑडियो रीसैंपलिंग, बफ़रिंग, फ़्रेमिंग, और फ़ोरियर ट्रांसफ़ॉर्म को प्रोसेस करना शामिल है.
  • लेबल मैप की स्थान-भाषा - डिसप्ले नेम के लिए इस्तेमाल की गई भाषा सेट करें
  • स्कोर थ्रेशोल्ड - अनुमान के स्कोर के आधार पर नतीजों को फ़िल्टर करें.
  • टॉप-k पहचान - संख्या का पता लगाने के नतीजों को फ़िल्टर करें.
  • लेबल की अनुमति वाली सूची और ब्लॉकलिस्ट - उन कैटगरी की जानकारी दें जिनका पता लगाया गया है.
टास्क के इनपुट टास्क के आउटपुट
इनपुट इस तरह का डेटा हो सकता है:
  • ऑडियो क्लिप
  • ऑडियो स्ट्रीम
ऑडियो क्लासिफ़ायर, कैटगरी की एक सूची दिखाता है. इस सूची में ये शामिल हैं:
  • कैटगरी इंडेक्स: मॉडल आउटपुट में कैटगरी का इंडेक्स
  • स्कोर: इस कैटगरी के लिए कॉन्फ़िडेंस स्कोर, आम तौर पर [0,1] में संभावना होती है
  • कैटगरी का नाम (ज़रूरी नहीं): TFLite मॉडल के मेटाडेटा में दी गई कैटगरी का नाम, अगर उपलब्ध हो
  • कैटगरी का डिसप्ले नेम (ज़रूरी नहीं): TFLite मॉडल के मेटाडेटा में दी गई कैटगरी का डिसप्ले नेम. अगर यह विकल्प उपलब्ध है, तो डिसप्ले नेम के ज़रिए बताई गई भाषा में दिखाया जाएगा

कॉन्फ़िगरेशन के विकल्प

इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:

विकल्प का नाम ब्यौरा वैल्यू रेंज डिफ़ॉल्ट मान
running_mode टास्क के लिए, रनिंग मोड सेट करता है. ऑडियो क्लासिफ़ायर में दो मोड होते हैं:

AUDIO_CLIPS: इंडिपेंडेंट ऑडियो क्लिप पर ऑडियो टास्क चलाने के लिए मोड.

AUDIO_STREAM: यह मोड किसी ऑडियो स्ट्रीम पर ऑडियो टास्क चलाने का मोड है, जैसे कि माइक्रोफ़ोन से. इस मोड में, resultListener को कॉल करना चाहिए, ताकि वह क्लासिफ़िकेशन के नतीजों को एसिंक्रोनस तरीके से पाने वाले को सेट अप कर सके.
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale अगर यह उपलब्ध हो, तो टास्क के मॉडल के मेटाडेटा में दिए गए डिसप्ले नेम के लिए, लेबल की भाषा सेट करता है. अंग्रेज़ी के लिए डिफ़ॉल्ट रूप से en है. TensorFlow Lite Metadata Writer API का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में स्थानीय भाषा के हिसाब से लेबल जोड़े जा सकते हैं स्थान-भाषा का कोड en
max_results यह विकल्प, टॉप-स्कोर किए गए क्लासिफ़िकेशन के नतीजों की ज़्यादा से ज़्यादा संख्या को सेट करता है, ताकि नतीजे दिखाए जा सकें. अगर < 0 है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे. कोई भी पॉज़िटिव नंबर -1
score_threshold अनुमान के स्कोर का थ्रेशोल्ड सेट करता है, जो मॉडल मेटाडेटा (अगर कोई है) में दिए गए स्कोर को बदलता है. इस वैल्यू से कम के नतीजे अस्वीकार कर दिए गए हैं. [0.0, 1.0] सेट नहीं किया गया है
category_allowlist अनुमति वाली कैटगरी के नामों की वैकल्पिक सूची सेट करता है. अगर यह खाली नहीं है, तो कैटगरी के जिन नतीजों की कैटगरी का नाम इस सेट में नहीं होगा उन्हें फ़िल्टर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है. यह विकल्प category_denylist के साथ म्यूचुअली एक्सक्लूसिव है और दोनों नतीजों का इस्तेमाल करने में गड़बड़ी है. कोई भी स्ट्रिंग सेट नहीं किया गया है
category_denylist उन कैटगरी के नामों की वैकल्पिक सूची सेट करता है जिनकी अनुमति नहीं है. अगर यह फ़ील्ड खाली नहीं है, तो कैटगरी के जिन नतीजों की कैटगरी का नाम इस सेट में होगा उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है. यह विकल्प category_allowlist के साथ म्यूचुअली एक्सक्लूसिव है और इसका इस्तेमाल करने पर दोनों में गड़बड़ी होगी. कोई भी स्ट्रिंग सेट नहीं किया गया है
result_callback जब ऑडियो क्लासिफ़ायर, ऑडियो स्ट्रीम मोड में होता है, तब नतीजे लिसनर को क्लासिफ़िकेशन के नतीजों को एसिंक्रोनस तरीके से पाने के लिए सेट करता है. सिर्फ़ तब इस्तेमाल किया जा सकता है, जब रनिंग मोड AUDIO_STREAM पर सेट हो लागू नहीं सेट नहीं किया गया है

मॉडल

ऑडियो क्लासिफ़ायर के लिए, ऑडियो क्लासिफ़िकेशन मॉडल को डाउनलोड करना ज़रूरी होता है. साथ ही, इसे आपकी प्रोजेक्ट डायरेक्ट्री में सेव किया जाता है. इस टास्क के साथ डेवलप करना शुरू करने पर, अपने टारगेट प्लैटफ़ॉर्म के लिए सुझाए गए डिफ़ॉल्ट मॉडल से शुरुआत करें. आम तौर पर, अन्य उपलब्ध मॉडल में परफ़ॉर्मेंस, सटीक होने, रिज़ॉल्यूशन, और संसाधन की ज़रूरी शर्तों के बीच ट्रेड-ऑफ़ होता है. कुछ मामलों में, अतिरिक्त सुविधाएं शामिल होती हैं.

Yamnet मॉडल, ऑडियो इवेंट की कैटगरी तय करने वाला एक टूल है. इसे ऑडियोसेट डेटा में तय किए गए ऑडियो इवेंट का अनुमान लगाने के लिए, AudioSet डेटासेट पर ट्रेनिंग दी गई है. इस मॉडल से पहचाने गए ऑडियो इवेंट के बारे में जानकारी के लिए, मॉडल लेबल की सूची देखें.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
YamNet 1 x 15,600 कोई नहीं (फ़्लोट32) नए

टास्क के मानदंड

यहां पहले से ट्रेन किए गए मॉडल पर आधारित पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. इंतज़ार के समय का नतीजा यह पता चलता है कि Pixel 6 को सीपीयू / जीपीयू का इस्तेमाल करके औसतन इंतज़ार किया जा सकता है.

मॉडल का नाम सीपीयू (CPU) के इस्तेमाल में होने वाला समय जीपीयू इंतज़ार का समय
YamNet 12.29 मि॰से॰ -