GN⁺: HN 질문: 브라우저가 마이크 입력에서 내부 오디오를 어떻게 격리하는지
(news.ycombinator.com)-
Chrome와 Chromium에서 흥미로운 기능을 발견함
- 내부 오디오를 마이크 입력에서 분리하는 기능이 있음
- 예를 들어, 한 탭에서 Google Meet 통화를 하고 다른 탭에서 YouTube 비디오를 최대 볼륨으로 재생할 때, 비디오의 오디오가 Google Meet에 전달되지 않음
- 다른 브라우저를 사용할 경우(예: Google Meet은 Chrome에서, YouTube는 Chromium에서) 이 분리가 일어나지 않음
-
Chrome과 Chromium이 어떻게 이 오디오 분리를 구현하는지 궁금함
- Chromium이 오픈 소스이므로, 이 기능을 처리하는 코드베이스의 특정 부분을 알고 싶음
- 기술적 세부 사항이나 통찰을 제공해주면 감사하겠음
GN⁺의 정리
- 이 기사는 Chrome과 Chromium의 오디오 분리 기능에 대한 흥미로운 발견을 다루고 있음
- 이 기능은 사용자 경험을 향상시키는 중요한 요소로, 특히 여러 작업을 동시에 수행할 때 유용함
- 오픈 소스인 Chromium의 코드베이스를 통해 기술적 구현을 이해할 수 있는 기회를 제공함
- 비슷한 기능을 제공하는 다른 브라우저나 소프트웨어가 있는지 탐구해볼 가치가 있음
Hacker News 의견
-
음성 캡처와 재생 간의 지연을 비교하여 음악을 음성에서 제거하는 방법
- 마이크와 스피커 간의 지연을 찾아 비교하여 음악을 제거하는 것임
- 단일 프로세스 내에서는 몇 백 밀리초 동안 재생된 내용을 유지하고 마이크 입력과 비교하여 상관관계를 찾아 제거함
- 관련 없는 프로세스 간에는 OS가 캡처 API를 제공하거나 루프백 스트림을 사용하여 제거할 수 있음
- 이러한 방법이 없을 경우, 직접 오디오 출력을 혼합하여 제거함
-
Acoustic Echo Cancellation (AEC)
- WebRTC에 포함된 Chrome에서 구현됨
- FIR 필터를 사용하여 스피커에서 나오는 소리를 마이크 입력에서 최대한 제거함
- Chromium 소스에서 "CHROME_WIDE_ECHO_CANCELLATION" 컴파일 플래그를 검색하면 관련 정보를 찾을 수 있음
-
Chrome의 동시 녹음 및 재생 문제
- Chrome이 동시 녹음 및 재생을 잘 처리하지 못함
- 문제를 명확하게 보여주는 사이트가 있음 chrome-please-fix-your-audio.xyz
-
Acoustic Echo Cancellation의 일반적인 문제
- 신호 처리에서 흔히 발생하는 문제임
- 전화기와 같은 간단한 장치에서도 발생함
-
Google Meet의 소스 분리 기술
- 신경망을 사용하여 음성을 비음성에서 분리하고 다른 화자도 분리함
- 2021년부터 반지도 학습 방법이 개발되면서 기술이 크게 향상됨
-
에코 제거의 부작용
- 브라우저가 재생 중인 오디오를 알고 마이크 입력과 상관관계를 찾아 제거함
- 헤드폰을 사용하지 않는 경우 피드백을 억제하기 위해 필요함
-
Chrome과 Chromium의 내부 오디오 차단 기능
- Google Meet 통화 중 다른 탭에서 YouTube 비디오를 재생해도 Meet에서 인식하지 않음
- Chromium이 오픈 소스이므로 코드에서 기술적 세부 사항을 확인할 수 있음
-
에코 제거 알고리즘의 흥미로운 점
- 외부 스피커를 컴퓨터 마이크에서 약간 떨어진 곳에 두면 알고리즘이 오작동할 수 있음
-
회의 중 에코 제거의 필요성
- 회의 데이터가 다시 피드백되지 않도록 하기 위해 필요함
- PulseAudio와 Pipewire에는 에코 제거 모듈이 있음