Triforce - 애플 실리콘 노트북용 빔포머
(crates.io)- Triforce는 Apple Silicon 노트북의 마이크로폰 배열을 위한 Minimum Variance Distortionless Response 적응형 빔포머를 구현
- 지원되는 모델: 맥북 프로/에어 M1 이상의 모델들
- 위의 Apple Silicon 노트북들은 삼각형 또는 직선으로 배열된 마이크로폰을 가짐
- Apple은 사용자 공간에서 적응형 빔포머를 구현하여 배경 소음에서 원하는 신호를 분리하려고 함
- 빔포밍이 없으면 배열은 너무 민감하고 전방향성이어서 유용하지 않음
- macOS 외부에서 유용하게 사용하려면 빔포머가 필요함
- 지원 모델 리스트
- 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)
Expectation management
- DSP 관련 주제, 특히 광대역 적응형 빔포밍에 대한 접근 가능한 문헌을 찾는 것은 매우 어려움
- 이 프로젝트는 1학년 공학 수학 수준의 지식과 웹페이지 및 PDF에서 얻은 원칙을 바탕으로 한 빔포머 시도임
- 현재 Apple의 구현을 능가할 것으로 기대하지 말아야 함
- 개선을 위한 패치는 언제나 환영함
알려진 제한 사항
- nalgebra는 명시적인 SIMD 최적화를 수행하지 않으며, LLVM 자동 벡터화를 의존함
- 행렬 수학 루틴의 성능과 효율성이 좋지 않음
- 추가적인 계산 부담 때문에 광대역 분해를 수행하지 않음
- SIMD/NEON 지원이 없으면 실시간 오디오 플러그인으로는 너무 느림
- 출력은 모노만 지원함
- 스테레오 출력을 가짜로 만들기 위한 추가 행렬 처리는 계산적으로 너무 부담스러움
Hacker News 의견
-
20년 전, Toshiba Tablet PC 변환형 모델에 빔 형성 마이크 배열이 있었음. 소프트웨어로 녹음 방향을 지정할 수 있었음
- 강의에서 유용했으며, 교수 방향으로 빔을 조정하여 녹음할 수 있었음
- 이후로 이런 기능을 본 적이 없음
-
미완성된 석사 논문은 스마트폰의 마이크를 활용하여 3D에서 스피커를 위치 및 분리하는 것에 관한 것이었음
- 기기 간 샘플링 속도가 약간 다름
- 소비자용 마이크의 스펙트럼 특성이 다양함
- 소리는 모든 곳에서 반사되며, 특히 콘크리트 벽에서 두드러짐
- 자동차는 쉽게 접근할 수 있는 무향실과 유사함
- 가우시안의 푸리에 변환은 가우시안이며, 이는 주파수 추정에 유용함
-
Apple Silicon Mac에서 Linux를 실행하는 데 많은 작업이 필요함을 깨달음
- 내장 마이크는 거의 사용되지 않음
- Apple의 모든 것이 간단하지 않음
-
저렴한 노트북 하드웨어에서도 소프트웨어 DSP 기술로 놀라운 결과를 얻을 수 있음
- Asahi의 오디오 작업이 일반 노트북에도 적용 가능함
- Bankstown 베이스 하모닉 합성 플러그인과 컨볼루션 EQ를 사용하여 인상적인 결과를 얻음
-
SIMD 최적화에 대해 faer를 고려할 수 있음
- pulp 라이브러리 경험은 좋지 않았으나, 주로 선형 대수 연산 가속화가 목표라면 잘 될 것임
- Rust SIMD에 관한 블로그 게시물과 팟캐스트가 예정되어 있음
-
Apple Silicon 노트북의 마이크 배열에 대한 질문
- M2/M3 모델에 유사한 마이크 배열이 있는지 또는 테스트되지 않았는지 궁금함
- Linux와 MacOS에서 지원되는지 여부에 대한 의문
-
Apple이 스피커와 마찬가지로 마이크에서도 너무 복잡하게 접근하는 것 같음
- MBP 사용자로서 스피커 구현에 감명받았음
- 드라이버 배열 외에는 지식이 없지만, 작은 스피커에서 성능을 끌어내기 위한 트릭을 사용하고 있는 것 같음
-
최신 Asahi Linux 진행 보고서에 대한 일반적인 논의
- PDM 마이크는 매우 전방향적이고 민감함
- 빔 형성이 필요함
- 스피커 출력에 대한 이전 작업이 마이크 입력에 재사용됨
- PipeWire와 WirePlumber 덕분에 마이크용 DSP 체인을 연결하는 것이 간단했음
-
다른 제조업체도 쉽게 마이크 배열을 구축할 수 있도록 구현되면 좋겠음