इस प्रोजेक्ट के बारे में
## प्रोजेक्ट अवलोकन
AirPods Voice इनपुट विधि एक नेटिव macOS मेन्यू बार ऐप है, जो AirPods के सिंगल-क्लिक इशारे से वॉइस इनपुट नियंत्रित करता है: एक बार क्लिक करने पर रिकॉर्डिंग शुरू होती है, दोबारा क्लिक करने पर रुकती है, टेक्स्ट की पुष्टि होती है और स्वतः भेज दिया जाता है, पूरी प्रक्रिया में कीबोर्ड छूने की ज़रूरत नहीं। वर्तमान स्थिर संस्करण 1.0 है।
## मुख्य विशेषताएँ
- AirPods पर एक क्लिक से वॉइस इनपुट शुरू करें, दोबारा क्लिक से रोकें और स्वतः भेजें।
- लगातार कई राउंड के उपयोग का समर्थन; हर राउंड के बाद फिर से शुरू करने योग्य निष्क्रिय स्थिति में लौटता है।
- अंतर्निहित माइक्रोफ़ोन और AirPods माइक्रोफ़ोन दोनों के साथ संगत, ऐप सेटिंग्स बदलने की ज़रूरत नहीं।
- डिफ़ॉल्ट रूप से लंबे समय तक `Fn` दबाने की नकल करता है, इसे Control, Option, Command, Shift या F1–F12 के रूप में भी कॉन्फ़िगर किया जा सकता है।
- मेन्यू बार और नियंत्रण विंडो में चालू स्थिति, प्रारंभ, रोकें, उपयोग निर्देश और बाहर निकलें उपलब्ध हैं।
- हर बार ऐप खोलने पर नियंत्रण विंडो दिखती है, बंद करने के बाद ऐप मेन्यू बार में चलता रहता है।
- भौतिक कीबोर्ड इनपुट अपने आप अधूरे वॉइस की-प्रेस को रोक देता है, ताकि मॉडिफ़ायर कीज़ टर्मिनल या टू-डू सॉफ़्टवेयर को प्रभावित न करें।
- Dock पर कब्ज़ा नहीं करता, BetterTouchTool जैसे तृतीय-पक्ष ऑटोमेशन सॉफ़्टवेयर पर निर्भर नहीं।
- Apple Silicon और Intel Mac दोनों का समर्थन, न्यूनतम आवश्यकता macOS 13।
## उपयोग की पूर्व शर्तें
अपनी वॉइस इनपुट विधि में वॉइस इनपुट शॉर्टकट को "लंबे समय तक Fn दबाएँ" पर सेट करना आवश्यक है। README बताता है कि 1.0 में Doubao इनपुट विधि के साथ भौतिक AirPods पर कई राउंड का सत्यापन पूरा किया गया है; अन्य इनपुट विधियों को "शॉर्टकट दबाकर रखें तो रिकॉर्डिंग, छोड़ें तो समाप्त" व्यवहार का समर्थन करना चाहिए।
ऐप चलने के दौरान AirPods के प्ले/पॉज़ सिंगल-क्लिक पर नियंत्रण ले लेता है, इसलिए उस समय सिंगल-क्लिक से संगीत नियंत्रित नहीं किया जा सकता; ऐप रोकने या बंद करने के बाद मीडिया नियंत्रण बहाल हो जाता है।
## इंस्टॉलेशन और अनुमतियाँ
GitHub Releases से PKG इंस्टॉलर डाउनलोड करें, इसे `/Applications/AirPods Voice 输入法.app` में इंस्टॉल करें। इंस्टॉलर स्वतः पुराने परीक्षण संस्करण को रोककर हटा देता है, ताकि दो संस्करण एक साथ AirPods पर नियंत्रण न लें। वर्तमान इंस्टॉलर ad-hoc हस्ताक्षरित है; यदि macOS इसे रोकता है तो Finder में राइट-क्लिक करके "खोलें" चुनें।
ऐप को macOS "एक्सेसिबिलिटी" अनुमति अवश्य मिलनी चाहिए, तभी यह लंबे समय तक वॉइस की दबाने और एंटर भेजने की नकल कर सकता है। अनुमति ऐप को ही दी जाती है, टर्मिनल या डेवलपमेंट टूल्स को देने की ज़रूरत नहीं, और पूर्ण डिस्क एक्सेस की भी ज़रूरत नहीं; ऐप स्वयं माइक्रोफ़ोन एकत्र नहीं करता, माइक्रोफ़ोन अनुमति उपयोगकर्ता द्वारा चुनी गई वॉइस इनपुट विधि द्वारा प्रबंधित होती है।
## कार्य सिद्धांत (README विवरण)
ऐप `MPRemoteCommandCenter` के माध्यम से Now Playing सत्र रखता है और AirPods सिंगल-क्लिक प्राप्त करता है, केवल `com.apple.bluetoothd` या `com.apple.cloudpaird` स्रोत से आने वाली मीडिया घटनाओं को स्वीकार करता है; कीबोर्ड प्ले की जैसे अन्य स्रोत वॉइस शुरू नहीं करेंगे। AirPods माइक्रोफ़ोन कॉल ऑडियो मोड में जाने के बाद, दूसरा क्लिक `bluetoothd` द्वारा Software Mute के रूप में रिपोर्ट होता है, ऐप इसे केवल अपने शुरू किए गए वॉइस सत्र में रोकने और भेजने के संकेत के रूप में उपयोग करता है। IOHID मॉनिटरिंग बैकअप चैनल के रूप में काम करती है, एक ही भौतिक क्रिया को 350ms विंडो से डी-डुप्लिकेट किया जाता है।
पहला क्लिक `IOHIDPostEvent` के माध्यम से एक बार Fn सक्रिय करता है; दूसरा क्लिक रिकॉर्डिंग सत्र समाप्त करता है और क्रमशः दो बार एंटर भेजता है, पहली बार इनपुट विधि का संयोजित टेक्स्ट पुष्ट करता है, दूसरी बार संदेश भेजता है।
शॉर्टकट-संवेदनशील ऐप्स पर वैश्विक मॉडिफ़ायर कीज़ के प्रभाव से बचने के लिए, 1.0 में तीन-स्तरीय सुरक्षा जोड़ी गई है: शुरू होते समय पुराने शेष Fn को साफ़ करना; वॉइस के दौरान भौतिक कीबोर्ड इनपुट का पता चलने पर पहले वॉइस मॉडिफ़ायर हटाना और तुरंत वॉइस समाप्त करना; ऐप के असामान्य रूप से बंद होने पर एक स्वतंत्र डेमन प्रक्रिया द्वारा Fn जारी करना। सामान्य रोकने, फ़ोरग्राउंड ऐप बदलने, 5 मिनट की सुरक्षा टाइमआउट या ऐप बंद होने पर केवल की जारी होती है, गलती से भेजा नहीं जाता।
## कॉन्फ़िगरेशन और लॉग
डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल `config/voice-key` है, जिसकी सामग्री `fn` है; इसे control, option, command, shift या f1–f12 में बदला जा सकता है, बदलाव के बाद स्क्रिप्ट को पुनः आरंभ करना आवश्यक है। सोर्स कोड चलाते समय पर्यावरण चर के माध्यम से अस्थायी रूप से भी निर्दिष्ट किया जा सकता है।
लॉग `/tmp/airpods-voice-input-method/` के अंतर्गत app.log, app.stdout.log और app.stderr.log में स्थित हैं; `pgrep -fl airpods-voice-input-method` से प्रक्रिया की पुष्टि करें, और `./scripts/stop.sh` से सुरक्षित रूप से रोकें और वॉइस की जारी करें।
## बिल्ड और परीक्षण
`scripts/build.sh` यूनिवर्सल ऐप बनाता है, `scripts/package-release.sh` PKG बनाता है, और Developer ID प्रमाणपत्र निर्दिष्ट करने का समर्थन करता है। परीक्षण स्क्रिप्ट चार-राउंड वॉइस इंटरैक्शन, Fn उपभोग, कीबोर्ड सुरक्षा, क्रैश रिकवरी जैसे रिग्रेशन परिदृश्यों को कवर करती हैं; साथ ही `tests/hitl-two-cycle.sh` भौतिक AirPods के मानव सत्यापन के लिए है।
## लाइसेंस
सोर्स कोड PolyForm Noncommercial 1.0.0 लाइसेंस के अंतर्गत है, जो source-available है, OSI-परिभाषित ओपन सोर्स लाइसेंस नहीं; व्यक्तिगत अध्ययन, अनुसंधान और गैर-व्यावसायिक उपयोग की अनुमति है, व्यावसायिक उपयोग के लिए अलग से प्राधिकरण आवश्यक है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.