منصوبے کے بارے میں
## پروجیکٹ کا جائزہ
AirPods Voice ان پٹ طریقہ ایک نیٹو macOS مینو بار ایپ ہے جو AirPods کے سنگل کلک اشارے سے صوتی ان پٹ کنٹرول کرتی ہے: ایک بار کلک کریں تو ریکارڈنگ شروع، دوبارہ کلک کریں تو رکیں، متن کی تصدیق کریں اور خودکار بھیجیں، پورے عمل میں کی بورڈ کو چھونے کی ضرورت نہیں۔ موجودہ مستحکم ورژن 1.0 ہے۔
## اہم خصوصیات
- AirPods پر ایک کلک سے صوتی ان پٹ شروع کریں، دوبارہ کلک سے رکیں اور خودکار بھیجیں۔
- مسلسل متعدد راؤنڈز کی حمایت، ہر راؤنڈ کے بعد دوبارہ شروع کرنے کے قابل فارغ حالت میں واپس۔
- بلٹ ان مائیکروفون اور AirPods مائیکروفون دونوں کے ساتھ مطابقت، ایپ کی ترتیبات تبدیل کرنے کی ضرورت نہیں۔
- بطور ڈیفالٹ طویل دباؤ `Fn` کی نقل، Control، Option، Command، Shift یا F1–F12 میں بھی ترتیب دیا جا سکتا ہے۔
- مینو بار اور کنٹرول ونڈو میں چلنے کی حالت، شروع، بند، استعمال کی ہدایات اور اختتام دستیاب۔
- ہر بار ایپ کھولنے پر کنٹرول ونڈو ظاہر، بند کرنے کے بعد مینو بار میں چلتی رہتی ہے۔
- فزیکل کی بورڈ ان پٹ خودکار طور پر نامکمل صوتی کلید کو روک دیتا ہے، تاکہ موڈیفائر کلیدیں ٹرمینل یا ٹو ڈو سافٹ ویئر پر اثر نہ ڈالیں۔
- ڈاک پر قبضہ نہیں، 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.