본문으로 건너뛰기

음성 활동 감지

Streaming Sound Wave와 그 파생 타입인 Capturable Sound Wave는 음성 활동 감지 (VAD)를 지원합니다. VAD는 음성이 감지된 경우에만 내부 버퍼를 채우도록 들어오는 오디오 데이터를 필터링합니다.

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

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

기본 사용법

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

VAD 토글 노드

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

VAD 노드 재설정

기본 VAD 설정

기본 VAD 제공자를 사용할 때, VAD 모드를 변경하여 그 공격성을 조정할 수 있습니다:

Set VAD Mode node

mode 매개변수는 VAD가 오디오를 얼마나 적극적으로 필터링하는지 제어합니다. 더 높은 값은 더 제한적이어서 오탐지가 적을 가능성이 높지만 일부 음성을 놓칠 수 있습니다.

VAD 제공자

VAD를 ToggleVAD 함수로 활성화한 후, 필요에 따라 다양한 음성 활동 감지(VAD) 제공자를 선택할 수 있습니다. 기본 제공자는 내장되어 있으며, Silero VAD와 같은 추가 제공자는 확장 플러그인을 통해 이용할 수 있습니다.

VAD 제공자 설정 노드

Silero VAD Extension

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

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

  2. UE 5.5 이하 버전의 경우: Silero VAD 확장 플러그인을 다운로드하기 전에 프로젝트에서 NNERuntimeORT가 비활성화되어 있는지 확인하세요. NNERuntimeORT가 활성화되어 있으면 이러한 엔진 버전에서 Silero VAD를 사용할 때 충돌로 인해 크래시가 발생할 수 있습니다

  3. 여기에서 Silero VAD 확장 플러그인을 다운로드하세요

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

  5. 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, 5.7, 5.8)

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

  • UE 5.5 이하: 플러그인 충돌로 인한 크래시를 방지하려면 Silero VAD를 사용하기 전에 NNERuntimeORT를 비활성화해야 합니다. 특히 UE 5.3에서는 NNERuntimeORTCpu와 NNERuntimeORTGpu도 비활성화해야 합니다

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

  • Silero VAD는 Windows, Linux, Mac, Android (Meta Quest 포함) 및 iOS에서 사용할 수 있습니다

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

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

설치한 후에는 SetVADProvider 함수와 Silero 클래스 제공자를 사용하여 이를 VAD 제공자로 선택할 수 있습니다.

음성 시작 및 종료 감지

음성 활동 감지는 단순히 음성의 존재를 감지할 뿐만 아니라 음성 활동의 시작과 종료를 감지할 수도 있습니다. 이는 재생 또는 캡처 중에 음성이 시작되거나 끝날 때 이벤트를 트리거하는 데 유용합니다.

최소 발화 지속 시간 및 무음 지속 시간과 같은 매개변수를 조정하여 음성 시작 및 종료 감지의 민감도를 사용자 지정할 수 있습니다. 이러한 매개변수는 간단한 소음이나 음성 사이의 너무 짧은 무음을 감지하는 등의 잘못된 긍정을 방지하도록 감지를 미세 조정하는 데 도움이 됩니다.

최소 발화 지속 시간

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

Set Minimum Speech Duration node

Silence Duration

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

Set Silence Duration 노드

음성 델리게이트에 바인딩

음성이 시작되거나 끝날 때 특정 델리게이트에 바인딩할 수 있습니다. 이는 음성 활동에 따라 텍스트 인식을 시작 또는 중지하거나, 다른 오디오 소스의 볼륨을 조정하는 등의 맞춤형 동작을 트리거하는 데 유용합니다.

On Speech Started에 이벤트 바인딩 On Speech Ended에 이벤트 바인딩

VAD 제공자 비교

Default VAD (libfvad)

장점:

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

최적 용도:

  • 조용한 환경에서의 간단한 음성 감지
  • 모바일 애플리케이션
  • 성능이 우선시되는 프로젝트
  • 보편적인 플랫폼 지원이 필요할 때