वेक वर्ड्स और जेस्चर्स
एक always-on डिटेक्टर पूरे दिन बार-बार जाँच करता रहता है। जानिए झूठे अलार्म (false alarms) और चूक जाने (misses) के बीच का संतुलन, और थ्रेशोल्ड कैसे चुनें।
60 सेकंड में
वेक वर्ड्स और जेस्चर्स
एक always-on डिटेक्टर पूरे दिन बार-बार जाँच करता रहता है। जानिए झूठे अलार्म (false alarms) और चूक जाने (misses) के बीच का संतुलन, और थ्रेशोल्ड कैसे चुनें।
Always-on डिटेक्शन कैसे काम करता है
- 1
एक रोलिंग बफ़र बनाए रखें
ऑडियो या मोशन के पिछले लगभग एक सेकंड के हिस्से को RAM में स्टोर करें। - 2
लगातार जाँचें
हर सेकंड कई बार, सबसे ताज़ा विंडो को फ़ीचर्स में बदलें और मॉडल चलाएं। - 3
स्कोर प्राप्त करें
मॉडल 0 और 1 के बीच एक स्कोर देता है: वेक वर्ड होने की संभावना कितनी है। - 4
थ्रेशोल्ड से तुलना करें
अगर स्कोर थ्रेशोल्ड पर या उससे ऊपर है, तो यह ट्रिगर होता है। - 5
स्मूथ करें और इंतज़ार करें
अक्सर लगातार कई बार हाई स्कोर आने की ज़रूरत होती है, फिर थोड़ी देर के लिए नए ट्रिगर्स को अनदेखा किया जाता है।
दो तरह की गलतियाँ
| गलती | क्या होता है | कैसा महसूस होता है |
|---|---|---|
| झूठा अलार्म (फॉल्स पॉजिटिव) | यह तब ट्रिगर होता है जब किसी ने वह शब्द नहीं कहा | डिवाइस टीवी या प्रेशर कुकर की सीटी पर जाग जाती है। परेशान करने वाला, बैटरी खर्च करता है, और जासूसी जैसा लग सकता है। |
| चूक जाना (फॉल्स नेगेटिव) | किसी ने वह शब्द कहा और यह ट्रिगर नहीं हुआ | यूज़र बात दोहराता है, खीझ जाता है, और छोड़ देता है। |
झूठे अलार्म की दर बहुत कम क्यों होनी चाहिए
# A detector that checks for the wake word twice every second, all day.
checks_per_day = 2 * 60 * 60 * 24
for false_alarm_rate in [0.01, 0.001, 0.0001, 0.00001]:
wakes = checks_per_day * false_alarm_rate
print(f"false alarm on {false_alarm_rate:.3%} of checks -> about {wakes:,.1f} false wakes a day")- सिर्फ़ शांत कमरे में साफ़ रिकॉर्डिंग्स पर टेस्ट करना
- सिर्फ़ एक एक्यूरेसी नंबर रिपोर्ट करना
- ट्रेनिंग डेटा पर जो सबसे अच्छा दिखे, वही थ्रेशोल्ड चुन लेना
- सिर्फ़ डेवलपर की आवाज़ से टेस्ट करना
- घंटों का असली बैकग्राउंड: टीवी, परिवार की बातचीत, ट्रैफ़िक, त्योहार
- प्रति घंटे झूठे अलार्म और मिस रेट को अलग-अलग रिपोर्ट करना
- झूठे अलार्म के तय लक्ष्य के लिए, अलग रखे गए (held-out) डेटा पर थ्रेशोल्ड चुनना
- कई आवाज़ें, उम्र, लहज़े और भाषाएं, डिवाइस के पास और दूर से
और देखें और पढ़ें
लैब
काम करने वाले फ़ंक्शन्स जो फ़ॉल्स-अलार्म और मिस रेट्स की गणना करते हैं, और फ़ॉल्स-अलार्म के लक्ष्य के लिए एक थ्रेशोल्ड चुनते हैं।
समस्या
स्टार्टर डिटेक्टर के कुछ काल्पनिक स्कोर बनाता है: 200 क्लिप्स जहाँ किसी ने वेक वर्ड बोला, और 5000 क्लिप्स दूसरी आवाज़ों की।
rates(threshold)लिखें। जब स्कोर ≥ थ्रेशोल्ड हो, तो डिटेक्टर ट्रिगर होता है।(false_alarm_rate, miss_rate)रिटर्न करें: अन्य क्लिप्स का वह हिस्सा जो ट्रिगर होता है, और वर्ड क्लिप्स का वह हिस्सा जो ट्रिगर नहीं होता।pick_threshold(max_false_alarm)लिखें: दिए गए थ्रेशोल्ड विकल्पों में से सबसे कम थ्रेशोल्ड रिटर्न करें जिसका फ़ॉल्स-अलार्म रेट अधिकतम सीमा के अंदर हो। (सबसे कम इसलिए, क्योंकि यह असली शब्दों को सबसे कम छोड़ता है।)- इसे चलाएं। 1% फ़ॉल्स-अलार्म लिमिट से 0.1% तक जाने के लिए आपको कितनी चूक झेलनी पड़ती हैं?
- दो वाक्य लिखें: रसोई के वॉयस स्विच के लिए कौन सी गलती ज़्यादा बुरी है, और "मदद के लिए बुलाएं" जेस्चर के लिए कौन सी ज़्यादा बुरी है?
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q11% फ़ॉल्स-अलार्म लिमिट के साथ आप बहुत कम वेक वर्ड्स छोड़ते हैं। फिर भी यह एक खराब प्रोडक्ट क्यों हो सकता है?दिखाएं
Always-on डिवाइस के लिए 1% जाँचें बहुत ज़्यादा होती हैं। अगर यह हर सेकंड दो बार जाँचता है, तो यह दिन में एक हज़ार से भी ज़्यादा बार बेवजह जाग जाएगा। यह सीमा असली बैकग्राउंड आवाज़ के प्रति घंटे या प्रति दिन के हिसाब से तय की जानी चाहिए, जिसका मतलब है कि प्रति जाँच की दर बहुत छोटी होनी चाहिए।
Q2आपके डिटेक्टर के झूठे अलार्म घर पर तो ठीक हैं, लेकिन शादी में बहुत ज़्यादा हो जाते हैं। आप क्या करेंगे?दिखाएं
संगीत, भीड़ और भाषणों वाले तेज़ आवाज़ वाले कार्यक्रमों से रिकॉर्डिंग्स इकट्ठा करें, और उन्हें बैकग्राउंड ट्रेनिंग डेटा और फ़ॉल्स-अलार्म टेस्ट में जोड़ें। फिर से ट्रेन करें और दोबारा थ्रेशोल्ड चुनें। आप लगातार कई हाई स्कोर्स की आवश्यकता भी लागू कर सकते हैं। इसके बाद मिस रेट की दोबारा जाँच करें, क्योंकि वह बढ़ सकता है।
अक्सर पूछे जाने वाले सवाल
मॉडल को ही इतना बेहतर क्यों न बना दिया जाए कि थ्रेशोल्ड की ज़रूरत ही न पड़े?
एक बेहतर मॉडल से मदद मिलती है: उसके स्कोर्स दोनों ग्रुप्स को ज़्यादा साफ़ तौर पर अलग करते हैं, जिससे किसी भी थ्रेशोल्ड पर कम गलतियाँ होती हैं। लेकिन असली शब्दों और बैकग्राउंड के स्कोर्स में फिर भी थोड़ा ओवरलैप रहेगा, इसलिए आपको हमेशा एक थ्रेशोल्ड चुनना ही होगा।
"लगातार कई हाई स्कोर्स की ज़रूरत" होने से क्या होता है?
थ्रेशोल्ड से ऊपर आने वाला एक अकेला शोर भरा स्पाइक अब ट्रिगर नहीं कर पाता। असली शब्द आमतौर पर लगातार कई जाँचों में हाई स्कोर देते हैं। इससे झूठे अलार्म कम होते हैं, बस थोड़ी सी देरी होती है और कभी-कभी कुछ ज़्यादा चूक हो सकती हैं।
क्या हर डिवाइस को एक ही थ्रेशोल्ड इस्तेमाल करना चाहिए?
अक्सर एक डिफ़ॉल्ट चुना जाता है, लेकिन कुछ प्रोडक्ट्स इसे सेटिंग या माहौल के हिसाब से एडजस्ट करते हैं। एक शोर-शराबे वाली रसोई और एक शांत बेडरूम अलग-अलग होते हैं। जिस सबसे शोर-शराबे वाली जगह की आप उम्मीद करते हैं, वहाँ डिफ़ॉल्ट की जाँच करें।
क्या मैं कोई भी वेक वर्ड चुन सकता हूँ?
छोटे या आम शब्द गलती से आसानी से ट्रिगर हो जाते हैं। कुछ साफ़ अक्षरों वाले ऐसे शब्द जो सामान्य बातचीत में नहीं आते, आमतौर पर बेहतर काम करते हैं। अपने चुने गए शब्द को उन भाषाओं में असली बातचीत के साथ टेस्ट करें जो आपके यूज़र्स बोलते हैं।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।