MediaPipe के ऑडियो क्लासिफ़ायर टास्क की मदद से, ऑडियो क्लिप को तय की गई कैटगरी के सेट में बांटा जा सकता है. जैसे, गिटार का संगीत, ट्रेन की सीटी या पक्षी का गाना. कैटगरी, मॉडल को ट्रेनिंग देने के दौरान तय की जाती हैं. यह टास्क, ऑडियो डेटा पर काम करता है. इसमें मशीन लर्निंग (एमएल) मॉडल का इस्तेमाल करके, ऑडियो क्लिप या लगातार चलने वाली स्ट्रीम को अलग-अलग कैटगरी में बांटा जाता है. साथ ही, संभावित कैटगरी की सूची भी दी जाती है. इस सूची में, कैटगरी को संभावित स्कोर के हिसाब से क्रम में लगाया जाता है.
शुरू करें
अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इनमें से किसी एक गाइड का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी इन गाइड में, इस टास्क को लागू करने का बुनियादी तरीका बताया गया है. इनमें सुझाया गया मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड का उदाहरण भी शामिल है:
- Android - कोड का उदाहरण - गाइड
- Python - कोड का उदाहरण गाइड
- वेब - कोड का उदाहरण - गाइड
प्लैटफ़ॉर्म के हिसाब से बनाई गई ये गाइड, इस टास्क को लागू करने का बुनियादी तरीका बताती हैं. इनमें सुझाया गया मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड का उदाहरण शामिल है.
टास्क की जानकारी
इस सेक्शन में, इस टास्क की सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
- इनपुट ऑडियो प्रोसेसिंग - प्रोसेसिंग में ऑडियो को फिर से सैंपल करना, बफ़र करना, फ़्रेम करना, और फ़ोरियर ट्रांसफ़ॉर्म शामिल है.
- मैप के लिए स्थानीय भाषा का लेबल - डिसप्ले नेम के लिए इस्तेमाल की जाने वाली भाषा सेट करें
- स्कोर थ्रेशोल्ड - अनुमान के स्कोर के आधार पर नतीजे फ़िल्टर करें.
- सबसे ज़्यादा मिलते-जुलते नतीजे - नंबर का पता लगाने की सुविधा के नतीजों को फ़िल्टर करें.
- अनुमति वाली सूची और ब्लॉकलिस्ट को लेबल करना - पता लगाई गई कैटगरी बताएं.
टास्क के इनपुट | टास्क के आउटपुट |
---|---|
इनपुट इनमें से किसी भी तरह का डेटा हो सकता है:
|
ऑडियो की कैटगरी तय करने वाला टूल, कैटगरी की एक सूची दिखाता है. इसमें ये कैटगरी शामिल होती हैं:
|
कॉन्फ़िगरेशन के विकल्प
इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:
विकल्प का नाम | ब्यौरा | वैल्यू की रेंज | डिफ़ॉल्ट मान |
---|---|---|---|
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 मॉडल (सुझाया गया)
Yamnet मॉडल, ऑडियो इवेंट का क्लासिफ़ायर है. इसे AudioSet डेटासेट पर ट्रेन किया गया है, ताकि AudioSet डेटा में बताए गए ऑडियो इवेंट का अनुमान लगाया जा सके. इस मॉडल से पहचाने गए ऑडियो इवेंट के बारे में जानकारी पाने के लिए, मॉडल के लेबल की सूची देखें.
मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन का टाइप | वर्शन |
---|---|---|---|
YamNet | 1 x 15600 | कोई नहीं (float32) | हाल ही के अपडेट |
टास्क के मानदंड
यहां पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. ये मानदंड, ऊपर दिए गए पहले से ट्रेन किए गए मॉडल पर आधारित हैं. इंतज़ार का समय, सीपीयू / जीपीयू का इस्तेमाल करके Pixel 6 पर औसत इंतज़ार का समय होता है.
मॉडल का नाम | सीपीयू के इंतज़ार का समय | जीपीयू में इंतज़ार का समय |
---|---|---|
YamNet | 12.29 मिलीसेकंड | - |