- Triforce Apple Silicon लैपटॉप के microphone array को macOS के बाहर भी उपयोग करने के लिए Rust-आधारित adaptive beamformer है
- समर्थित डिवाइस केवल M1/M2 MacBook Air·Pro 13", M2 MacBook Air 15", M1/M2 Pro·Max MacBook Pro 14"·16" तक सीमित हैं
- इन डिवाइसों के triangular या linear microphone array beamforming के बिना बहुत अधिक sensitive और omnidirectional होते हैं, इसलिए इच्छित signal separation कठिन होता है
- इसकी संरचना dependencies को न्यूनतम रखने की कोशिश करती है, ताकि Cargo.lock में निर्दिष्ट crate के अलावा केवल LV2 ही आवश्यक हो
- मौजूदा implementation से Apple के implementation को पीछे छोड़ने की उम्मीद करना कठिन है, और SIMD/NEON की अनुपस्थिति के कारण wideband decomposition तथा stereo output समर्थित नहीं हैं
Apple Silicon microphone array के लिए beamformer
- Triforce Apple Silicon लैपटॉप के microphone array के लिए Minimum Variance Distortionless Response adaptive beamformer को implement करता है
- समर्थित डिवाइस इस प्रकार हैं
- MacBook Pro 13" (M1/M2)
- MacBook Air 13" (M1/M2)
- MacBook Pro 14" (M1 Pro/Max, M2 Pro/Max)
- MacBook Pro 16" (M1 Pro/Max, M2 Pro/Max)
- MacBook Air 15" (M2)
- लक्षित लैपटॉप के microphone array triangular या linear रूप में व्यवस्थित हैं
- beamforming के बिना यह array बहुत अधिक sensitive और omnidirectional तरीके से काम करता है, जिससे इसकी उपयोगिता घट जाती है; macOS के बाहर इसका उपयोग करने के लिए beamformer आवश्यक है
- Cargo.lock में निर्दिष्ट crate के अलावा अतिरिक्त आवश्यक dependency LV2 है
implementation की स्थिति और ज्ञात सीमाएँ
- DSP और wideband adaptive beamforming से संबंधित सुलभ साहित्य ढूँढना कठिन होने के कारण, मौजूदा implementation इंजीनियरिंग गणित के प्रथम वर्ष स्तर और कई web pages·PDF से प्राप्त सिद्धांतों पर आधारित एक प्रयास है
- Apple के implementation से बेहतर प्रदर्शन की उम्मीद करना कठिन है, और improvement patches का स्वागत है
- ज्ञात सीमाएँ इस प्रकार हैं
- nalgebra स्पष्ट SIMD optimization नहीं करता और LLVM auto-vectorization पर निर्भर रहता है, इसलिए matrix math routines का performance और efficiency अच्छे नहीं हैं
- SIMD/NEON समर्थन के बिना यह real-time audio plugin के लिए बहुत धीमा है, इसलिए wideband decomposition नहीं करता
- output केवल mono को support करता है, और fake stereo output के लिए अतिरिक्त matrix processing की गणना-लागत बहुत अधिक है
- crates.io के आँकड़ों के अनुसार कुल downloads 4,247 हैं, और प्रकाशित versions की संख्या 7 है
1 टिप्पणियां
Hacker News की रायें
बैकग्राउंड समझाने वाला ब्लॉग पोस्ट यहाँ है: https://asahilinux.org/2025/03/progress-report-6-14/#is-this...
20 साल से भी पहले इस्तेमाल होने वाले Toshiba Tablet PC convertible में माइक्रोफोन beamforming array था, और उसमें यह तय करने के लिए software भी शामिल था कि किस दिशा से आने वाली आवाज़ रिकॉर्ड करनी है
मुख्य उपयोग lecture recording था, और beam को laptop के पीछे professor की दिशा में मोड़कर सिर्फ उसी तरफ की आवाज़ रिकॉर्ड करने के लिए सेट किया जा सकता था
कमाल का idea था, लेकिन उसके बाद मैंने इसे नहीं देखा
यह भी शानदार idea था, और इसी तरह के products अभी भी आते हैं: https://electronics.sony.com/imaging/imaging-accessories/all...
Meeting room microphone array यह पहचानता है कि कौन बोल रहा है और उस व्यक्ति का audio अलग कर देता है
बड़े meeting room video conferencing में लंबे समय से कई microphones के noise को mix होने से बचाने के लिए उस समय सबसे loud microphone चुना जाता रहा है, और इसमें beamforming जोड़ देने से यह काफी बेहतर हो जाता है
अगर microphones body में नहीं बल्कि screen plane में थे, तो लगता है वह “सामने” और “ठीक पीछे” में फर्क नहीं कर पाता होगा
इसके कई अच्छे उपयोग हो सकते हैं, जैसे autonomous car का झाड़ियों के पार पैदल यात्री को “देखना”, आती हुई emergency vehicle को जल्दी detect करना, और bicycle दिखने से पहले उसकी आवाज़ सुन लेना
हमेशा सोचता रहा कि उन्होंने इसे कैसे implement किया होगा
मेरी अधूरी रह गई master’s thesis भी इसी तरह के topic पर थी
लगभग हर smartphone में कम से कम 2 microphones होते हैं, इसका उपयोग करके मैं speaker की 3D localization और separation करने की कोशिश कर रहा था
जो सीख मिली वह यह है: devices के बीच sampling rate थोड़ा mismatch करता है, लगभग प्रति सेकंड ±1 sample के आसपास, बहुत बड़ा नहीं है लेकिन ध्यान में रखना पड़ता है
Consumer microphones की spectral characteristics अलग-अलग होती हैं, इसलिए एक ही model के दो phones को बॉक्स से निकालने पर भी न सिर्फ measurable difference, बल्कि सुनाई देने वाला फर्क भी होता है
आवाज़ खासकर concrete walls समेत हर तरह की सतहों से reflect होती है
आसानी से उपलब्ध चीज़ों में car के अंदर का हिस्सा anechoic chamber के सबसे करीब है
Gaussian का Fourier transform Gaussian होता है, इसलिए voice जैसे harmonic signal की frequency estimate करते समय, जब wavelength window length के आधे से थोड़ी कम होती है, यह बहुत उपयोगी होता है
ज़मीन के अलावा reflect होने के लिए कुछ नहीं था, और हो सकता है उसने experiment के नीचे foam भी बिछाया हो
बेशक यह ambient noise नहीं हटाता, लेकिन अपने equipment से आने वाले reflections कम करने में काफी कारगर बताया गया
इससे एहसास होता है कि Apple Silicon Mac पर Linux चलाने के लिए छोटी दिखने वाली चीज़ों में भी कितना काम लगता है
यहाँ “छोटी” शब्द मैं पूरी इज़्ज़त के साथ कह रहा हूँ। Built-in microphone लगभग तब तक इस्तेमाल नहीं होता जब तक headset भूलकर न आएँ
Progress report (https://asahilinux.org/2025/03/progress-report-6-14/#is-this...) से quote करें तो: “फिर भी यह Apple है। कुछ भी simple नहीं है”
अलग arm वाला wraparound mic headphone हो तो शायद बेहतर हो, लेकिन रोज़मर्रा के headphones में microphone position की वजह से सीमाएँ होती हैं
MBP microphone में अच्छा noise cancellation भी है, इसलिए मैं इसे ज्यादातर headset boom microphones से बेहतर मानता हूँ
Chewing gum चबाने या coffee पीने जैसी अनावश्यक mouth-adjacent sounds कम पकड़ने का भी फायदा है
Meeting करने वाले 99% लोग general headphones और MBP microphone वाला combo इस्तेमाल करते लगते हैं
इस setup की मुख्य समस्या यह है कि headphones में अपनी आवाज़ सुनाई नहीं देती, और noise-cancelling headphones इस्तेमाल करने पर यह कभी-कभी काफी परेशान कर सकता है
हालांकि Apple कुछ समय से अपने ही बनाए हुए रास्ते से भी हट रहा है
मुख्य बात यह है कि Apple की बनाई हर चीज़ vertically integrated है
AirDrop या Continuity जैसी features देने के लिए वे पूरे stack में implementation करते हैं
DIY path, यानी Asahi वास्तव में जिस तरीके की ओर बढ़ता है, चुनने पर missing software pieces भी खुद बनाने पड़ते हैं
फायदा यह है कि उस काम का लाभ पूरे ecosystem को मिल सकता है। उदाहरण के लिए PipeWire का नया DSP ऐसा ही है
PC hardware आम तौर पर बहुत अच्छा नहीं है, और इन extra components को हटा दें तो Apple hardware भी वैसा ही है
लेकिन “पूरा package” standard को काफी ऊँचा कर चुका है, और मैं देखना चाहता हूँ कि free open-source ecosystem उस standard तक पहुँचे
कुछ शुरुआती Retina MacBook Pro में सिर्फ 2-microphone array है, लेकिन ज्यादातर में पूरा 3-microphone array है
वरना यह बहुत पुराने low-bitrate codec mode में गिर जाता है, जिससे कानों में सुनाई देने वाला audio input भी भयानक हो जाता है
इसलिए जहाँ संभव हो मैं हमेशा Mac microphone इस्तेमाल करता हूँ
सस्ते laptop hardware पर भी, और ज़ाहिर है MBP जैसे high-end hardware पर भी, software DSP techniques से हैरान कर देने वाले अच्छे नतीजे मिल सकते हैं
मुझे यह बात पसंद है कि Asahi का काफी audio काम सिर्फ Mac ही नहीं, आम laptops पर भी लगभग वैसे ही लागू किया जा सकता है
मैं पहले से ही Asahi के लिए विकसित Bankstown bass harmonic synthesis plugin और convolution equalizer एक सस्ते HP laptop पर इस्तेमाल कर रहा/रही हूँ, और नतीजे आश्चर्यजनक रूप से प्रभावशाली हैं
यह भी Asahi के लिए विकसित PipeWire plugin chain auto-load feature का इस्तेमाल करता है
यह beamformer भी Asahi ecosystem के बाहर काफी जगह काम आ सकता है
SIMD optimization के संदर्भ में authors को faer देखना चाहिए
इसकी base library pulp के साथ मेरा निजी अनुभव बहुत अच्छा नहीं रहा, क्योंकि वह linear algebra के दायरे से बाहर के काम करने की कोशिश करती है, लेकिन अगर लक्ष्य मुख्य रूप से linear algebra operations को तेज करना है तो यह अच्छी तरह फिट हो सकती है
मैं Rust SIMD पर एक blog post और संबंधित podcast तैयार कर रहा/रही हूँ, और उसमें इस विषय को कवर करने वाला/वाली हूँ
[1]: https://docs.rs/faer/latest/faer/
GitHub repository: https://github.com/chadmed/triforce
“निम्न Apple Silicon laptops में मौजूद microphone array” कहते हुए MacBook Pro 13" M1/M2, MacBook Air 13" M1/M2, MacBook Pro 14" M1 Pro/Max·M2 Pro/Max, MacBook Pro 16" M1 Pro/Max·M2 Pro/Max, MacBook Air 15" M2 को सूचीबद्ध किया गया है; मुझे जिज्ञासा है कि इसका मतलब है कि M2/M3 में समान microphone array नहीं है, या बस उनका test नहीं हुआ है
यह भी जानना है कि क्या यह सिर्फ Linux पर supported है
मुझे ठीक से नहीं पता कि macOS पर भी यह संभव है या नहीं, और Apple हर microphone के लिए dedicated stream देता है या नहीं
macOS अंदर से बहुत मिलती-जुलती beamforming calculation करता है, और user को सिर्फ एक unified microphone के रूप में दिखाता है
M3 को Asahi Linux अभी support नहीं करता, इसलिए सूची में न होना इस बात से अलग मुद्दा है कि M3 में ऐसे microphones हैं या नहीं
macOS के system के भीतर गहराई में इसे संभालने वाला अपना software है, और applications को यह सिर्फ सामान्य microphone के रूप में expose होता है
नवीनतम Asahi Linux progress report में अधिक सामान्य चर्चा है
“दुर्भाग्य से, PDM microphones बहुत omnidirectional और बहुत sensitive होते हैं। किसी न किसी रूप में beamforming के बिना काम नहीं चल सकता”
https://asahilinux.org/2025/03/progress-report-6-14/
यह भी पता चला कि speaker output के लिए पहले किया गया कुछ काम microphone input में भी reuse हुआ
“Speaker support के लिए PipeWire और WirePlumber में रखी गई foundation की बदौलत, Triforce सहित DSP chains को microphone से जोड़ना सचमुच आसान था। बस configuration files update करनी थीं और बाकी WirePlumber को संभालने देना था!”
“Speakers की तरह, Apple यहाँ भी बहुत ज्यादा fancy बनने की कोशिश कर रहा है” इस वाक्य पर, अगर इस package के author अपनी राय दें तो सच में दिलचस्प होगा
खासकर यह जानना चाहूँगा/चाहूँगी कि वे speaker implementation के बारे में क्या सोचते हैं
कौन-सी चीज़ जरूरत से ज्यादा जटिल है? hardware, या software?
MBP user और hobby के तौर पर audio से जुड़े व्यक्ति के रूप में, खासकर बड़े MBP models का speaker implementation मुझे सच में प्रभावशाली लगा
हालांकि मैं सिर्फ hobby level पर हूँ, और tweeter व dual opposed woofer configuration के अलावा ज्यादा नहीं जानता/जानती
छोटे speakers से ठीक-ठाक performance और bass extension निकालने के लिए “अच्छे” Bluetooth speaker designers जो adaptive equalizer जैसी तरकीबें इस्तेमाल करते हैं, Apple भी वैसा ही कुछ करता दिखता है
समस्याओं में से एक यह है कि overheating रोकने के लिए power usage limit करना हो तो sophisticated DSP चाहिए
उसके बिना safe limits के भीतर निकाली जा सकने वाली volume बहुत सीमित होती है
और जानना हो तो शायद यह सबसे अच्छा overview है: https://github.com/AsahiLinux/asahi-audio
यह कई generations से सच रहा है
जब मैं 2014 MBP इस्तेमाल करता/करती था, तब भी चलते-फिरते movie देखते समय कई दोस्त sound से हैरान हो जाते थे
M4 MBP में भी ऐसा ही है; speaker quality असल जरूरत से भी ज्यादा स्तर की है
आजकल कम-से-कम premium hardware में speakers का “spatial audio” और beamforming microphones standard जैसे लगने लगे हैं
dull, noisy, cramped और unbalanced audio अब नहीं चलेगा