1 điểm bởi GN⁺ 2025-03-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Triforce là một beamformer thích ứng dựa trên Rust nhằm tận dụng mảng microphone của laptop Apple Silicon cả ngoài macOS
  • Các thiết bị được hỗ trợ chỉ giới hạn ở MacBook Air/Pro 13" M1/M2, MacBook Air 15" M2, MacBook Pro 14"/16" M1/M2 Pro·Max
  • Mảng microphone hình tam giác hoặc đường thẳng trên các thiết bị này quá nhạy và thu âm đa hướng nếu không có beamforming, nên khó tách tín hiệu mong muốn
  • Cấu trúc được tối giản để ngoài các crate được ghi trong Cargo.lock thì chỉ cần thêm LV2 làm phụ thuộc
  • Hiện tại khó có thể kỳ vọng phần triển khai này vượt qua cách Apple triển khai, và do thiếu SIMD/NEON nên không hỗ trợ phân rã băng rộng và đầu ra stereo

Beamformer cho mảng microphone Apple Silicon

  • Triforce triển khai beamformer thích ứng Minimum Variance Distortionless Response cho mảng microphone trên laptop Apple Silicon
  • Các thiết bị được hỗ trợ như sau
    • 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)
  • Mảng microphone của các mẫu laptop này được bố trí theo dạng tam giác hoặc đường thẳng
  • Nếu dùng mảng này mà không có beamforming thì nó quá nhạy và hoạt động đa hướng, làm giảm tính hữu ích; để khai thác ngoài macOS thì cần có beamformer
  • Ngoài các crate được chỉ định trong Cargo.lock, phụ thuộc bổ sung cần thiết là LV2

Tình trạng triển khai và các hạn chế đã biết

  • Do khó tìm được tài liệu dễ tiếp cận về DSP và beamforming thích ứng băng rộng, phần triển khai hiện tại là một nỗ lực dựa trên toán kỹ thuật trình độ năm nhất đại học cùng các nguyên lý thu thập từ nhiều trang web và PDF
  • Khó có thể kỳ vọng hiệu năng sẽ tốt hơn cách Apple triển khai, và các bản vá cải thiện đều được hoan nghênh
  • Các hạn chế đã biết như sau
    • nalgebra không tối ưu SIMD tường minh mà phụ thuộc vào tự động vector hóa của LLVM, nên hiệu năng và hiệu quả của các routine toán ma trận không tốt
    • Nếu không có hỗ trợ SIMD/NEON thì quá chậm cho plugin âm thanh thời gian thực, nên không thực hiện phân rã băng rộng
    • Chỉ hỗ trợ đầu ra mono, còn xử lý ma trận bổ sung để tạo đầu ra stereo giả thì tốn tính toán quá lớn
  • Theo thống kê trên crates.io, tổng số lượt tải là 4.247, và có 7 phiên bản đã được phát hành

1 bình luận

 
GN⁺ 2025-03-25
Ý kiến trên Hacker News
  • Bài blog có phần giải thích bối cảnh ở đây: https://asahilinux.org/2025/03/progress-report-6-14/#is-this...

  • Chiếc Toshiba Tablet PC convertible tôi dùng hơn 20 năm trước đã có mảng micro beamforming, và còn kèm phần mềm để chỉ định muốn ghi âm âm thanh phát ra từ đâu
    Mục đích chính là ghi âm bài giảng; có thể đặt chùm hướng về phía giáo sư ở sau laptop để chỉ ghi âm âm thanh từ hướng đó
    Đó là một ý tưởng đáng kinh ngạc, nhưng từ đó đến nay tôi chưa thấy lại

    • Vào thời hoàng kim của máy quay mini, một số Sony Handycam có micro “zoom”, dùng beamforming để chỉ thu âm thanh trong phạm vi gần khớp với vùng mà cảm biến đang nhìn thấy
      Đây cũng là một ý tưởng tuyệt vời, và sản phẩm tương tự vẫn còn xuất hiện: https://electronics.sony.com/imaging/imaging-accessories/all...
    • Tính năng này được dùng rộng rãi trong các thiết bị hội nghị truyền hình cao cấp
      Mảng micro trong phòng họp xác định ai đang nói và tách âm thanh của người đó ra
      Hội nghị truyền hình trong phòng họp lớn từ lâu đã chọn micro có âm lượng lớn nhất tại từng thời điểm để tránh trộn nhiễu từ nhiều micro; thêm beamforming vào thì tốt hơn nhiều
    • Tôi tò mò không biết nó hoạt động thế nào
      Nếu micro nằm trên mặt phẳng màn hình chứ không phải thân máy, có lẽ nó đã không phân biệt được “phía trước” với “ngay phía sau”
    • Có một ý tưởng tôi đã nghĩ suốt vài năm nhưng chưa thử được vì thiếu tài nguyên tính toán: dùng mảng micro và LIDAR làm dữ liệu đáp án, rồi huấn luyện một diffusion model “tưởng tượng” thế giới trông như thế nào chỉ dựa trên phép biến đổi tín hiệu của dữ liệu micro
      Có thể có nhiều ứng dụng hay, như xe tự hành “nhìn thấy” người đi bộ sau bụi cây, phát hiện xe khẩn cấp đang đến sớm hơn, hoặc nghe thấy xe đạp trước khi nhìn thấy nó
    • Từ Samsung S10 trở đi, tính năng này có khi quay video ở chế độ zoom
      Tôi luôn tò mò họ triển khai nó như thế nào
  • Luận văn thạc sĩ mà cuối cùng tôi không hoàn thành cũng thuộc chủ đề tương tự
    Tôi định tận dụng việc gần như mọi smartphone đều có ít nhất 2 micro để ước lượng vị trí 3D của người nói và tách họ ra
    Những bài học rút ra là: tốc độ lấy mẫu giữa các thiết bị hơi lệch nhau, khoảng ±1 mẫu mỗi giây nên không lớn nhưng vẫn phải tính đến
    Đặc tính phổ của micro tiêu dùng rất khác nhau; ngay cả hai điện thoại cùng mẫu vừa lấy ra cũng có khác biệt đo được, thậm chí khác biệt nghe được
    Âm thanh phản xạ từ đủ mọi nơi, đặc biệt là tường bê tông
    Trong những nơi dễ tiếp cận, bên trong ô tô là gần với phòng không vang nhất
    Biến đổi Fourier của Gaussian vẫn là Gaussian, nên rất hữu ích khi ước lượng tần số của tín hiệu điều hòa như giọng nói trong trường hợp bước sóng ngắn hơn một chút so với một nửa chiều dài cửa sổ

    • Về đoạn “trong những nơi dễ tiếp cận, bên trong ô tô là gần với phòng không vang nhất”, tôi nhớ có một YouTuber đã giải quyết vấn đề phòng không vang bằng cách tìm một cánh đồng trống lớn
      Ngoài mặt đất ra thì không có gì để phản xạ, và có thể họ còn lót foam bên dưới thí nghiệm
      Dĩ nhiên cách này không loại bỏ được tiếng ồn môi trường, nhưng nghe nói khá hiệu quả trong việc giảm phản xạ phát ra từ chính thiết bị của họ
    • Một tủ quần áo trải thảm đầy quần áo chẳng phải tốt hơn ô tô sao
    • Tôi hiểu phần liên quan đến Gaussian, nhưng bạn có thể giải thích ý chính đó chi tiết hơn một chút không
  • Điều này cho thấy để Linux chạy trên Apple Silicon Mac, ngay cả những phần tưởng như nhỏ nhặt cũng cần nhiều công sức đến mức nào
    Ở đây “nhỏ nhặt” là nói với sự tôn trọng tối đa. Vì micro tích hợp hầu như không được dùng trừ khi tôi quên mang headset
    Trích báo cáo tiến độ (https://asahilinux.org/2025/03/progress-report-6-14/#is-this...): “Dù sao thì đây vẫn là Apple. Không có gì là đơn giản cả”

    • Micro tích hợp thật ra rất tốt, nên ngay cả khi đeo AirPods Pro, tôi vẫn thường dùng micro tích hợp vì chất lượng âm thanh tốt hơn nhiều
      Tai nghe micro dạng wraparound có cần rời có thể còn tốt hơn, nhưng tai nghe thường ngày bị giới hạn bởi vị trí đặt micro
    • Trải nghiệm của tôi hoàn toàn khác
      Micro MBP có cả khử nhiễu tốt, nên đáng để ưu tiên hơn hầu hết micro cần của headset
      Nó còn có lợi thế là ít bắt các âm không cần thiết quanh miệng như tiếng nhai kẹo cao su hay uống cà phê
      Tôi có cảm giác 99% người họp dùng kết hợp tai nghe thông thường với micro MBP
      Vấn đề chính của cấu hình này là không nghe được giọng mình trong tai nghe; khi dùng tai nghe khử ồn thì đôi lúc điều đó khá khó chịu
    • Nếu dùng nguyên gói sản phẩm nhận được thì đúng là đơn giản
      Nhưng một thời gian nay Apple cũng đang đi chệch khỏi con đường mà chính họ đã dọn sẵn
      Điểm mấu chốt là mọi thứ Apple làm đều được tích hợp theo chiều dọc
      Để cung cấp các tính năng như AirDrop hay Continuity, họ triển khai xuyên suốt toàn bộ stack
      Nếu chọn con đường DIY, tức cách mà Asahi về cơ bản đang hướng tới, thì cũng phải tự tạo cả những mảnh phần mềm còn thiếu
      Ưu điểm là toàn bộ hệ sinh thái có thể hưởng lợi từ công việc đó. Ví dụ như DSP mới của PipeWire
      Phần cứng PC nhìn chung khá tệ, và nếu bỏ các thành phần bổ sung kiểu này ra thì phần cứng Apple cũng vậy
      Nhưng “gói tổng thể” đã đặt ra một chuẩn khá cao, và tôi muốn thấy hệ sinh thái phần mềm tự do nguồn mở đạt tới chuẩn đó
    • Mảng 3 micro cũng có trên Retina MacBook nền Intel, nên công việc này có thể hữu ích cho việc hỗ trợ âm thanh đúng nghĩa trên phần cứng đời cũ đó
      Một số Retina MacBook Pro đời đầu chỉ có mảng 2 micro, nhưng phần lớn có đầy đủ mảng 3 micro
    • Vì hầu hết micro vẫn dùng Bluetooth 5.0, tôi dùng micro của Mac ngay cả khi đang đeo headset
      Nếu không thì nó sẽ tụt xuống chế độ codec bitrate thấp rất cũ, làm cả âm thanh đầu vào nghe bằng tai cũng trở nên tệ hại
      Vì vậy nếu có thể, tôi luôn dùng micro của Mac
  • Ngay cả trên phần cứng laptop giá rẻ, và tất nhiên cả trên phần cứng cao cấp như MBP, vẫn có thể đạt được kết quả tốt đáng kinh ngạc bằng các kỹ thuật DSP trong phần mềm
    Tôi thích việc phần lớn công việc âm thanh của Asahi có thể áp dụng gần như nguyên xi không chỉ cho Mac mà cả laptop thông thường
    Tôi đã dùng plugin tổng hợp hài âm trầm Bankstown và bộ cân bằng tích chập được phát triển cho Asahi trên một laptop HP giá rẻ, và kết quả ấn tượng đến mức đáng ngạc nhiên
    Việc này cũng sử dụng tính năng tự động tải chuỗi plugin PipeWire được phát triển cho Asahi
    Tôi nghĩ beamformer này cũng sẽ có khá nhiều nơi dùng được bên ngoài hệ sinh thái Asahi

  • Về tối ưu SIMD, tôi nghĩ các tác giả nên xem qua faer
    Cá nhân tôi có trải nghiệm không thật sự tốt với thư viện nền tảng pulp, vì nó cố làm những việc vượt ra ngoài phạm vi đại số tuyến tính; nhưng nếu mục tiêu chủ yếu là tăng tốc các phép toán đại số tuyến tính thì có vẻ rất phù hợp
    Tôi đang chuẩn bị một bài blog về Rust SIMD và một podcast liên quan, và dự định sẽ đề cập nội dung này ở đó
    [1]: https://docs.rs/faer/latest/faer/

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

  • Họ nói “mảng micro trên các laptop Apple Silicon sau đây” rồi liệt kê 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; tôi thắc mắc liệu ý là M2/M3 không có mảng micro tương tự, hay chỉ là chưa được thử nghiệm
    Tôi cũng tò mò liệu cái này chỉ được hỗ trợ trên Linux hay không
    Không rõ trên macOS có làm được không, và Apple có cung cấp stream riêng cho từng micro hay không

    • Cái này được làm cho Asahi Linux
      macOS thực hiện phép tính beamforming rất tương tự ở bên trong, và chỉ hiển thị cho người dùng như một micro hợp nhất duy nhất
    • Danh sách có các máy M2
      M3 thì Asahi Linux hiện chưa hỗ trợ, nên việc nó không có trong danh sách là chuyện riêng, không nói lên việc M3 có loại micro này hay không
      macOS có phần mềm riêng xử lý việc này ở rất sâu trong hệ thống, và chỉ phơi bày cho ứng dụng như một micro thông thường
    • Asahi Linux hiện vẫn chưa hỗ trợ các bộ xử lý M3 và M4
  • Báo cáo tiến độ Asahi Linux mới nhất có phần thảo luận tổng quát hơn
    “Đáng tiếc là micro PDM có tính đa hướng rất mạnh và rất nhạy. Không có beamforming dưới bất kỳ hình thức nào thì không chịu nổi”
    https://asahilinux.org/2025/03/progress-report-6-14/
    Ngoài ra, hóa ra một phần công việc đã làm trước đây cho đầu ra loa cũng được tái sử dụng cho đầu vào micro
    “Nhờ nền tảng chúng tôi đã dựng trong PipeWire và WirePlumber để hỗ trợ loa, việc nối chuỗi DSP, gồm cả Triforce, vào micro thật sự rất đơn giản. Chỉ cần cập nhật file cấu hình rồi để WirePlumber lo phần còn lại!”

  • Về câu “cũng như với loa, Apple ở đây cũng cố làm quá màu mè”, sẽ rất thú vị nếu tác giả gói này chia sẻ ý kiến
    Đặc biệt tôi tò mò họ nghĩ gì về triển khai loa
    Điều gì là quá phức tạp? Phần cứng hay phần mềm?
    Với tư cách người dùng MBP và là người chơi audio theo sở thích, tôi thấy triển khai loa, đặc biệt trên các mẫu MBP lớn hơn, thật sự ấn tượng
    Nhưng tôi chỉ ở mức sở thích, và ngoài cấu hình tweeter cùng woofer đối hướng kép thì không biết nhiều
    Có vẻ Apple cũng dùng những thủ thuật như equalizer thích ứng mà các nhà thiết kế loa Bluetooth “xịn” dùng để kéo hiệu năng ổn và mở rộng dải trầm từ loa nhỏ

    • Có được hỗ trợ loa tử tế trên Asahi Linux là một việc lớn
      Một trong các vấn đề là cần DSP tinh vi để giới hạn mức dùng điện nhằm tránh quá nhiệt
      Không có nó thì âm lượng có thể phát trong giới hạn an toàn sẽ rất hạn chế
      Nếu muốn biết thêm, có lẽ đây là phần tổng quan tốt nhất: https://github.com/AsahiLinux/asahi-audio
    • Câu “cũng như với loa, Apple làm quá màu mè” có vẻ muốn nói loa laptop Apple đi trước đối thủ rất xa
      Điều này đã đúng qua nhiều thế hệ
      Hồi dùng MBP đời 2014, khi xem phim lúc di chuyển, vài người bạn của tôi đã ngạc nhiên vì âm thanh
      M4 MBP cũng vậy, chất lượng loa thực tế ở mức có lẽ vượt quá nhu cầu
    • Nếu đoán mà không phán xét giá trị, có lẽ họ muốn nói đến việc nó không thể hoạt động đúng nếu thiếu phần mềm như vậy
    • Gói này có vẻ dành cho những người muốn dùng bản phân phối Linux trên laptop nhưng vẫn có các tính năng giống macOS native
    • Tôi cũng thấy khó hiểu
      Ngày nay, ít nhất trên phần cứng cao cấp, “spatial audio” của loa và micro beamforming bắt đầu giống như tiêu chuẩn rồi
      Âm thanh đục, ồn, bí và mất cân bằng giờ không còn chấp nhận được nữa