Speech Utilities

Acoustic Echo Canceller

Acoustic Echo는 핸즈프리 나 스피커 폰 모드에서 동작하는 휴대전화, mVoIP를 서비스를 하는 스마트폰, Conference Call를 지원하는 전용 전화기, 화상 전화 및 화상 회의 시스템 등에서 통화를 시도한 사람의 일부 음성이 수신자의 수화기를 통해 다시 수신자의 단말기로 입력되어 소리가 깨끗하지 않는 현상입니다.
이런 문제를 해결하기 위해서는 수신자의 단말기 내에서 Acoustic Echo 를 Canceller 기능이 적용되어야 합니다. 나선(nahsun)은 Acoustic Echo Canceller는 임베디드 환경하에 동적 메모리를 할당하여 깨끗한 음질의 통화를 할 수 있도록 합니다.

acoustic ec block

               

지원 성능 특성

  • Reference
    • ITU-T Recommendation G.167
  • 샘플링 주파수 (KHz) : 8, 16

지원 소프트웨어 특성

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

 

 

Noise Suppressor

영상통화시 감도가 좋은 스피커 폰을 이용할 경우 잡음의 양이 훨씬 증가 하게 됩니다.원래 음성의 특성을 잃지 않으면서 원하지 않는 배경 잡음을 제거할 필요가 있습니다. 이런 문제점을 해결하기 위해 나선(nahsun)은 마이크 입력 신호를 분석 처리한 후 Noise Suppressor를 적용하여 배경 잡음을 최소화해 깨끗한 통화를 할 수 있는 기술을 보유하고 있습니다.

 

 noise suppression block

                

 

지원 성능 특성

  • Reference
    • ETSI guideline GSM 02.7
  • Noise Suppression  : -12 dB
  • 샘플링 주파수 (KHz) : 8, 16

지원 소프트웨어 특성

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

 

Packet Loss Concealment

Packet loss concealment (PLC)는 VoIP(Voice over IP) 통신에서 패킷 손실에 의한 음질 저하를 최소화 해 주는 기술입니다. 음성 신호가 VoIP망을 통해 패킷 단위로 전송을 하기 때문에, 목적지에 도착하는데 여러 가지 다른 경로를 거칠 수 있습니다. 수신단에서 패킷이 너무 늦게 도착하거나 패킷이 오염되거나 도착하지 않을 수도 있습니다. VoIP 연결 상태일 때는 ARQ와 같은 오류 제어 기술을 사용할 수 없고 수신단에서 패킷 손실에 대응해야만 합니다. 그래서 음성정보가 손실될 경우, 이를 보정할 수 있도록 원래 신호와 유사한 신호를 이용하여 손실된 정보로 위장하도록 할 수 있는 PLC 기술이 필요합니다.

나선(nahsun)은 여러 가지 다른 codec의 종류에 따라서 그에 적합한 PLC 기술을 적용합니다. 나선(nahsun)의 PLC를 적용하면 아래 그림과 같이 손실된 패킷의 신호를 보정할 수 있습니다.

  • 패킷 손실이 없이 제대로 전달된 음성 신호

PLC effect Org

&nbsp

  • 패킷 손실이 발생한 후, 0으로 채워 넣은 음성 신호

plc effect zeroplc

&nbsp

  • 패킷 손실이 발생한 후, PLC에 의해 복원된 음성 신호

PLC effect PLC

 

 

지원 성능 특성

  • Reference
    • ITU-T G.711 Appendix I recommendation
  • 지원 프레임 크기  : 10, 20, 30ms
  • 샘플링 주파수 (KHz) : 8, 16

지원 소프트웨어 특성

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

 

Dynamic Range Control

똑같은 크기의 소리도 음성신호가 입력되는 장치에 따라 입력되는 데이터의 크기가 달라집니다. 일부 단말기의 경우에는 입력되는 신호의 크기가 너무 작아서 상대방에게 잘 들리지 않는 문제점이 발생합니다. 이런 문제점을 개선해서 일정하고 편안한 음의 크기를 얻기 위해 나선랩스의 Dynamic Range Controller(DRC)는 오디오 신호의 크기를 자동으로 조절해서 단말기에 따른 입력 신호의 차이를 최소화 해줍니다.


DRC는 Application의 증폭 정도를 결정할 수 있으며 결정된 증폭의 정도에 아래 그래프와 같이 입력의 크기에 따라서 비선형적으로 증폭이 되어 큰 신호와 작은 신호의 차이가 줄어들게 됩니다.

drc block

 

    •  DRC가 되지 않은 일반적인 음성 신호

 

    •  DRC된 음성 신호

 

 

지원 성능 특성

  • 작은 신호의 경우에 대한 최대 42dB 증폭
  • 선택 가능한 증폭의 정도 : 0dB/6dB/18dB/30dB/36dB/42dB
  • 샘플링주파수 (KHz) : 8, 16

지원 소프트웨어 특성

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

 

 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