본문으로 건너뛰기

음향 에코 제거

스트리밍 사운드 웨이브캡처 가능 사운드 웨이브와 같은 파생 타입은 음향 에코 제거(Acoustic Echo Cancellation, AEC)를 지원합니다. AEC는 렌더 신호(예: 스피커를 통해 재생되는 오디오)의 재생으로 인해 캡처된 마이크 오디오에서 발생하는 에코를 제거합니다. 결과적으로 실시간 통신 시나리오에서 더 깨끗한 음성 캡처가 가능해집니다.

이 플러그인은 WebRTC AEC3 구현을 통해 AEC를 제공하며, 관련 AEC3 코드만 포함하는 경량 확장 플러그인으로 사용 가능합니다. WebRTC AEC3는 실시간 통신 애플리케이션에서 널리 사용되는 고품질 음향 에코 제거기입니다. 이는 스피커와 마이크 사이의 음향 경로를 모델링하여 캡처된 신호에서 에코를 제거합니다.

설치

음향 에코 제거를 사용하려면 WebRTC AEC3 확장 플러그인을 설치해야 합니다:

  1. Runtime Audio Importer 플러그인이 프로젝트에 이미 설치되어 있는지 확인하세요.
  2. WebRTC AEC3 확장 플러그인을 여기에서 다운로드하세요.
  3. 다운로드한 아카이브에서 폴더를 추출하여 프로젝트의 Plugins 폴더에 넣으세요(해당 폴더가 없으면 생성하세요).
  4. 프로젝트를 리빌드하세요(이 확장 기능은 C++ 프로젝트가 필요합니다).
important
  • WebRTC AEC3는 Runtime Audio Importer가 지원하는 모든 엔진 버전(UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 및 5.7)을 지원합니다.
  • 이 확장 기능은 소스 코드로 제공되며 사용하려면 C++ 프로젝트가 필요합니다.
  • 플러그인을 수동으로 빌드하는 방법에 대한 자세한 내용은 플러그인 빌드 튜토리얼을 참조하세요.

기본 사용법

일반적인 AEC 워크플로우는 세 단계로 구성됩니다:

  1. 스트리밍/캡처 가능 사운드 웨이브에서 AEC 활성화
  2. 10ms 프레임 전달을 위해 렌더 사운드 웨이브에서 렌더 청크 크기 구성
  3. 캡처 신호에서 에코를 제거하는 데 사용될 오디오를 제공하는 렌더 사운드 웨이브 바인딩

AEC 활성화

스트리밍 사운드 웨이브를 생성한 후 AEC를 활성화하려면 ToggleAEC 함수를 사용하세요. AEC 프로세서에 대한 샘플 레이트와 채널 수를 지정해야 합니다. 들어오는 캡처 또는 렌더 오디오가 이 값과 일치하지 않으면 자동으로 리샘플링되지만, 구성된 샘플 레이트는 여전히 품질(예: 16000 Hz보다 48000 Hz가 더 나은 에코 제거 성능을 제공함)과 성능에 영향을 미치므로, 리샘플링에 맡기기보다는 신중하게 이 값을 선택하는 것이 좋습니다.

Toggle AEC node

AEC가 현재 활성화되어 있는지 확인할 수 있습니다:

Is AEC Enabled node

렌더 청크 크기 구성

WebRTC AEC3는 오디오가 10ms 청크 단위로 처리되어야 합니다. 렌더 사운드 웨이브가 올바른 프레임 크기로 오디오 데이터를 전달하도록 하려면 렌더 Imported Sound Wave(스피커를 통해 재생되는 사운드 웨이브)에서 SetNumSamplesPerChunk 함수를 사용하세요.

올바른 청크당 샘플 수를 계산하는 공식은 다음과 같습니다:

Samples per chunk=SampleRate100\text{Samples per chunk} = \frac{\text{SampleRate}}{100}

예를 들어, 48000 Hz 오디오의 경우: 48000 / 100 = 480 샘플이 청크당 필요합니다.

Set Num Samples Per Chunk node

렌더 사운드 웨이브 바인딩

AEC를 활성화하고 청크 크기를 구성한 후, 캡처 신호에서 에코를 식별하고 제거하는 데 사용될 오디오를 가진 렌더 사운드 웨이브를 바인딩하세요. 이는 일반적으로 마이크가 포착할 수 있는 스피커를 통해 재생되는 사운드 웨이브입니다:

Bind AEC To Sound Wave Playback node

렌더링된 사운드 웨이브의 바인딩을 해제하려면:

Unbind AEC From Sound Wave Playback node

추가 구성

Stream Delay

렌더링 경로와 캡처 오디오 경로 사이의 예상 스트림 지연 시간(밀리초 단위)을 설정할 수 있습니다. 이는 하드웨어 및 시스템 지연 시간을 고려하지만, WebRTC AEC3는 많은 경우 이를 자동으로 추정할 수 있습니다:

Set AEC Stream Delay node

AEC 재설정

내부 AEC 프로세서 상태를 언제든지 재설정하여 누적된 에코 모델을 지울 수 있습니다:

Reset AEC node

WebRTC AEC3는 8000, 16000, 32000, 48000 Hz의 샘플링 레이트를 지원합니다. 일치하지 않는 오디오는 자동으로 리샘플링되지만, 이는 성능 오버헤드를 수반합니다. 최상의 품질과 성능을 위해 48000 Hz를 사용하고, 캡처 스트림과 렌더 스트림 모두의 실제 오디오 구성과 일치시키세요.