1 poin oleh GN⁺ 2025-03-25 | 1 komentar | Bagikan ke WhatsApp
  • Triforce adalah beamformer adaptif berbasis Rust untuk memanfaatkan susunan mikrofon pada laptop Apple Silicon di luar macOS
  • Dukungan terbatas pada MacBook Air/Pro 13" M1/M2, MacBook Air 15" M2, serta MacBook Pro 14"/16" M1/M2 Pro·Max
  • Susunan mikrofon segitiga atau linear pada perangkat ini terlalu sensitif dan omnidirectional tanpa beamforming, sehingga sulit memisahkan sinyal yang diinginkan
  • Dependensi diminimalkan agar selain crate yang tercantum di Cargo.lock, hanya membutuhkan LV2
  • Implementasi saat ini sulit diharapkan melampaui implementasi Apple, dan tanpa SIMD/NEON tidak mendukung dekomposisi wideband maupun output stereo

Beamformer untuk susunan mikrofon Apple Silicon

  • Triforce mengimplementasikan beamformer adaptif Minimum Variance Distortionless Response untuk susunan mikrofon pada laptop Apple Silicon
  • Perangkat yang didukung adalah sebagai berikut
    • 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)
  • Susunan mikrofon pada laptop target disusun dalam bentuk segitiga atau garis lurus
  • Jika digunakan tanpa beamforming, susunan ini terlalu sensitif dan bekerja secara omnidirectional sehingga kurang berguna; untuk memanfaatkannya di luar macOS diperlukan beamformer
  • Selain crate yang ditentukan di Cargo.lock, dependensi tambahan yang dibutuhkan adalah LV2

Status implementasi dan keterbatasan yang diketahui

  • Karena sulit menemukan literatur yang mudah diakses tentang DSP dan beamforming adaptif wideband, implementasi saat ini merupakan upaya yang didasarkan pada matematika rekayasa tingkat tahun pertama sarjana serta prinsip-prinsip yang diperoleh dari berbagai halaman web dan PDF
  • Sulit mengharapkan performanya lebih baik daripada implementasi Apple, dan patch perbaikan sangat diterima
  • Keterbatasan yang diketahui adalah sebagai berikut
    • nalgebra tidak melakukan optimasi SIMD eksplisit dan bergantung pada auto-vectorization LLVM, sehingga performa dan efisiensi rutin matematika matriks kurang baik
    • Tanpa dukungan SIMD/NEON, performanya terlalu lambat untuk plugin audio real-time sehingga dekomposisi wideband tidak dilakukan
    • Output hanya mendukung mono, dan pemrosesan matriks tambahan untuk output stereo palsu memiliki beban komputasi yang terlalu besar
  • Menurut statistik crates.io, total unduhan mencapai 4.247 kali, dan ada 7 versi yang telah dipublikasikan

1 komentar

 
GN⁺ 2025-03-25
Komentar Hacker News
  • Ada tulisan blog yang berisi penjelasan latar belakang di sini: https://asahilinux.org/2025/03/progress-report-6-14/#is-this...

  • Toshiba Tablet PC convertible yang saya pakai lebih dari 20 tahun lalu punya array beamforming mikrofon, dan juga dilengkapi perangkat lunak untuk menentukan dari arah mana suara akan direkam
    Kegunaan utamanya untuk merekam kuliah, dan bisa diatur agar beam diarahkan ke belakang laptop, ke arah dosen, sehingga hanya suara dari sana yang direkam
    Ide yang luar biasa, tapi sejak itu saya belum pernah melihatnya lagi

    • Pada masa kejayaan mini camcorder, beberapa Sony Handycam punya mikrofon “zoom”, dan menggunakan beamforming untuk hanya mengumpulkan suara dari area yang kira-kira sesuai dengan bidang yang dilihat sensor
      Ini juga ide yang hebat, dan produk serupa masih ada: https://electronics.sony.com/imaging/imaging-accessories/all...
    • Ini banyak dipakai di perangkat konferensi video kelas atas
      Array mikrofon ruang rapat mendeteksi siapa yang sedang berbicara lalu memisahkan audio orang tersebut
      Konferensi video di ruang rapat besar sejak lama sudah memilih mikrofon yang paling keras saat itu agar noise dari banyak mikrofon tidak tercampur, dan beamforming membuatnya jauh lebih baik
    • Saya penasaran bagaimana itu bekerja
      Jika mikrofonnya ada di bidang layar, bukan di badan perangkat, sepertinya tidak akan bisa membedakan “depan” dan “tepat di belakang”
    • Ada ide yang sudah beberapa tahun cuma saya pikirkan karena kurang sumber daya komputasi untuk mengujinya: melatih model difusi untuk “membayangkan” seperti apa dunia berdasarkan array mikrofon dan LIDAR sebagai ground truth, dengan hanya memakai transformasi sinyal dari data mikrofon sebagai kondisi
      Bisa punya banyak kegunaan bagus, seperti mobil otonom yang “melihat” pejalan kaki di balik semak, mendeteksi kendaraan darurat yang mendekat lebih awal, dan mendengar sepeda sebelum terlihat
    • Sejak Samsung S10, fitur ini ada saat merekam video dalam mode zoom
      Saya selalu penasaran bagaimana mereka mengimplementasikannya
  • Tesis master yang pada akhirnya tidak pernah saya selesaikan membahas topik yang mirip
    Saya mencoba melokalisasi dan memisahkan pembicara dalam estimasi posisi 3D dengan memanfaatkan fakta bahwa hampir semua smartphone punya setidaknya 2 mikrofon
    Pelajaran yang saya dapat seperti ini: laju sampling antarperangkat sedikit meleset, kira-kira sekitar ±1 sampel per detik, jadi tidak besar tetapi tetap harus diperhitungkan
    Karakteristik spektral mikrofon konsumen sangat beragam, jadi bahkan dua ponsel model yang sama yang baru dikeluarkan dari kotaknya pun punya perbedaan yang bukan hanya terukur tetapi juga terdengar
    Suara memantul dari segala macam permukaan, terutama dinding beton
    Dari tempat yang mudah diakses, interior mobil adalah yang paling mendekati ruang anekoik
    Transformasi Fourier dari Gaussian adalah Gaussian, jadi ini sangat berguna saat memperkirakan frekuensi sinyal harmonik seperti suara, ketika panjang gelombangnya sedikit lebih pendek daripada setengah panjang jendela

    • Soal bagian “interior mobil adalah yang paling mendekati ruang anekoik di antara tempat yang mudah diakses”, saya ingat ada YouTuber yang menyelesaikan masalah ruang anekoik dengan mencari lapangan terbuka besar yang kosong
      Tidak ada yang memantulkan selain tanah, dan mungkin mereka juga meletakkan busa di bawah eksperimennya
      Tentu itu tidak menghilangkan noise lingkungan, tetapi katanya cukup efektif untuk mengurangi pantulan dari peralatan mereka sendiri
    • Bukankah lemari berkarpet yang penuh pakaian akan lebih baik daripada mobil
    • Saya mengerti bagian tentang Gaussian, tapi bisakah inti maksudnya dijelaskan sedikit lebih rinci
  • Ini membuat saya sadar betapa banyak pekerjaan yang dibutuhkan untuk menjalankan Linux di Apple Silicon Mac, bahkan untuk hal-hal yang tampaknya sepele
    Kata “sepele” di sini saya pakai dengan penuh hormat. Saya hampir tidak pernah memakai mikrofon bawaan kecuali kalau lupa membawa headset
    Mengutip laporan progres(https://asahilinux.org/2025/03/progress-report-6-14/#is-this...): “Tetap saja ini Apple. Tidak ada yang sederhana”

    • Mikrofon bawaan sebenarnya sangat bagus, jadi bahkan saat memakai AirPods Pro pun saya sering menggunakan mikrofon bawaan karena kualitas suaranya jauh lebih baik
      Headphone dengan mikrofon wraparound terpisah mungkin bisa lebih baik, tetapi headphone sehari-hari punya keterbatasan karena posisi mikrofonnya
    • Pengalaman saya sama sekali berbeda
      Mikrofon MBP cukup bagus, bahkan dengan noise cancellation yang baik, sehingga lebih layak dipilih daripada kebanyakan boom mic headset
      Keunggulannya juga lebih sedikit menangkap suara mulut yang tidak perlu seperti suara mengunyah permen karet atau minum kopi
      Rasanya 99% orang di rapat memakai kombinasi headphone biasa dan mikrofon MBP
      Masalah utama konfigurasi ini adalah Anda tidak bisa mendengar suara sendiri lewat headphone, dan kalau memakai headphone noise-cancelling kadang itu bisa cukup mengganggu
    • Jika memakai keseluruhan paket produk apa adanya, memang sederhana
      Hanya saja, Apple belakangan juga mulai keluar dari jalur yang mereka rapikan sendiri
      Intinya, semua yang dibuat Apple itu terintegrasi secara vertikal
      Untuk menyediakan fitur seperti AirDrop atau Continuity, mereka mengimplementasikannya di seluruh stack
      Kalau memilih jalur DIY, yaitu pendekatan yang pada dasarnya diambil Asahi, Anda juga harus membuat sendiri bagian-bagian software yang hilang
      Kelebihannya, manfaat pekerjaan itu bisa dinikmati seluruh ekosistem. Contohnya DSP baru di PipeWire
      Hardware PC umumnya kurang bagus, dan tanpa komponen tambahan seperti ini hardware Apple juga sama saja
      Tetapi “paket lengkap” mereka sudah menetapkan standar yang cukup tinggi, dan saya ingin melihat ekosistem open source bebas bisa mencapai standar itu
    • Array 3 mikrofon juga ada di Retina MacBook berbasis Intel, jadi pekerjaan ini juga bisa berguna untuk dukungan audio yang layak di hardware lama tersebut
      Beberapa Retina MacBook Pro awal hanya punya array 2 mikrofon, tetapi kebanyakan punya array 3 mikrofon penuh
    • Karena kebanyakan mikrofon masih memakai Bluetooth 5.0, saya tetap memakai mikrofon Mac meskipun sedang memakai headset
      Kalau tidak, sistem akan turun ke mode codec bitrate rendah yang sangat kuno, dan audio yang saya dengar pun jadi buruk sekali
      Jadi kalau memungkinkan saya selalu memakai mikrofon Mac
  • Bahkan pada perangkat keras laptop murah, dan tentu saja pada perangkat keras kelas atas seperti MBP, hasil yang sangat bagus bisa diperoleh dengan teknik DSP berbasis perangkat lunak
    Saya suka bahwa sebagian besar pekerjaan audio Asahi dapat diterapkan hampir apa adanya bukan hanya pada Mac tetapi juga pada laptop biasa
    Saya sudah menggunakan plugin sintesis harmonik bass rendah Bankstown dan convolution equalizer yang dikembangkan untuk Asahi pada laptop HP murah, dan hasilnya sangat mengesankan
    Ini juga memanfaatkan fitur pemuatan otomatis rantai plugin PipeWire yang dikembangkan untuk Asahi
    Beamformer ini juga tampaknya akan punya cukup banyak kegunaan di luar ekosistem Asahi

  • Terkait optimisasi SIMD, sepertinya akan bagus jika penulis melihat faer
    Secara pribadi pengalaman saya dengan pustaka dasarnya, pulp, tidak terlalu baik karena mencoba menangani pekerjaan di luar cakupan aljabar linear, tetapi jika tujuannya terutama mempercepat operasi aljabar linear, sepertinya ini cocok
    Saya sedang menyiapkan tulisan blog tentang Rust SIMD dan podcast terkait, dan saya akan membahas hal ini di sana
    [1]: https://docs.rs/faer/latest/faer/

  • Repositori GitHub: https://github.com/chadmed/triforce

  • Disebutkan “susunan mikrofon pada laptop Apple Silicon berikut” lalu dicantumkan 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, dan MacBook Air 15" M2; saya penasaran apakah ini berarti M2/M3 tidak memiliki susunan mikrofon serupa atau hanya belum diuji
    Saya juga penasaran apakah ini hanya didukung di Linux
    Saya tidak tahu apakah ini juga memungkinkan di macOS, dan apakah Apple menyediakan stream khusus untuk masing-masing mikrofon

    • Ini dibuat untuk Asahi Linux
      macOS melakukan perhitungan beamforming yang sangat mirip secara internal, dan hanya menampilkannya ke pengguna sebagai satu mikrofon gabungan
    • Perangkat M2 memang ada di daftar
      M3 belum didukung oleh Asahi Linux, jadi fakta bahwa M3 tidak ada di daftar adalah persoalan terpisah dari apakah M3 memiliki mikrofon seperti ini
      macOS memiliki perangkat lunaknya sendiri jauh di dalam sistem untuk menangani ini, dan ke aplikasi hanya diekspos sebagai mikrofon biasa
    • Asahi Linux masih belum mendukung prosesor M3 dan M4
  • Ada pembahasan yang lebih umum di laporan kemajuan Asahi Linux terbaru
    “Sayangnya, mikrofon PDM sangat omnidireksional dan sangat sensitif. Tanpa beamforming dalam bentuk apa pun, mikrofon ini tidak akan bisa dipakai dengan baik”
    https://asahilinux.org/2025/03/progress-report-6-14/
    Selain itu, terungkap bahwa sebagian pekerjaan yang sebelumnya dilakukan untuk keluaran speaker juga dipakai ulang untuk input mikrofon
    “Berkat fondasi yang telah kami siapkan di PipeWire dan WirePlumber untuk dukungan speaker, menghubungkan rantai DSP termasuk Triforce ke mikrofon ternyata benar-benar sederhana. Kami hanya perlu memperbarui file konfigurasi dan membiarkan WirePlumber menangani sisanya!”

  • Menarik sekali jika penulis paket ini mau menjelaskan pendapatnya tentang kalimat “seperti speaker, Apple juga berusaha terlalu canggih di sini”
    Saya khususnya penasaran apa pendapatnya tentang implementasi speaker
    Apa yang terlalu rumit? Perangkat kerasnya, atau perangkat lunaknya?
    Sebagai pengguna MBP dan penghobi audio, saya sangat terkesan dengan implementasi speaker, terutama pada model MBP yang lebih besar
    Namun saya hanya penghobi, dan selain tweeter serta konfigurasi woofer ganda berlawanan, saya tidak tahu banyak
    Tampaknya Apple juga memakai trik seperti equalizer adaptif yang digunakan perancang speaker Bluetooth “bagus” untuk mendapatkan performa yang layak dan ekstensi bass dari speaker kecil

    • Mendapatkan dukungan speaker yang layak di Asahi Linux adalah pekerjaan besar
      Salah satu masalahnya adalah dibutuhkan DSP yang canggih untuk membatasi penggunaan daya agar tidak terlalu panas
      Tanpa itu, volume yang bisa dihasilkan dalam batas aman akan sangat terbatas
      Jika ingin tahu lebih jauh, mungkin ini ikhtisar terbaik: https://github.com/AsahiLinux/asahi-audio
    • Ucapan “seperti speaker, Apple berusaha terlalu canggih” tampaknya berarti speaker laptop Apple jauh lebih unggul dibanding produk pesaing
      Ini sudah benar selama beberapa generasi
      Saat saya memakai MBP 2014, beberapa teman yang menonton film saat bepergian bersama saya terkejut dengan suaranya
      M4 MBP juga sama, kualitas speakernya benar-benar sampai pada tingkat yang sebenarnya lebih dari yang dibutuhkan
    • Kalau menebak tanpa memberi penilaian, sepertinya yang dimaksud adalah bahwa tanpa perangkat lunak semacam itu, sistem ini tidak bisa berfungsi dengan baik
    • Paket ini tampaknya ditujukan bagi orang yang menggunakan distribusi Linux di laptop dan ingin memanfaatkan fitur setara macOS asli
    • Saya juga bingung
      Sekarang ini, setidaknya pada perangkat keras premium, “audio spasial” pada speaker dan mikrofon beamforming mulai terasa seperti standar
      Audio yang tumpul, berisik, sempit, dan tidak seimbang sudah tidak bisa diterima lagi