Voice Activity Detection (VAD)


우리가 전화할 때를 생각해 보면 통화할 때 거의 절반 정도는 침묵하고 있습니다. 즉, 상대방이 말을 하면 나는 듣기만 하고, 반면 내가 말을 하면 상대방은 듣기만 합니다. 

이때 기존의 회선교환망 환경에서는 이렇게 말을 하지 않더라도 채널이 비어 있는 상태로 전송될 뿐 그 채널을 다른 통화 요청자에게 할당하지는 못했습니다. 하지만 패킷망 환경에서는 이렇게 송화자가 침묵할 경우에는 패킷을 생성하지 않을 수도 있습니다. 이렇게 되면 일시적으로 음성이 대역폭을 사용하지 않고, 남는 대역폭을 다른 응용프로그램들이 사용할 수 있게 해 줄 수 있습니다. 이와 같이 입력 신호의 특성을 분석해서 음성 신호 구간인지 배경 잡음 구간인지를 결정하는 것이 Voice Activity Detection (VAD)의 기능입니다.

VAD를 사용하면 말의 시작 부분이나 음성의 진폭이 떨어지는 말의 끝 부분이 잘려나갈 수 있는데, 이것을 Clipping이라고 합니다. 나선(nahsun)의 VAD 엔진은 이런 클리핑에 의해서 음질이 나빠질 수 있는 경우를 최소한으로 줄여줍니다.

VAD concept

 

지원 성능 특성

 

  • 지원 프레임 크기  : 10, 20 ms
  • 샘플링 주파수 (KHz) : 8, 16

 

지원 소프트웨어 특성

 

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API