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

किसी पक्षी की आवाज़ का वेवफ़ॉर्म, उस पक्षी की फ़ोटो के ऊपर दिखाया गया है जिसकी आवाज़ से वेवफ़ॉर्म मेल खाता है.

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

इसे आज़माएं!

शुरू करें

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

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

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

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

सुविधाएं

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

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

इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:

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

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

AUDIO_STREAM: ऑडियो स्ट्रीम पर ऑडियो टास्क चलाने का मोड. जैसे, माइक्रोफ़ोन से. इस मोड में, अलग-अलग समय पर कैटगरी के नतीजे पाने के लिए, एक listener सेट अप करने के लिए resultListener को कॉल किया जाना चाहिए.
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale टास्क के मॉडल के मेटाडेटा में दिए गए डिसप्ले नेम के लिए, लेबल की भाषा सेट करता है. हालांकि, ऐसा तब ही किया जाता है, जब वह भाषा उपलब्ध हो. अंग्रेज़ी के लिए, डिफ़ॉल्ट तौर पर en होता है. TensorFlow Lite मेटाडेटा राइटर एपीआई का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में स्थानीय भाषा के लेबल जोड़े जा सकते हैं स्थानीय भाषा का कोड 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 डेटासेट पर ट्रेन किया गया है, ताकि AudioSet डेटा में बताए गए ऑडियो इवेंट का अनुमान लगाया जा सके. इस मॉडल से पहचाने गए ऑडियो इवेंट के बारे में जानकारी पाने के लिए, मॉडल के लेबल की सूची देखें.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
YamNet 1 x 15600 कोई नहीं (float32) हाल ही के अपडेट

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

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

मॉडल का नाम सीपीयू के इंतज़ार का समय जीपीयू में इंतज़ार का समय
YamNet 12.29 मिलीसेकंड -