1 puan yazan GN⁺ 2025-03-25 | 1 yorum | WhatsApp'ta paylaş
  • Triforce, Apple Silicon dizüstülerdeki mikrofon dizisini macOS dışında da kullanmak için geliştirilmiş, Rust tabanlı uyarlamalı beamformer'dır
  • Destek, M1/M2 MacBook Air·Pro 13", M2 MacBook Air 15", M1/M2 Pro·Max MacBook Pro 14"·16" ile sınırlıdır
  • Bu cihazlardaki üçgen veya doğrusal mikrofon dizileri, beamforming olmadan fazla hassas ve çok yönlü olduğundan istenen sinyali ayırmak zordur
  • Bağımlılık yapısı, Cargo.lock'ta belirtilen crate'ler dışında yalnızca LV2 gerekecek şekilde en aza indirilmeye çalışılmıştır
  • Mevcut uygulamanın Apple'ın uygulamasını aşması beklenmez; SIMD/NEON olmadığı için geniş bant ayrıştırma ve stereo çıkış da desteklenmez

Apple Silicon mikrofon dizileri için beamformer

  • Triforce, Apple Silicon dizüstülerdeki mikrofon dizileri için Minimum Variance Distortionless Response uyarlamalı beamformer uygular
  • Desteklenen cihazlar şunlardır
    • 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)
  • Hedef dizüstülerdeki mikrofon dizileri üçgen veya doğrusal biçimde yerleştirilmiştir
  • Bu diziler beamforming olmadan kullanıldığında fazla hassas ve her yönden çalışan bir yapı sergileyerek kullanışlılığını düşürür; macOS dışında yararlanmak için bir beamformer gerekir
  • Cargo.lock'ta belirtilen crate'lere ek olarak gereken tek bağımlılık LV2'dir

Uygulama durumu ve bilinen sınırlamalar

  • DSP ve geniş bant uyarlamalı beamforming ile ilgili erişilebilir literatür bulmak zor olduğundan, mevcut uygulama birinci sınıf mühendislik matematiği ile çeşitli web sayfaları ve PDF'lerden edinilen ilkelere dayanan bir denemedir
  • Apple'ın uygulamasından daha iyi performans vermesi beklenmez; iyileştirme yamaları memnuniyetle karşılanır
  • Bilinen sınırlamalar şunlardır
    • nalgebra, açık SIMD optimizasyonu yapmaz ve LLVM'nin otomatik vektörleştirmesine dayanır; bu nedenle matris matematiği rutinlerinin performansı ve verimliliği iyi değildir
    • SIMD/NEON desteği olmadan gerçek zamanlı ses eklentisi için fazla yavaştır; bu yüzden geniş bant ayrıştırma yapılmaz
    • Çıkış yalnızca mono'yu destekler; sahte stereo çıkış için ek matris işlemleri hesaplama açısından fazla maliyetlidir
  • crates.io istatistiklerine göre toplam indirme sayısı 4.247, yayımlanmış sürüm sayısı ise 7'dir

1 yorum

 
GN⁺ 2025-03-25
Hacker News yorumları
  • Arka plan açıklamasını içeren blog yazısı burada: https://asahilinux.org/2025/03/progress-report-6-14/#is-this...

  • 20 yılı aşkın süre önce kullandığım Toshiba Tablet PC convertible’da mikrofon beamforming dizisi vardı ve hangi yönden gelen sesi kaydedeceğinizi belirleyen bir yazılım da içeriyordu
    Başlıca kullanım amacı ders kaydıydı; beam’i dizüstünün arka tarafındaki öğretim üyesinin yönüne çevirip yalnızca o taraftaki sesi kaydedecek şekilde ayarlayabiliyordunuz
    Şaşırtıcı bir fikirdi ama o zamandan beri görmedim

    • Mini camcorder’ların parlak döneminde bazı Sony Handycam modellerinde “zoom” mikrofon vardı; beamforming ile sensörün gördüğü alanla kabaca örtüşen aralıktaki sesi toplamaya çalışıyordu
      Bu da harika bir fikirdi ve benzer ürünler hâlâ çıkıyor: https://electronics.sony.com/imaging/imaging-accessories/all...
    • Üst seviye video konferans ekipmanlarında yaygın olarak kullanılıyor
      Toplantı odası mikrofon dizisi kimin konuştuğunu saptayıp o kişinin sesini ayrıştırıyor
      Büyük toplantı odası video konferanslarında, birden çok mikrofondan gelen gürültü karışmasın diye uzun süredir o anda en yüksek sesli mikrofon seçiliyordu; buna beamforming eklenince çok daha iyi oluyor
    • Bunun nasıl çalıştığını merak ediyorum
      Mikrofonlar gövdede değil de ekran düzlemindeyse, “ön” ile “tam arka”yı ayırt edememiş olmalı gibi geliyor
    • Birkaç yıldır aklımda olan ama hesaplama kaynağı yetersizliğinden deneyemediğim bir fikir var: Mikrofon dizisini ve LIDAR’ı doğru veri olarak kullanıp, yalnızca mikrofon verisinin sinyal dönüşümlerini koşul yaparak dünyanın nasıl göründüğünü “hayal eden” bir difüzyon modeli eğitmek
      Otonom araçların çalılıkların arkasındaki yayayı “görmesi”, yaklaşan acil durum aracını daha erken algılaması, bisikleti görmeden önce sesini duyması gibi pek çok iyi kullanım alanı olabilir
    • Samsung S10’dan bu yana, zoom modunda video kaydederken bu özellik var
      Nasıl uyguladıklarını hep merak etmişimdir
  • Hiç tamamlayamadığım yüksek lisans tezim benzer bir konudaydı
    Neredeyse tüm akıllı telefonlarda en az 2 mikrofon olmasından yararlanarak konuşmacının 3B konum tahminini yapıp onu ayrıştırmaya çalışıyordum
    Çıkardığım dersler şunlardı: Cihazlar arası örnekleme hızları biraz kayıyor; yaklaşık saniyede ±1 örnek civarında, çok büyük değil ama hesaba katılması gerekiyor
    Tüketici tipi mikrofonların spektral özellikleri birbirinden farklı; aynı model iki telefonu kutudan çıkarıp kullansanız bile yalnızca ölçülebilir değil, duyulabilir farklar da oluyor
    Ses, özellikle beton duvarlar dâhil her yerden yansıyor
    Kolay erişilebilen yerler içinde arabanın içi yankısız odaya en yakın olanı
    Gauss fonksiyonunun Fourier dönüşümü yine Gauss olduğundan, konuşma gibi harmonik sinyallerin frekansını tahmin ederken dalga boyu pencere uzunluğunun yarısından biraz kısa olduğunda çok işe yarıyor

    • “Kolay erişilebilen yerler içinde arabanın içi yankısız odaya en yakın olanı” kısmıyla ilgili olarak, bir YouTuber’ın büyük boş bir tarla bularak yankısız oda sorununu çözdüğünü hatırlıyorum
      Zemin dışında yansıyacak bir şey yoktu; deneyin altına köpük de sermiş olabilir
      Elbette ortam gürültüsünü ortadan kaldırmıyor ama kendi ekipmanından gelen yansımaları azaltmada epey işe yaradığını söylemişti
    • İçi kıyafet dolu, halı kaplı bir dolap arabadan daha iyi olmaz mı
    • Gauss ile ilgili kısmı anlıyorum ama ana fikri biraz daha ayrıntılı açıklayabilir misin
  • Linux’u Apple Silicon Mac üzerinde çalıştırmak için önemsiz görünen kısımlarda bile ne kadar çok iş gerektiğini fark ediyorum
    Burada “önemsiz” derken bunu en saygılı anlamıyla söylüyorum. Çünkü dahili mikrofon, kulaklığımı unutmadıkça neredeyse hiç kullanmadığım bir şey
    İlerleme raporundan (https://asahilinux.org/2025/03/progress-report-6-14/#is-this...) alıntıyla: “Yine de bu Apple. Hiçbir şey basit değil”

    • Dahili mikrofon gerçekten mükemmel; AirPods Pro takılıyken bile ses kalitesi çok daha iyi olduğu için sık sık dahili mikrofonu kullanıyorum
      Ayrı bir kola sahip wraparound mikrofonlu kulaklık daha iyi olabilir ama gündelik kulaklıklar mikrofon konumu yüzünden sınırlı
    • Benim deneyimim tamamen farklı
      MBP mikrofonu, iyi bir gürültü engellemesi de olduğu için çoğu headset boom mikrofonuna tercih edilebilecek düzeydeydi
      Sakız çiğneme veya kahve içme gibi gereksiz ağız çevresi seslerini daha az yakalama avantajı da var
      Toplantı yapan insanların %99’u normal kulaklık + MBP mikrofonu kombinasyonunu kullanıyor gibi geliyor
      Bu kurulumun ana sorunu, kulaklıktan kendi sesinizi duyamamanız; gürültü engellemeli kulaklık kullanıyorsanız bu bazen epey rahatsız edici olabiliyor
    • Ürün olarak verilen tüm paketi aynen kullanırsanız basit sayılır
      Ancak Apple bir süredir kendi açtığı yoldan da sapıyor
      Esas mesele, Apple’ın yaptığı her şeyin dikey entegre olması
      AirDrop veya Continuity gibi özellikleri sunmak için tüm stack boyunca uygulama yapıyorlar
      DIY yolunu, yani Asahi’nin fiilen hedeflediği yaklaşımı seçerseniz eksik yazılım parçalarını da kendiniz yapmanız gerekiyor
      Avantajı, bu çalışmanın faydasını tüm ekosistemin görebilmesi. Örneğin PipeWire’ın yeni DSP’si buna bir örnek
      PC donanımı genel olarak pek iyi değil; bu ek bileşenler çıkarıldığında Apple donanımı da aynı durumda
      Ama “tüm paket” çıtayı epey yükseltti ve özgür açık kaynak ekosisteminin bu çıtaya ulaştığını görmek istiyorum
    • 3 mikrofonlu dizi Intel tabanlı Retina MacBook’larda da bulunduğu için bu çalışma, söz konusu eski donanımlarda düzgün ses desteği için de faydalı olabilir
      Bazı erken Retina MacBook Pro modellerinde yalnızca 2 mikrofonlu dizi var, ancak çoğunda tam 3 mikrofonlu dizi bulunuyor
    • Mikrofonların çoğu hâlâ Bluetooth 5.0 kullandığından, headset takılı olsa bile Mac mikrofonunu kullanıyorum
      Aksi halde çok eski, düşük bit oranlı codec moduna düşüyor ve kulakla duyduğunuz ses girişi bile berbat hâle geliyor
      Bu yüzden mümkün olduğunca her zaman Mac mikrofonunu kullanıyorum
  • Ucuz dizüstü bilgisayar donanımlarında da, elbette MBP gibi üst düzey donanımlarda da, yazılımsal DSP teknikleriyle şaşırtıcı derecede iyi sonuçlar elde edilebiliyor
    Asahi’nin ses tarafındaki çalışmalarının önemli bir kısmının yalnızca Mac’lere değil, sıradan dizüstü bilgisayarlara da olduğu gibi uygulanabilmesi hoşuma gidiyor
    Asahi için geliştirilmiş Bankstown bas harmonik sentez eklentisini ve konvolüsyon ekolayzerini şimdiden ucuz bir HP dizüstü bilgisayarda kullanıyorum; sonuçlar şaşırtıcı derecede etkileyici
    Bu da Asahi için geliştirilmiş PipeWire eklenti zincirini otomatik yükleme özelliğini kullanıyor
    Bu beamformer da Asahi ekosisteminin dışında epey kullanım alanı bulacak gibi görünüyor

  • SIMD optimizasyonu konusunda yazarların faer’a bakması iyi olur
    Temel kütüphane olan pulp, doğrusal cebir kapsamının ötesindeki işleri yapmaya çalıştığı için kişisel olarak deneyimim pek iyi olmadı; ama hedef ağırlıklı olarak doğrusal cebir işlemlerini hızlandırmaksa uygun görünüyor
    Rust SIMD hakkında bir blog yazısı ve ilgili bir podcast hazırlıyorum; burada bu konuyu ele almayı planlıyorum
    [1]: https://docs.rs/faer/latest/faer/

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

  • “Aşağıdaki Apple Silicon dizüstü bilgisayarlardaki mikrofon dizilimi” deyip 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 listelenmiş; bunun M2/M3’te benzer mikrofon dizilimi olmadığı anlamına mı geldiğini, yoksa test edilmediği anlamına mı geldiğini merak ediyorum
    Bunun yalnızca Linux’ta mı desteklendiğini de merak ediyorum
    macOS’te de mümkün mü, Apple’ın her mikrofon için ayrı özel akış sağlayıp sağlamadığından emin değilim

    • Bu, Asahi Linux için yapılmış bir şey
      macOS içeride çok benzer beamforming hesapları yapıyor ve kullanıcıya yalnızca tek bir birleşik mikrofon olarak gösteriyor
    • Listede M2 cihazlar var
      M3 ise Asahi Linux tarafından henüz desteklenmediği için listede olmaması, M3’te bu tür mikrofonların olup olmadığıyla ayrı bir mesele
      macOS’te bunu sistemin derinlerinde işleyen kendi yazılımı var ve uygulamalara yalnızca normal bir mikrofon olarak sunuluyor
    • Asahi Linux henüz M3 ve M4 işlemcileri desteklemiyor
  • En son Asahi Linux ilerleme raporunda daha genel bir tartışma var
    “Ne yazık ki PDM mikrofonlar çok yönlü ve çok hassas. Bir tür beamforming olmadan idare edilemez”
    https://asahilinux.org/2025/03/progress-report-6-14/
    Ayrıca hoparlör çıkışı için daha önce yapılan işlerin bir kısmının mikrofon girişi için de yeniden kullanıldığı ortaya çıkmış
    “Hoparlör desteği için PipeWire ve WirePlumber’da hazırladığımız temel sayesinde, Triforce dâhil DSP zincirlerini mikrofona bağlamak gerçekten çok kolaydı. Sadece yapılandırma dosyasını güncellemek ve geri kalanını WirePlumber’a bırakmak yeterli oldu!”

  • “Hoparlörlerde olduğu gibi Apple burada da fazla havalı olmaya çalışıyor” cümlesi hakkında, bu paketin yazarının görüş belirtmesi gerçekten ilginç olurdu
    Özellikle hoparlör uygulaması hakkında ne düşündüğünü merak ediyorum
    Ne aşırı karmaşık? Donanım mı, yazılım mı?
    Bir MBP kullanıcısı ve hobi olarak sesle uğraşan biri olarak, özellikle daha büyük MBP modellerinin hoparlör uygulaması bana gerçekten etkileyici gelmişti
    Gerçi ben hobi düzeyindeyim; tweeter ve çift karşılıklı woofer düzeni dışında bildiğim pek bir şey yok
    Apple’ın da küçük hoparlörlerden düzgün performans ve bas uzaması çıkarmak için “iyi” Bluetooth hoparlör tasarımcılarının kullandığı uyarlamalı ekolayzer gibi numaralara başvurduğu anlaşılıyor

    • Asahi Linux’ta düzgün hoparlör desteği sağlamak büyük bir işti
      Sorunlardan biri, aşırı ısınmayı önlemek üzere güç kullanımını sınırlamak için gelişmiş DSP gerekmesiydi
      Bu olmadan güvenli sınırlar içinde elde edilebilecek ses seviyesi çok sınırlı kalıyor
      Daha fazlasını öğrenmek isterseniz muhtemelen en iyi genel bakış burası: https://github.com/AsahiLinux/asahi-audio
    • “Hoparlörlerde olduğu gibi Apple’ın fazla havalı olmaya çalışması” ifadesi, Apple dizüstü hoparlörlerinin rakiplerinden çok ileride olduğu anlamına geliyor gibi görünüyor
      Bu birkaç nesildir böyle
      2014 model MBP kullanırken yolda film izlediğimde bile birkaç arkadaşım sesten etkilenmişti
      M4 MBP de aynı şekilde; hoparlör ses kalitesi pratikte gerekenden bile fazla iyi
    • Değer yargısı katmadan tahmin edersem, böyle bir yazılım olmadan düzgün çalışmadığına işaret ediyor olabilir
    • Bu paket, dizüstü bilgisayarında Linux dağıtımı kullanırken yerel macOS ile aynı işlevlerden yararlanmak isteyenler için gibi görünüyor
    • Ben de kafam karıştı
      Günümüzde en azından premium donanımlarda hoparlörlerin “uzamsal ses”i ve beamforming mikrofonlar standart gibi gelmeye başladı
      Donuk, gürültülü, sıkışık ve dengesiz ses artık kabul görmüyor