Nolege News

कंप्यूटर साइंस

डिक्टेशन ऐप पॉडकास्ट अक्षरशः लिख देता है और आपका नाम बिगाड़ देता है। वह ठीक वही कर रहा है जो उसे सिखाया गया था

लेखक ·15 सितंबर 2026·9 मिनट का पठन

🌐 Read this article in English
डिक्टेशन ऐप पॉडकास्ट अक्षरशः लिख देता है और आपका नाम बिगाड़ देता है। वह ठीक वही कर रहा है जो उसे सिखाया गया था

संक्षेप में: स्पीच रिकग्निशन आवाज़ को समय-आवृत्ति की तस्वीर में बदलकर उससे टेक्स्ट का अनुमान लगाती है, पर अकेला ध्वनि-संकेत हमेशा दुविधा भरा होता है। यह लेख बताता है कि शब्दों की सीमाएँ सुनी नहीं, अनुमानित की जाती हैं, पुरानी ध्वनि-मॉडल प्लस भाषा-मॉडल वाली पाइपलाइन की जगह एंड-टु-एंड न्यूरल सिस्टम कैसे आए, बिना लिखे ऑडियो पर स्व-पर्यवेक्षित प्री-ट्रेनिंग कम संसाधन वाली भाषाओं के लिए क्यों अहम है, भाषा-मॉडल चुपचाप दुर्लभ नामों को आम शब्दों में क्यों बदल देता है, दो भाषाएँ मिलाकर बोलना इन सिस्टमों की बुनियादी मान्यता क्यों तोड़ देता है, औसत वर्ड एरर रेट ठीक वही नाकामियाँ क्यों छिपा लेता है जो मायने रखती हैं, और असली सिस्टम नामों की गड़बड़ी कैसे ठीक करते हैं।

किसी समाचार लेख का पैराग्राफ़ बोलिए और आज का ट्रांसक्रिप्शन सिस्टम लगभग हर शब्द सही लिख देगा। अब उसी आवाज़ में, उसी कमरे में अपना नाम, किसी सहकर्मी का नाम और कोई पता बोलिए — और वह पूरे आत्मविश्वास से कुछ ग़लत लिख देगा। आम सफ़ाई यही दी जाती है कि "सिस्टम उच्चारण नहीं समझता", जो कुछ हद तक सही है और ज़्यादातर बात से हटकर। यह नाकामी ढाँचागत है, और यह उसी से निकलती है जो मशीन सुनते वक़्त असल में कर रही होती है।

बोली में ख़ाली जगहें होती ही नहीं

उसी बात से शुरू कीजिए जो लोगों को सबसे ज़्यादा चौंकाती है। लिखी हुई भाषा में शब्दों के बीच जगह होती है। बोली हुई भाषा में नहीं।

रिकॉर्डिंग एक लगातार चलती दाब-तरंग है। सिस्टम उसे स्पेक्ट्रोग्राम में बदल देता है — यानी ऐसी तस्वीर में कि किस क्षण किस आवृत्ति पर कितनी ऊर्जा है — और मॉडल असल में उसी को पढ़ता है। किसी धाराप्रवाह वाक्य की वह तस्वीर देखिए, शब्दों की सीमाओं पर आपको चुप्पी नहीं मिलेगी। चुप्पी शब्दों के बीचोंबीच मिलेगी, जहाँ कोई व्यंजन स्वर-नली बंद करता है, और उन शब्दों के बीच बिल्कुल नहीं मिलेगी जो आपस में जुड़कर बोले गए।

इससे भी बुरी बात, अलग-अलग ध्वनियाँ कोई तय आकृति नहीं होतीं। हर ध्वनि अपने आसपास की ध्वनियों से पुत जाती है, क्योंकि जीभ मौजूदा ध्वनि पूरी करते-करते अगली जगह की ओर बढ़ चुकी होती है। आपके नाम का वही स्वर इस बात पर भौतिक रूप से अलग दिखता है कि उसके बाद कौन-सा व्यंजन आ रहा है। संकेत में पढ़ लेने लायक़ कोई साफ़ वर्णमाला है ही नहीं।

इसलिए शब्दों की सीमाएँ पकड़ी नहीं जातीं। वे अनुमानित की जाती हैं — और अनुमान के लिए यह पूर्व-धारणा चाहिए कि कौन-से शब्द आने की संभावना है। असली खेल यहीं से शुरू होता है।

सिस्टम बना किन हिस्सों से है

पुराने रिकग्नाइज़र यह बँटवारा खुलकर दिखाते थे। ध्वनि मॉडल स्पेक्ट्रोग्राम के टुकड़ों को बोली की ध्वनियों से जोड़ता था। उच्चारण शब्दकोश शब्दों को उन्हीं ध्वनियों की शृंखला से जोड़ता था। भाषा मॉडल यह अंक देता था कि आम लेखन में कोई शब्द-शृंखला कितनी संभावित है। और एक डिकोडर ऐसा वाक्य खोजता था जो तीनों को एक साथ सबसे अच्छी तरह संतुष्ट करे।

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

दूसरा अहम बदलाव यह है कि इन्हें सिखाया कैसे जाता है। स्व-पर्यवेक्षित प्री-ट्रेनिंग मॉडल को बोली की बनावट बहुत सारे बिना लिखे ऑडियो से सीखने देती है — किसी ट्रांसक्रिप्ट की ज़रूरत नहीं — जिसमें वह अपने ही इनपुट के ढके हुए हिस्सों का अनुमान लगाना सीखता है। उसके बाद ही उसे तुलनात्मक रूप से थोड़ी-सी लिखी हुई रिकॉर्डिंग पर फ़ाइन-ट्यून किया जाता है। उन भाषाओं के लिए यह अब तक का सबसे अहम विकास है जिनके पास हज़ारों घंटे पेशेवर ढंग से लिखा गया ऑडियो नहीं है — यानी लगभग सभी भाषाओं के लिए।

भाषा मॉडल आपके सोचे से ज़्यादा काम कर रहा है

जिस नाकामी से हर कोई गुज़रा है, उसकी मशीनरी यही है।

हर भाषा में ऐसी जोड़ियाँ हैं जहाँ दो अलग शब्द-शृंखलाएँ लगभग एक जैसी सुनाई देती हैं और फ़र्क़ सिर्फ़ इस बात का है कि सीमा कहाँ खींची जाए — "चार आम" और "चारा", या "हम आम" और "हमाम"। संकेत में ऐसा कुछ नहीं जो इन्हें भरोसे से अलग कर दे। अलग उन्हें यह बात करती है कि एक शृंखला भाषा में कहीं ज़्यादा संभावित है, और सिस्टम उसी को चुन लेता है — उसे चुनना ही पड़ेगा, वरना वह कोई नतीजा दे ही नहीं पाएगा।

अब यही बात ऐसे नाम पर लगाइए जो उसने कभी देखा ही नहीं। अनजान नाम की संभावना भाषा मॉडल में लगभग शून्य है, जबकि उससे मिलती-जुलती आवाज़ वाले किसी आम शब्द की संभावना ख़ूब ऊँची। सिस्टम ठीक वही करता है जिसके लिए बना है: संभावित शृंखला चुन लेता है। आपका नाम ग़लत सुना नहीं गया, उसे ख़ारिज कर दिया गया — और नतीजे में उस झिझक का कोई निशान नहीं बचता, क्योंकि जिस मशीनरी ने यह दुविधा सुलझाई वही हर दूसरे वाक्य को सही सुलझाती है।

सिस्टम वह नहीं लिख रहा जो आपने कहा। वह वह लिख रहा है जो सबसे संभावित बात है जो कोई इंसान कह सकता था और जो ऐसी सुनाई देती। ज़्यादातर मौक़ों पर दोनों एक ही जवाब होते हैं — और अपवाद ठीक वही शब्द होते हैं जिनमें जानकारी होती है।

यह ख़ास आप पर क्यों नाकाम होता है

"यह मेरा उच्चारण नहीं समझता" के नीचे कई अलग समस्याएँ एक साथ बाँध दी जाती हैं, और उनके इलाज अलग हैं।

वितरण। मॉडल ने उसी बोली से सीखा है जो उसे सिखाई गई। जो उच्चारण, बोलने की रफ़्तार और आवाज़ के गुण उस डेटा में कम थे, उन्हें वह ख़राब सँभालता है — और यह ऐसी राय नहीं जिससे मॉडल को बहस करके हटाया जा सके।

दो भाषाएँ मिलाकर बोलना। भारत की रोज़मर्रा की बोली का बड़ा हिस्सा एक ही वाक्य के भीतर दो भाषाओं के बीच आता-जाता है। ज़्यादातर सिस्टम मानकर चलते हैं कि एक बार में एक ही भाषा है और उसी हिसाब से मॉडल चुन लेते हैं — इसलिए बीच में भाषा बदल देने वाला वाक्य इनके ढाँचे का उल्लंघन है, सिर्फ़ मुश्किल मामला नहीं। वाक्य के एक हिस्से के लिए ध्वनि-सूची और भाषा-मॉडल, दोनों ग़लत बैठते हैं।

नाम और विशेष शब्द। लोगों, जगहों, दवाओं और उत्पादों के नाम ठीक वही कम आवृत्ति वाले शब्द हैं जिन्हें भाषा मॉडल दंडित करता है — और यही वे शब्द भी हैं जिनकी सटीकता से तय होता है कि ट्रांसक्रिप्ट किसी काम का है या नहीं। किसी चिकित्सकीय बातचीत का वह ट्रांसक्रिप्ट जिसमें सिर्फ़ दवा का नाम ग़लत है, 99 प्रतिशत काम का नहीं होता।

परिस्थितियाँ। माइक्रोफ़ोन से दूरी, कमरे की गूँज और पीछे चल रही बातचीत — तीनों संकेत को मॉडल तक पहुँचने से पहले ही बिगाड़ देते हैं; और शोर में लोग बोलने का ढंग भी बदल देते हैं, जिससे वे ट्रेनिंग डेटा से और दूर चले जाते हैं।

इन सबके ऊपर एक नापने की समस्या भी बैठी है। सिस्टमों की तुलना वर्ड एरर रेट से होती है, जो पूरे संग्रह पर औसत निकाला जाता है। औसत बनावट छिपा लेता है। कोई सिस्टम कुल मिलाकर शानदार आँकड़ा दिखा सकता है और उन थोड़े-से प्रतिशत शब्दों पर नाकाम रह सकता है — नाम, संख्याएँ, तकनीकी शब्द — जिनकी सुनने वाले को सचमुच ज़रूरत थी। असली इस्तेमाल के लिए किसी ट्रांसक्रिप्शन सिस्टम को परखना हो, तो मायने रखने वाला आँकड़ा नामों पर सटीकता है, औसत नहीं।

इसे सुधारता क्या है

असली सिस्टमों में सबसे असरदार तरकीब बेरौनक़ है और ख़ूब इस्तेमाल होती है: संदर्भ के हिसाब से झुकाव देना। लिखते वक़्त ही सिस्टम को उन शब्दों की सूची थमा दीजिए जो इस ख़ास मौक़े पर आने की संभावना है — उपयोगकर्ता के संपर्क, वार्ड की दवा-सूची, उत्पाद सूची, बैठक में मौजूद लोगों के नाम — और डिकोड करते समय उनकी संभावना बढ़ा दीजिए। इसमें कुछ दोबारा ट्रेन नहीं होता, असर तुरंत होता है, और इसीलिए सहेजे हुए संपर्क को संदेश बोलना खुले डिक्टेशन में वही नाम बोलने से कहीं बेहतर चलता है।

इसके आगे: उसी माहौल के ऑडियो पर फ़ाइन-ट्यूनिंग, एक वाक्य में एक ही भाषा मान लेने के बजाय बहुभाषी और मिश्रित-भाषा वाला ट्रेनिंग डेटा, और वह बात जिससे बचा नहीं जा सकता — उन्हीं लोगों की प्रतिनिधि बोली जुटाना जो इस सिस्टम को इस्तेमाल करेंगे। भारतीय भाषाओं के लिए अड़चन शायद ही कभी मॉडल का ढाँचा रही है। अड़चन पर्याप्त भाषाओं, बोलियों और रिकॉर्डिंग परिस्थितियों में लिखा हुआ ऑडियो है, जो धीमा, महँगा और बेरौनक़ काम है।

विद्यार्थियों और शोधकर्ताओं के लिए क्यों मायने रखता है

जिन लोगों तक कंप्यूटिंग सबसे कम पहुँची है, उनके लिए सबसे अहम इंटरफ़ेस बोली ही है। टाइप करना उस हर व्यक्ति के लिए अड़चन है जो कीबोर्ड के लेआउट में सहज नहीं, जिसकी लिपि फ़ोन ठीक से नहीं सँभालता, या जो लिख ही नहीं पाता। आवाज़ वह अड़चन हटा देती है — पर तभी, जब पहचान इस बात पर चले कि लोग सचमुच बोलते कैसे हैं, और भारत में उसका मतलब है कई भाषाएँ, बोलियों की भारी विविधता, और दो भाषाएँ मिलाकर बोलना — जो यहाँ अपवाद नहीं, सामान्य है।

इसीलिए यहाँ से इस क्षेत्र में उतरना असामान्य रूप से अच्छा सौदा है। खुले सवाल सचमुच खुले हैं, वे कहीं और सिखाए गए किसी बड़े मॉडल का इंतज़ार करने से हल नहीं होंगे, और डेटा की बढ़त स्थानीय है। सबसे उपयोगी योगदान अक्सर कोई नया आर्किटेक्चर नहीं, बल्कि सावधानी से जुटाए और ईमानदारी से परखे गए संग्रह होते हैं — और वह अनुशासन कि जो चीज़ मायने रखती है उसे नापा जाए, न कि वह औसत जो अच्छा दिखाता है।

अक्सर पूछे जाने वाले सवाल

स्पीच रिकग्निशन नाम ग़लत क्यों लिखता है?

क्योंकि सिस्टम ध्वनि की दुविधा इस मॉडल से सुलझाता है कि कौन-सी शब्द-शृंखला संभावित है। अनजान नाम की संभावना बहुत कम होती है, इसलिए मिलती-जुलती आवाज़ वाला कोई आम शब्द जीत जाता है — नाम ग़लत सुना नहीं जाता, ख़ारिज कर दिया जाता है।

स्पीच रिकग्निशन काम कैसे करती है?

आवाज़ को समय और आवृत्ति की तस्वीर में बदला जाता है, और न्यूरल नेटवर्क उसके लिए सबसे संभावित टेक्स्ट का अनुमान लगाता है। चूँकि अकेला ध्वनि-संकेत दुविधा भरा है और उसमें शब्दों के बीच ख़ाली जगह नहीं होती, सिस्टम यह तय करने के लिए भाषा की सीखी हुई उम्मीदों पर निर्भर रहता है कि शब्द कहाँ शुरू और ख़त्म होते हैं।

भारतीय भाषाओं में यह ज़्यादा ख़राब क्यों है?

मुख्यतः लिखे हुए ट्रेनिंग डेटा की कमी से, किसी ढाँचागत सीमा से नहीं। भारतीय भाषाओं, बोलियों और रिकॉर्डिंग परिस्थितियों में लिखा हुआ ऑडियो कहीं कम है, और ज़्यादातर सिस्टम एक वाक्य में एक ही भाषा मान लेते हैं, जो दो भाषाएँ मिलाकर बोलने पर टूट जाता है।

वर्ड एरर रेट क्या है और वह भ्रम कैसे पैदा करता है?

यह ग़लती से बदले, जोड़े या छोड़े गए शब्दों का अनुपात है, जो पूरे परीक्षण संग्रह पर औसत निकाला जाता है। यह शानदार दिख सकता है जबकि सिस्टम उन थोड़े-से शब्दों पर नाकाम हो — नाम, संख्याएँ, चिकित्सा शब्द — जिन पर ट्रांसक्रिप्ट की उपयोगिता टिकी है।

क्या बिना दोबारा ट्रेनिंग के नामों की पहचान सुधारी जा सकती है?

हाँ। संदर्भ के हिसाब से झुकाव देने में पहचान के ठीक उसी क्षण संभावित शब्दों की सूची दी जाती है — संपर्क, उत्पाद नाम, दवा-सूची — और डिकोड करते समय उनकी संभावना बढ़ा दी जाती है; असली सिस्टम नाम इसी तरह भरोसे से सँभालते हैं।