गाइड

जब आपका Mac डिवाइस पर ही ऑडियो ट्रांसक्राइब करता है, तब असल में होता क्या है

ऑन-डिवाइस AI एक मार्केटिंग वाक्यांश है जो इंजीनियरिंग के एक ठोस और काफ़ी दिलचस्प हिस्से से जुड़ा है। यह रही पूरी प्रक्रिया, फ़ाइल से टेक्स्ट तक।

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

यह रही पूरी प्रक्रिया, क्रम से।

चरण 1: हर चीज़ 16 kHz मोनो बन जाती है #

Whisper, यानी वह स्पीच रिकग्निशन मॉडल जिसे ये लगभग सारे ऐप इस्तेमाल करते हैं, सिर्फ़ एक ही तरह का इनपुट लेता है: प्रति सेकंड 16,000 सैंपल, एक चैनल, और -1 से 1 के बीच फ़्लोटिंग पॉइंट संख्याओं के रूप में।

इसलिए कोई भी ट्रांसक्रिप्शन टूल सबसे पहले आपके ऑडियो का ज़्यादातर हिस्सा फेंक देता है। आपकी 48 kHz स्टीरियो रिकॉर्डिंग डाउनमिक्स और डाउनसैंपल कर दी जाती है। वीडियो फ़ाइलों का ऑडियो ट्रैक निकाल लिया जाता है और तस्वीर छोड़ दी जाती है।

यह सुनने में विनाशकारी लगता है, पर ज़्यादातर है नहीं: मनुष्य की बोली 8 kHz से नीचे रहती है, और Nyquist सीमा के हिसाब से 16 kHz का सैंपल रेट उसे पूरा पकड़ लेता है। आप जो खोते हैं वह संगीत की गुणवत्ता है, बोली की समझ नहीं।

व्यावहारिक नतीजा: आपकी महँगी 96 kHz रिकॉर्डिंग इस चरण पर आपको कुछ नहीं देती, और बुरी तरह कंप्रेस की गई फ़ाइल को भी इससे बचाया नहीं जा सकता।

चरण 2: वॉइस एक्टिविटी डिटेक्शन तय करता है कि ट्रांसक्राइब करने लायक़ क्या है #

एक दूसरा, कहीं छोटा मॉडल पहले चलता है और चिह्नित करता है कि ऑडियो के कौन-से हिस्सों में इंसान की बोली है।

आम इस्तेमाल में जो मॉडल है वह Silero VAD है — एक मेगाबाइट से भी कम, और यह एक ही सवाल का जवाब देता है: बोली है या नहीं, एक बारीक समय-ग्रिड पर।

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

चरण 3: ऑडियो एक तस्वीर बन जाता है #

Whisper वेवफ़ॉर्म नहीं खाता। वह लॉग-मेल स्पेक्ट्रोग्राम खाता है: एक 2D तस्वीर जिसमें क्षैतिज अक्ष समय है, ऊर्ध्वाधर अक्ष ऐसे पैमाने पर आवृत्ति है जो मनुष्य की सुनने की क्षमता से मेल खाता है, और चमक ऊर्जा है।

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

चरण 4: एनकोडर चलता है, आदर्श रूप से Neural Engine पर #

Whisper दो हिस्सों वाला एक ट्रांसफ़ॉर्मर है। एनकोडर स्पेक्ट्रोग्राम पढ़ता है और उसे इस बात के सघन संख्यात्मक रूप में बदल देता है कि क्या कहा गया था। यही महँगा आधा हिस्सा है — तय आकार के इनपुट पर भारी, नियमित मैट्रिक्स गुणा।

और Apple का Neural Engine ठीक इसी के लिए बना है: चिप पर एक समर्पित ब्लॉक जो एक ख़ास तरह का गणित बेहद तेज़ी से और बहुत कम बिजली में करता है। यह सर्वसामान्य कामों के लिए नहीं है — आप इस पर मनमाना कोड नहीं चला सकते — लेकिन ट्रांसफ़ॉर्मर एनकोडर का आकार ठीक इसी के मुताबिक़ है।

एनकोडर को उस पर लाने के लिए मॉडल को पहले से ही Core ML के फ़ॉर्मैट (.mlmodelc) में कंपाइल करना पड़ता है। जो ऐप ऐसा करते हैं वे मॉडल के वेट के साथ एक Core ML एनकोडर भी भेजते हैं, और एक ही हार्डवेयर पर तेज़ और धीमे लोकल ट्रांसक्रिप्शन ऐप के बीच सबसे बड़ा गति-अंतर यही है।

चरण 5: डिकोडर GPU पर चलता है #

डिकोडर असली टेक्स्ट बनाता है, एक बार में एक टोकन, और हर टोकन उससे पहले आई हर चीज़ पर आधारित होता है।

यह आधा हिस्सा क्रमिक है, इसलिए यह Neural Engine के बैच-केंद्रित डिज़ाइन पर फ़िट नहीं बैठता। यह इसके बजाय Metal के ज़रिए GPU पर चलता है। Apple Silicon पर वह GPU मेमोरी CPU के साथ साझा करता है, इसलिए मॉडल के वेट को किसी बस के आर-पार कॉपी नहीं करना पड़ता — लोकल इनफ़रेंस में Apple Silicon अपने वज़न से ऊपर मार करता है, उसकी एक बड़ी वजह यही है।

चरण 6: टाइमस्टैम्प इसी प्रक्रिया से निकलते हैं #

Whisper शब्दों के बीच-बीच में विशेष टाइमस्टैम्प टोकन छोड़ता है। समझदार समय वाली SRT आपको इसी तरह मिलती है, न कि टेक्स्ट की एक दीवार — समय की जानकारी उसी डिकोडिंग पास से गिरती है, किसी अलग अलाइनमेंट चरण से नहीं।

जब VAD ख़ामोशी छोड़ चुका होता है, तो समय को वापस मूल रिकॉर्डिंग पर मैप करना पड़ता है, वरना पहले अंतराल के बाद का हर टाइमस्टैम्प ग़लत हो जाता।

मॉडल, और वह सुनने में जितना बड़ा लगता है उससे छोटा क्यों है #

Whisper का Base मॉडल 7.4 करोड़ पैरामीटर का है। पूरी प्रिसिज़न पर यह क़रीब 140 MB है, जिसका ज़्यादातर हिस्सा इस काम के लिए बेकार है।

क्वांटाइज़ेशन हर वेट को कम बिट में रखता है। q5_1 मॉडल में वेट 5 बिट के होते हैं, साथ में हर ब्लॉक के लिए एक छोटा स्केल और ऑफ़सेट — यानी 16 के बजाय मोटे तौर पर 6 बिट प्रति वेट। नतीजा क़रीब 60 MB होता है, और सटीकता का अंतर आम बोली पर पकड़ पाना मुश्किल है।

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

लंबी फ़ाइलें, और मेमोरी ही मुश्किल हिस्सा क्यों है #

Whisper का API सैंपल का एक ही सटा हुआ बफ़र लेता है। 16 kHz पर दो घंटे यानी क़रीब 470 MB फ़्लोट, और साथ में लगभग उतने ही आकार का स्पेक्ट्रोग्राम।

Mac पर कोई दिक़्क़त नहीं। iPhone पर यह इतना है कि सिस्टम ऐप को बंद कर दे — यही वजह है कि कुछ मोबाइल ट्रांसक्रिप्शन ऐप चुपचाप फ़ाइल की लंबाई सीमित कर देते हैं।

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

यह सब आपके लिए क्यों मायने रखता है #

ऊपर बताई प्रक्रिया से तीन बातें निकलती हैं जो मार्केटिंग के दावे नहीं हैं:

यह बिना नेटवर्क के काम करता है। ऊपर एक भी चरण ऐसा नहीं है जिसे नेटवर्क चाहिए। यह तीस सेकंड में जाँचा जा सकता है — हमने लिखा है कि कैसे, उन जाँचों समेत जिनके लिए हम पर भरोसा करने की ज़रूरत नहीं।

आपकी रिकॉर्डिंग किसी का ट्रेनिंग डेटा नहीं है। बात यह नहीं कि कोई लोकल ऐप आपके ऑडियो पर ट्रेनिंग न करने का वादा करता है। बात यह है कि आपका ऑडियो कभी ऐसी जगह पहुँचा ही नहीं जहाँ ऐसा हो सकता।

गति आपके हार्डवेयर पर निर्भर है, किसी की कतार पर नहीं। लोकल ट्रांसक्रिप्शन Apple Silicon पर वास्तविक समय से कई गुना तेज़ चलता है, हमेशा, रविवार की रात तीन बजे भी, बिना किसी रेट लिमिट के।

संक्षेप में #

ऑडियो को 16 kHz मोनो पर डाउनसैंपल किया जाता है, वॉइस डिटेक्शन बिना बोली वाले हिस्से हटा देता है, बाक़ी बचा हिस्सा स्पेक्ट्रोग्राम बन जाता है, एक ट्रांसफ़ॉर्मर एनकोडर उसे Neural Engine पर प्रोसेस करता है, एक डिकोडर GPU पर बीच-बीच में टाइमस्टैम्प डालते हुए टेक्स्ट बनाता है, और क्वांटाइज़ेशन मॉडल को इतना छोटा कर देता है कि यह सब एक फ़ोन में समा जाए।

इसमें किसी को भी सर्वर की ज़रूरत नहीं है, और असल बात यही है।

Offline Transcription पाएं

ऑडियो और वीडियो को पूरी तरह अपने Mac पर ही ट्रांसक्राइब करें। कुछ भी अपलोड नहीं होता, कोई अकाउंट नहीं, और प्रति मिनट का कोई मीटर नहीं।

macOS 13.0 or higher · iOS 16.4 or higher