- 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
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
Bu da harika bir fikirdi ve benzer ürünler hâlâ çıkıyor: https://electronics.sony.com/imaging/imaging-accessories/all...
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
Mikrofonlar gövdede değil de ekran düzlemindeyse, “ön” ile “tam arka”yı ayırt edememiş olmalı gibi geliyor
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
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
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
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”
Ayrı bir kola sahip wraparound mikrofonlu kulaklık daha iyi olabilir ama gündelik kulaklıklar mikrofon konumu yüzünden sınırlı
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
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
Bazı erken Retina MacBook Pro modellerinde yalnızca 2 mikrofonlu dizi var, ancak çoğunda tam 3 mikrofonlu dizi bulunuyor
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
macOS içeride çok benzer beamforming hesapları yapıyor ve kullanıcıya yalnızca tek bir birleşik mikrofon olarak gösteriyor
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
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
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
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
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