1 पॉइंट द्वारा GN⁺ 2025-03-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
GN⁺ 2025-03-25
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 था, लेकिन उसके बाद मैंने इसे नहीं देखा

    • Mini camcorder के दौर में कुछ Sony Handycam में “zoom” microphone होता था, जो beamforming से लगभग उसी range की आवाज़ पकड़ता था जिसे sensor देख रहा होता था
      यह भी शानदार idea था, और इसी तरह के products अभी भी आते हैं: https://electronics.sony.com/imaging/imaging-accessories/all...
    • High-end video conferencing equipment में यह व्यापक रूप से इस्तेमाल होता है
      Meeting room microphone array यह पहचानता है कि कौन बोल रहा है और उस व्यक्ति का audio अलग कर देता है
      बड़े meeting room video conferencing में लंबे समय से कई microphones के noise को mix होने से बचाने के लिए उस समय सबसे loud microphone चुना जाता रहा है, और इसमें beamforming जोड़ देने से यह काफी बेहतर हो जाता है
    • मुझे जिज्ञासा है कि वह कैसे काम करता था
      अगर microphones body में नहीं बल्कि screen plane में थे, तो लगता है वह “सामने” और “ठीक पीछे” में फर्क नहीं कर पाता होगा
    • एक idea है जिसके बारे में मैं कई सालों से सोच रहा हूँ, लेकिन compute resources कम होने के कारण test नहीं कर पाया: microphone array और LIDAR को ground-truth data के रूप में इस्तेमाल करके, सिर्फ microphone data के signal transformation को condition बनाते हुए एक diffusion model train करना, जो “कल्पना” करे कि दुनिया कैसी दिखती होगी
      इसके कई अच्छे उपयोग हो सकते हैं, जैसे autonomous car का झाड़ियों के पार पैदल यात्री को “देखना”, आती हुई emergency vehicle को जल्दी detect करना, और bicycle दिखने से पहले उसकी आवाज़ सुन लेना
    • Samsung S10 के बाद से zoom mode में video recording करते समय यह feature मौजूद है
      हमेशा सोचता रहा कि उन्होंने इसे कैसे 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 के आधे से थोड़ी कम होती है, यह बहुत उपयोगी होता है

    • “आसानी से उपलब्ध चीज़ों में car का अंदरूनी हिस्सा anechoic chamber के सबसे करीब है” वाली बात पर, मुझे याद है कि किसी YouTuber ने anechoic chamber की समस्या हल करने के लिए एक बड़ा खाली मैदान खोजा था
      ज़मीन के अलावा reflect होने के लिए कुछ नहीं था, और हो सकता है उसने experiment के नीचे foam भी बिछाया हो
      बेशक यह ambient noise नहीं हटाता, लेकिन अपने equipment से आने वाले reflections कम करने में काफी कारगर बताया गया
    • कपड़ों से भरी carpeted closet car से बेहतर नहीं होगी?
    • Gaussian वाली बात समझ में आती है, लेकिन क्या आप उसका मुख्य point थोड़ा और detail में समझा सकते हैं
  • इससे एहसास होता है कि Apple Silicon Mac पर Linux चलाने के लिए छोटी दिखने वाली चीज़ों में भी कितना काम लगता है
    यहाँ “छोटी” शब्द मैं पूरी इज़्ज़त के साथ कह रहा हूँ। Built-in microphone लगभग तब तक इस्तेमाल नहीं होता जब तक headset भूलकर न आएँ
    Progress report (https://asahilinux.org/2025/03/progress-report-6-14/#is-this...) से quote करें तो: “फिर भी यह Apple है। कुछ भी simple नहीं है”

    • Built-in microphone असल में शानदार है, और AirPods Pro पहने होने पर भी sound quality कहीं बेहतर होने के कारण मैं अक्सर built-in microphone इस्तेमाल करता हूँ
      अलग 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 इस्तेमाल करने पर यह कभी-कभी काफी परेशान कर सकता है
    • Product के रूप में मिला पूरा package जस का तस इस्तेमाल करें तो simple जरूर है
      हालांकि 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 तक पहुँचे
    • 3-microphone array Intel-based Retina MacBook में भी है, इसलिए यह काम उस पुराने hardware के proper audio support के लिए भी उपयोगी हो सकता है
      कुछ शुरुआती Retina MacBook Pro में सिर्फ 2-microphone array है, लेकिन ज्यादातर में पूरा 3-microphone array है
    • ज्यादातर microphones अभी भी Bluetooth 5.0 इस्तेमाल करते हैं, इसलिए headset पहने होने पर भी मैं Mac microphone इस्तेमाल करता हूँ
      वरना यह बहुत पुराने 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 देता है या नहीं

    • यह Asahi Linux के लिए बनाया गया है
      macOS अंदर से बहुत मिलती-जुलती beamforming calculation करता है, और user को सिर्फ एक unified microphone के रूप में दिखाता है
    • सूची में M2 devices शामिल हैं
      M3 को Asahi Linux अभी support नहीं करता, इसलिए सूची में न होना इस बात से अलग मुद्दा है कि M3 में ऐसे microphones हैं या नहीं
      macOS के system के भीतर गहराई में इसे संभालने वाला अपना software है, और applications को यह सिर्फ सामान्य microphone के रूप में expose होता है
    • Asahi Linux अभी M3 और M4 processors को support नहीं करता
  • नवीनतम 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 भी वैसा ही कुछ करता दिखता है

    • Asahi Linux में अच्छा speaker support हासिल करना बड़ा काम था
      समस्याओं में से एक यह है कि overheating रोकने के लिए power usage limit करना हो तो sophisticated DSP चाहिए
      उसके बिना safe limits के भीतर निकाली जा सकने वाली volume बहुत सीमित होती है
      और जानना हो तो शायद यह सबसे अच्छा overview है: https://github.com/AsahiLinux/asahi-audio
    • “Speakers की तरह Apple बहुत ज्यादा fancy बनता है” से लगता है कि मतलब यह है कि Apple laptop speakers competitors से काफी आगे हैं
      यह कई generations से सच रहा है
      जब मैं 2014 MBP इस्तेमाल करता/करती था, तब भी चलते-फिरते movie देखते समय कई दोस्त sound से हैरान हो जाते थे
      M4 MBP में भी ऐसा ही है; speaker quality असल जरूरत से भी ज्यादा स्तर की है
    • बिना कोई value judgment दिए अनुमान लगाऊँ तो, शायद इशारा इस बात की ओर है कि ऐसे software के बिना यह ठीक से काम नहीं करता
    • यह package शायद उन लोगों के लिए है जो laptop पर Linux distribution इस्तेमाल करते हुए native macOS जैसी functionality चाहते हैं
    • मैं भी उलझन में हूँ
      आजकल कम-से-कम premium hardware में speakers का “spatial audio” और beamforming microphones standard जैसे लगने लगे हैं
      dull, noisy, cramped और unbalanced audio अब नहीं चलेगा