본문으로 건너뛰기

음성 활동 감지

스트리밍 사운드 웨이브캡처 가능한 사운드 웨이브와 같은 파생 유형들은 음성 활동 감지(VAD)를 지원합니다. VAD는 음성이 감지되었을 때만 내부 버퍼를 채우도록 들어오는 오디오 데이터를 필터링합니다.

이 플러그인은 두 가지 VAD 구현을 제공합니다:

기본 구현은 libfvad를 사용하며, Runtime Audio Importer가 지원하는 모든 플랫폼과 엔진 버전에서 효율적으로 작동하는 경량 음성 활동 감지 라이브러리입니다.

기본 사용법

사운드 웨이브 생성 후 VAD를 활성화하려면 ToggleVAD 함수를 사용하세요:

Toggle VAD 노드

VAD를 활성화한 후에는 언제든지 재설정할 수 있습니다:

VAD 재설정 노드

기본 VAD 설정

기본 VAD provider를 사용할 때는 VAD mode를 변경하여 공격성을 조절할 수 있습니다:

Set VAD Mode node

mode 매개변수는 VAD가 오디오를 얼마나 공격적으로 필터링할지 제어합니다. 값이 높을수록 더 제한적이며, 이는 허위 양성(false positives)을 보고할 가능성이 적지만 일부 음성을 놓칠 수 있음을 의미합니다.

VAD 제공자(VAD Providers)

ToggleVAD 함수로 VAD를 활성화한 후, 필요에 맞는 다양한 Voice Activity Detection 제공자 중에서 선택할 수 있습니다. 기본 제공자는 내장되어 있으며, Silero VAD와 같은 추가 제공자는 확장 플러그인을 통해 사용할 수 있습니다.

Set VAD Provider node

Silero VAD Extension

Silero VAD는 신경망을 사용하여 더 정확한 음성 감지를 제공합니다. 사용하려면:

  1. 프로젝트에 Runtime Audio Importer 플러그인이 이미 설치되어 있는지 확인하세요

  2. Google Drive에서 Silero VAD extension 플러그인을 다운로드하세요

  3. 다운로드한 아카이브에서 폴더를 추출하여 프로젝트의 Plugins 폴더에 넣으세요 (해당 폴더가 없으면 생성하세요)

  4. UE 5.6 이상의 경우: RuntimeAudioImporterSileroVAD.uplugin 파일을 편집하여 NNERuntimeORT 종속성을 추가하세요. "Plugins" 필드에서 RuntimeAudioImporter 포함 이후에 다음을 추가하세요:

   ,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. 프로젝트 재빌드 (이 확장 기능은 C++ 프로젝트가 필요합니다)
important
  • 기본 VAD는 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)

  • Silero VAD는 Unreal Engine 4.27 및 모든 UE5 버전을 지원합니다 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6)

  • UE 5.6+ 요구사항: Unreal Engine 5.6부터 Silero VAD 확장 기능은 .uplugin 파일에 NNERuntimeORT 플러그인 의존성을 수동으로 추가해야 합니다

  • Silero VAD는 Windows, Linux, Mac, Android (Meta Quest 포함), iOS에서 사용 가능합니다

  • 이 확장 기능은 소스 코드로 제공되며 사용하려면 C++ 프로젝트가 필요합니다

  • 플러그인을 수동으로 빌드하는 방법에 대한 자세한 내용은 플러그인 빌드 튜토리얼을 참조하세요

설치가 완료되면, Silero 클래스 제공자를 사용하여 SetVADProvider 함수로 VAD 제공자로 선택할 수 있습니다.

음성 시작 및 종료 감지

Voice Activity Detection(VAD)은 음성의 존재뿐만 아니라 음성 활동의 시작과 종료도 감지할 수 있습니다. 이는 재생 또는 캡처 중 음성이 시작되거나 종료될 때 이벤트를 트리거하는 데 유용합니다.

최소 음성 지속 시간 및 무음 지속 시간과 같은 매개변수를 조정하여 음성 시작 및 종료 감지의 민감도를 사용자 정의할 수 있습니다. 이러한 매개변수는 짧은 소음이나 음성 사이의 너무 짧은 일시 정지와 같은 오탐지를 피하기 위해 감지를 미세 조정하는 데 도움이 됩니다.

최소 음성 지속 시간

최소 음성 지속 시간 매개변수는 음성 시작 이벤트를 트리거하는 데 필요한 최소 연속 음성 활동량을 설정합니다. 이는 음성으로 간주되어서는 안 되는 짧은 소음을 걸러내어 지속적인 음성 활동만 인식되도록 합니다. 최소 음성 지속 시간의 기본값은 300밀리초입니다.

Set Minimum Speech Duration node

Silence Duration

Silence Duration 매개변수는 음성 종료 이벤트를 트리거하는 데 필요한 무음 지속 시간을 설정합니다. 이는 단어나 문장 사이의 자연스러운 일시 정지 중에 음성 감지가 조기에 종료되는 것을 방지합니다. Silence Duration의 기본값은 500밀리초입니다.

Set Silence Duration node

Speech Delegates에 바인딩하기

음성이 시작되거나 끝날 때 특정 delegates에 바인딩할 수 있습니다. 이는 음성 활동을 기반으로 텍스트 인식 시작 또는 중단, 다른 오디오 소스의 볼륨 조정 등과 같은 사용자 지정 동작을 트리거하는 데 유용합니다.

Bind Event To On Speech Started Bind Event To On Speech Ended

VAD 제공업체 비교

Default VAD (libfvad)

장점:

  • 가볍고 효율적
  • 모든 플랫폼에서 작동
  • 최소한의 리소스 사용
  • 모바일 및 저전력 장치에 적합

최적 사용 사례:

  • 조용한 환경에서의 간단한 음성 감지
  • 모바일 애플리케이션
  • 성능이 우선순위인 프로젝트
  • 범용 플랫폼 지원이 필요한 경우