প্রকল্প সম্পর্কে
## প্রকল্প পরিচিতি
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 সংস্করণ ডাবাও ইনপুট পদ্ধতিতে ফিজিক্যাল 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.