अपने-आप पहचान बार-बार ग़लत: अपनी भाषा pin करें
डिक्टेशन बार-बार ग़लत भाषा में उतरता है? द्विभाषी speech पर अपने-आप होने वाली पहचान बनावट से ही डगमगाती है। अपनी भाषा एक बार pin करें और वह pin रहती है।
अगर आप एक से ज़्यादा भाषाओं में डिक्टेट करते हैं, तो आपने यह नाकामी देखी होगी। आप Romanian में एक वाक्य कहते हैं और transcript ध्वनि के हिसाब से बिगड़ी हुई English बनकर लौटता है — असली शब्द, पर उनमें से कोई आपका नहीं। या वह वाक्य के बीच में पलट जाता है: पहला आधा सही भाषा में, दूसरा आधा उसमें जिसमें मॉडल ने तय कर लिया कि आप बदल गए। या, मेरी अपनी पसंदीदा शक्ल — मिली-जुली लिपियों की खिचड़ी, Latin अक्षरों के बीच कुछ Cyrillic छिड़के हुए, मानो मॉडल ने अक्षर-दर-अक्षर दोनों तरफ़ दाँव लगा रखा हो।
यह किसी एक प्रोडक्ट की शिकायत नहीं है। यह अपने-आप होने वाली भाषा-पहचान की एक अनुमान लगाई जा सकने वाली नाकामी है, जिसमें Keebye का English-tuned डिफ़ॉल्ट भी शामिल है। यह उन लोगों पर पड़ती है जिनकी English पर लहजा है और उन सब पर जो दिन भर भाषाएँ बदलते रहते हैं। जिस द्विभाषी developer का Slack Polish में है और commit messages English में, वह अपने-आप होने वाली पहचान को ठीक वही मिले-जुले संकेत देता है जिन्हें वह सबसे ख़राब सँभालती है।
शिकायत का दूसरा आधा हिस्सा ज़्यादा शांत है पर उतना ही सच्चा: जब भाषा की कोई setting होती भी है, तो वह अक्सर दफ़्न होती है। तीन menus नीचे, किसी engine picker के पीछे, किसी ऐसे toggle के पार जिसके नाम में भाषा का ज़िक्र तक नहीं। अगर आप दिन में बीस बार भाषा बदलते हैं, तो दफ़्न की हुई setting व्यावहारिक रूप से कोई setting नहीं है।
मैं समझाना चाहता हूँ कि यह डगमगाना होता क्यों है — अपने ही प्रोडक्ट की लड़ाई की कहानी से, क्योंकि Keebye में यह समस्या इसका इलाज आने से पहले मौजूद थी — और फिर दिखाना चाहता हूँ कि असली हल दिखता कैसा है।
अपने-आप होने वाली पहचान डगमगाती क्यों है (और यह ठीक-ठीक कोई बग क्यों नहीं है)
यह रही ईमानदार कार्यविधि। आधुनिक speech मॉडल भाषा की पहचान चुपचाप करते हैं, decoding के ही हिस्से के रूप में। मॉडल सुनता है, भीतर ही भीतर एक अंदाज़ा बनाता है कि यह कौन-सी भाषा है, और उसी अंदाज़े के हिसाब से decode करता है। जब ऑडियो साफ़, बे-लहजा और एक ही भाषा का हो, तो यह इतना अच्छा चलता है कि आप इसके बारे में कभी सोचते ही नहीं।
अब उसे असली speech खिलाइए। कोई लहजा स्वरों को किसी दूसरी भाषा की ध्वनियों की तरफ़ खिसका देता है। किसी वाक्य में तीन English loanwords हैं — हर तकनीकी बातचीत में होते हैं। पीछे कोई बच्चा है, या आप laptop के mic पर हैं। इनमें से हर चीज़ मॉडल के भीतरी भाषा-अंदाज़े का आत्मविश्वास घटाती है, और कम आत्मविश्वास वाला अंदाज़ा frames के बीच पलट सकता है। जब वह पलटता है, decode भी उसके साथ पलट जाता है, और आपको ऐसा transcript मिलता है जो सोच के बीचोंबीच भाषा बदल देता है।
अहम बात: ज़्यादातर टूल्स में उस अंदाज़े को थामने वाला कुछ है ही नहीं। मॉडल चुपचाप, हर उच्चारण पर फ़ैसला करता है, और आपके पास उसे बदलने का कोई ज़रिया नहीं। यह किसी एक ऐप का बग नहीं — चुपचाप होने वाली अपने-आप पहचान होती ही यही है। एक मॉडल एक ऐसा फ़ैसला कर रहा है जिसे आप सुधार नहीं सकते।
मैं इसे बहुत नज़दीक से जानता हूँ क्योंकि Keebye के डिफ़ॉल्ट इंजन में ठीक यही गुण है। Parakeet, यानी हमारा English-tuned डिफ़ॉल्ट, decoding की परत पर भाषा का कोई भी संकेत नज़रअंदाज़ कर देता है — आप उसे बता ही नहीं सकते कि आप क्या बोलने वाले हैं। साफ़ English पर वह शानदार है, इसीलिए वह डिफ़ॉल्ट है। धुँधले ऑडियो पर वह इस category की बाक़ी हर चीज़ की तरह भाषाओं के बीच डगमगा सकता है। यह बात मैं पहले अपने ही प्रोडक्ट के बारे में कह रहा हूँ, क्योंकि इलाज तभी समझ आता है जब आप मान लें कि समस्या architecture में रहती है, किसी प्रतिद्वंद्वी की लापरवाही में नहीं।
भाषा pin करने से असल में होता क्या है?
इलाज यह है कि मॉडल से अंदाज़ा लगवाना ही बंद कर दिया जाए। Keebye एक दूसरा on-device इंजन देता है — NVIDIA का Canary 1B v2, int8 पर quantized — जो ठीक 25 भाषाएँ कवर करता है: Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Russian और Ukrainian। डिफ़ॉल्ट इंजन के उलट, Canary भाषा का निर्देश स्वीकार करता है और उसका पालन करता है।
Keebye इसे एक pin के रूप में सामने रखता है: हर उच्चारण के लिए Canary इंजन को भेजी जाने वाली एक स्पष्ट भाषा सेटिंग। Romanian pin करें और decoder अपने-आप कोई भाषा चुनने के बजाय Romanian इस्तेमाल करता है। पहचान फिर भी ग़लत हो सकती है, ख़ासकर loanwords और शोर वाले ऑडियो के आसपास, पर भाषा का चुनाव अब कोई बिना जाँचा अंदाज़ा नहीं रहा।
यह setting हर डिक्टेशन पर ताज़ा पढ़ी जाती है। इसे बदलें और अगली दबाकर-बोलने वाली बारी नई भाषा इस्तेमाल करती है, बिना ऐप दोबारा शुरू किए। यह सुनने से ज़्यादा मायने रखता है: भाषा का नियंत्रण तब कहीं ज़्यादा काम का होता है जब उसे बदलने से काम में रुकावट न पड़े।
और चूँकि Canary भी Keebye की बाक़ी हर चीज़ की तरह on-device चलता है, इसलिए pin आपकी प्राइवेसी वाली कहानी की क़ीमत पर नहीं आता। मॉडल क़रीब 1.3 GB का है, एक बार डाउनलोड होता है; उसके बाद आपकी Romanian, आपकी Polish, आपकी Ukrainian कभी मशीन से बाहर नहीं जाती। (लोकल multilingual डिक्टेशन हमें आख़िर मायने क्यों रखता है, यह अपनी अलग पोस्ट है — डिक्टेशन सिर्फ़ English तक सीमित नहीं होना चाहिए। यह वाली उसकी व्यावहारिक अगली कड़ी है: वह पोस्ट भाषाओं की वकालत करती है, यह उन्हें सचमुच इस्तेमाल लायक़ बनाने के बारे में है।)
दो क्लिक, न कि तीन menus नीचे
जिस pin तक आप पहुँच न सकें वह pin आप इस्तेमाल नहीं करेंगे, इसलिए यह स्विच tray में रहता है। Keebye के menu-bar आइकन में एक "Dictation Language" menu है जिसमें 11 भाषाओं की छाँटी हुई छोटी सूची है — English, Romanian, French, German, Spanish, Italian, Portuguese, Dutch, Polish, Russian, Ukrainian। किसी भी ऐप से दो क्लिक: tray पर क्लिक, भाषा पर क्लिक। न आप Settings खोलते हैं, न उस window से निकलते हैं जिसमें आप काम कर रहे थे।
छोटी सूची से बाहर की भाषाओं के लिए पूरी 25-भाषा वाली सूची Settings में रहती है। पर छोटी सूची ज़्यादातर द्विभाषी काम की रोज़मर्रा हक़ीक़त कवर कर लेती है: आप अपनी टीम को एक भाषा में लिख रहे होते हैं और किसी क्लाइंट या AI agent को दूसरी में, और आपको चाहिए कि यह पलटना कुछ ख़र्च ही न करे।
एक और विकल्प जानने लायक़ है, क्योंकि वह कुछ लोगों के लिए pin के इस्तेमाल का तरीक़ा ही बदल देता है: translate-to-English वाला toggle। अपनी भाषा बोलिए, cursor पर English उतरती है — वही इंजन, वही on-device अमल। अगर आपका भीतरी संवाद Romanian में चलता है पर आपका output English होना चाहिए (commit messages, किसी coding agent को दिए prompts, किसी अंतरराष्ट्रीय टीम को जवाब), तो यह अनुवाद का वह क़दम समेट देता है जो आप अपने दिमाग़ में कर रहे थे। मैं इसे उम्मीद से ज़्यादा इस्तेमाल करता हूँ।
Pin आपसे क्या क़ीमत लेता है
25 भाषाएँ 25 भाषाएँ ही हैं। Cloud डिक्टेशन टूल्स इससे कहीं ज़्यादा गिनाते हैं, क्योंकि ऑडियो को किसी बड़े server-side मॉडल पर भेजना भाषाएँ जोड़ने का सस्ता तरीक़ा है। on-device का असली सौदा यही है: जो मॉडल आपके Mac में समा जाता है, वह दुनिया का उतना हिस्सा कवर नहीं करता जितना कोई datacenter भरने वाला मॉडल। अगर आपकी भाषा उन 25 में नहीं है, तो Keebye का multilingual इंजन आज आपको कवर नहीं करता, और मैं इसे बढ़ा-चढ़ाकर कहने के बजाय यही कहना पसंद करूँगा।
Pin का मतलब pin। यह निश्चितता का उलटा पहलू है, और मैं इस पर साफ़ रहना चाहता हूँ: अगर आप Romanian pin करके English बोलते हैं, तो Keebye आपकी English को वफ़ादारी से Romanian की तरह ग़लत decode करेगा, जब तक आप बदल न दें। इंजन ठीक वही कर रहा है जो आपने उसे कहा। अपने-आप होने वाली पहचान की पूरी कशिश यही थी कि आपको इस बारे में कभी सोचना ही न पड़े — pin उस सहूलियत के बदले अनुमान-योग्यता ले लेता है। मेरे तजुर्बे में यह सौदा फ़ायदे का है, क्योंकि जिस ग़लत अंदाज़े पर आपका ज़ोर न हो, वह उस ग़लत सेटिंग से बुरा है जिसे आप दो क्लिक में ठीक कर सकते हैं। पर यह एक सौदा है, कोई मुफ़्त की चीज़ नहीं।
Tray की छोटी सूची 11 भाषाओं की है, 25 की नहीं। अगर आपकी रोज़ की जोड़ी में, मान लीजिए, Finnish या Greek है, तो उसके एक सिरे के लिए आपको Settings से होकर जाना पड़ेगा। छाँटने का मतलब है कि किसी न किसी की भाषा झटपट menu में जगह नहीं बना पाई।
यह शिकायत को कहाँ छोड़ता है
Category-स्तर की शिकायत — “मेरा डिक्टेशन बार-बार ग़लत भाषा में निकलता है” — असल में चुपचाप हो रहे फ़ैसलों की शिकायत है। मॉडल ने अंदाज़ा लगाया, अंदाज़ा ग़लत था, और उसे कुछ और बताने का कोई रास्ता नहीं था। हर वह इलाज जो अंदाज़ा लगाना बनाए रखता है (बेहतर पहचान, लंबी ऑडियो खिड़कियाँ, आत्मविश्वास की सीमाएँ) नाकामी को बस दुर्लभ और अजीब बना देता है। जो इलाज सचमुच शिकायत ख़त्म करता है, वह फ़ैसला user को वापस देना है।
अगर आप इस वक़्त किसी दूसरे टूल के साथ यही जी रहे हैं, तो हमारे तुलना वाले पेज इस बारे में ईमानदार हैं कि कौन-सा टूल कहाँ बैठता है — Keebye vs Superwhisper और Keebye vs Wispr Flow, दोनों बाक़ी बातों के साथ भाषा का सवाल भी समेटते हैं। ख़ुद pin आज़माने के लिए, नीचे अपना फ़्री ट्रायल शुरू करें, इस लेख की शुरुआत वाला Romanian या Polish वाक्य दोबारा बोलें, और देखें कि उस डगमगाहट का कितना हिस्सा आपके लहजे से नहीं, बल्कि एक बिना जाँचे अंदाज़े से आ रहा था।
वही भाषा pin करें जो आप वाक़ई इस्तेमाल करते हैं
अपना फ़्री ट्रायल शुरू करें और अपनी भाषा का वह एक जवाब दोबारा बोलें जिसे auto-detect ने पहले बिगाड़ा था।
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
आगे पढ़ें
code reviews अपनी भाषा में डिक्टेट कीजिए
Code अंग्रेज़ी है। आपके review कमेंट्स का अंग्रेज़ी होना ज़रूरी नहीं। 25 भाषाओं में से किसी एक में on-device डिक्टेशन, और भाषा pin करने की अहमियत।
पैरलल agents को prompts डिक्टेट करना, lane दर lane
दो-तीन coding agents एक साथ चलाते ही prompting अड़चन बन जाती है। जिस lane में हैं उसे छोड़े बिना बाकी lanes को खिलाने का एक वॉइस workflow।
अपनी आवाज़ से Claude Code चलाना: पैरलल-lane वाली बिल्डिंग
AI coding agents ने टाइपिंग को अड़चन बना दिया। macOS पर पैरलल agent lanes के आर-पार prompts, reviews और redirects डिक्टेट करने का एक व्यावहारिक workflow।