음성(voice) 기술을 온전히 이해하려면, 아날로그/디지털 전송 및 신호 처리를 모두 이해해야 합니다. 사람의 말이나 귀에 들리는 모든 소리는 아날로그로 되어 있습니다. 이 뜻은 시간에 대해 이산적인 신호가 아닌 연속적인 신호로 되어 있다는 의미 입니다.
사람들이 이야기를 나누는데 아날로그 통신이 이상적이기는 하지만, 아날로그 전송 방식은 안정적이지 않고, 전송간 잡음에 의해 원음을 복구하는데 효율적이지 못 합니다. 아날로그 전송에서 증폭기를 통하여 신호를 증폭시켰던 초창기 전화 통신망에서는, 음성과 잡음이 함께 증폭되었습니다. 이런 잡음으로 인하여 종종 연결 상태가 불안정해지곤 했습니다.
이런 아날로그 신호를 디지털로 전환하면 전송간 잡음을 제거하는 것이 쉽습니다. 따라서, 신호 재생 시 깨끗한 음을 그대로 유지시킬 수 있습니다. 이런 디지털화의 장점을 이용하여 전화 통신망은 PCM (pulse code modulation)으로 발전하게 되었습니다.
PCM
PCM은 아날로그 사운드를 초 당 8000 회 샘플링하여 각 샘플을 숫자 코드로 변환함으로써 아날로그 사운드를 디지털 형태로 변환합니다. 아날로그 신호는 표본화, 양자화, 코드화 단계를 거쳐서 디지털 신호로 변환합니다. 신호를 일정한 주기로 샘플링하는 과정을 표본화(Sampling)라 하며, 이 표본화 시에 실제 신호의 최고 주파수의 2배 이상의 간격으로 표본화를 하면 원 신호로 복원이 가능하다는 것이 Nyquist (나이키스트) 이론입니다. 표본화한 표본(Sample)마다 크기를 알수 있는 눈금을 정화는 과정을 양자화(Quantization)라고 합니다. 양자화된 신호를 이진수로 표현하여 가공 을 쉽게 하는 것을 코드화 (encoding)라고 합니다. 이런 과정을 거치는 것을 아래 그림에서 확인할 수 있습니다.
보통 사람이 낼 수 있는 음역은 4000 Hz (4kHz) 이하이므로, 필요한 샘플링 속도는 초 당 8000 회(샘플링 사이 간격이 125 마이크로초)입니다. 샘플링된 파형은 개별적인 디지털형태로 변환이 됩니다. 이 샘플은 샘플링을 한 순간의 파형의 진폭을 가리키는 코드로 표현이 됩니다. P C M은 코드에 대해 8 비트를 사용하며 진폭이 낮은 신호에 더 많은 비트를 할당하는 알고리즘 압축 방식을 사용합니다. 따라서, 전송 속도는 8000 * 8 bit = 64Kbps 가 됩니다. 한 호당 64Kbps의 대역폭이 필요하며, 한 채널을 형성하게 됩니다.
코덱별 특징
아래표에는 코덱별 특징이 나와 있으며, 코덱별 특징에 대해 간략히 살펴 보겠습니다.
G.711 PCM
일반적으로 64-kbps PCM 음성 코딩 기법을 규정한 것으로 mu-law와 a-law 가지 형태가 있습니다. 두가지 방식은 서로 비슷하지만 압축할 때 약간의 차이가 있으며, mu-law가 낮은 레벨에서의 신호 대 잡음비 성능이 약간 좋습니다. 북 아메리카에서는 mu-law 변조 방식을 사용하고 유럽에서는 a-law 변조 방식을 사용했습니다. 장거리 전화를 할 때 mu-law와 a-law 사이의 변환을 하는데 필요한 것은 전부 mu-law를 사용하는 국가의 책임입니다.
현재의 전화망에서는 G.711 방식으로 엔토딩된 음성이 전달되고, VoIP망에서도 MoS값이 좋은 G.711 코덱을 가장 많이 사용합니다.
G.723.1
아주 낮은 비트 속도로 멀티미디어 서비스의 음성이나 다른 오디오 신호들을 압축하는 데 사용할 수 있는 압축 기법을 규정하는 것입니다. G.723.1은 5.3kbps 와 6.3kbps의 두 가지 전송 속도를 가진 것으로 나뉘어져 있습니다. 6.3Kbps가 음질이 더 뛰어 납니다. VoIP 초창기에 256Kbps 이하의 대역폭을 가진 구간에서 이 코덱을 많이 사용하였으나, 현재는 음성 품질이 낮고, 대역폭이 충분한 경우가 많아 잘 사용하지 않습니다.
G.729
음성을 8Kbps로 코딩할할 수 있는 압축을 규정합니다. 변형된 것으로 G.729 Annex A , G.729 Annex B 등이 있습니다. G.729 Annex B의 경우 코덱 자체에 silence suppression 기능을 포함하고 있습니다. G.729는 시스코의 추천 코덱으로 전송속도 대비 MOS(Mean of Score)가 뛰어납니다.
앞에서 언급한 것외에도 G.726, G.728 등이 있지만, 우리나라에서는 별로 사용하지 않습니다. 설명된 코덱만 알아도 충분할 것입니다.
2000년 초만 해도 VAD (Voice Activity Dectection) 와 같은 기능들을 이용하여 소리가 없을 때는 패킷을 생성하지 않도록 하여 대역폭 사용량을 줄이기도 했었습니다. 그러나, 사용자들은 선두음 클리핑과 같은 단절을 느끼게 되어 음질이 많이 저하되었기 때문에 요즈음은 잘 사용하지 않는 기능입니다.
코덱의 품질 기준 MOS
위의 표에서 나온 MOS는 음성 코덱의 성능을 수량화 할 수 있는 일반적인 기준입니다. 음성 품질과 소리는 일반적으로 청취자의 기준에 따라 달라지기 마련이므로, 다수의 청취자와 샘플 재료를 통해 측정합니다. 즉, MOS 테스트는 각 음성 재료 샘플에 대해 1(나쁨)에서 5(좋음)까지의 등급을 매기는 청취자 그룹을 대상으로 시행됩니다. 그 다음 그 점수의 평균을 내어 MOS 점수를 구합니다.
위의 표에서 자세한 코덱별 MOS를 확인하시기 바랍니다.
광대역 품질의 요구 - G.722
기존의 G.711 등과 같은 코덱들은 보통 사람이 낼 수 있는 소리의 한계인 4KHz 까지를 최고 주파수 대역으로 설정하고 디지털화를 수행하였습니다. 그러나, 이제는 전화통화가 단순히 사람의 음성만을 전달하는 것이 아닌 주변의 잡음 (차소리, 대화하는 소리, 물건이 움직이는 소리)을 생생하게 전달하여 현장감을 더욱 느끼게 해주는 것이 중요해졌습니다. 따라서, 기존의 4KHz까지의 전송이 아닌 Wideband (7KHz)까지의 소리를 전달하는 것입니다.
G.722 코덱의 장점은 아래에 나와 있습니다. 기존 보다 두 배인 7KHz 대역까지를 디지털화를 수행하면서도 요구 대역폭은 G.711과 마찬가지로 64Kbps로 동일합니다.
압축 방식은 ADPCM (adaptive differential pulse code modulation) 기법을 이용합니다. ADPCM은 실제 이진 값을 암호화하는 대신 연속적인 샘플간의 차이를 암호화시키는 이진 전파 압축 방식으로서, 압축률이 높을수록 품질저하가 심하다는 단점이 있습니다.
CD급 수준의 음성 품질
사람이 낼 수 있는 소리가 4KHz인 반면, 가청 주파수 대역 20KHz 까지입니다. 사람의 귀를 통해서 들을 수 있는 모든 소리를 전달할 수 있도록 하는 것으로 CD의 경우 22,050Hz 까지를 디지털화합니다. 따라서, Wideband보다 더욱 뛰어난 소리를 전달하며 CD와 마찬가지로 최대 가청주파수 대역까지를 전달하므로, 청취자는 현장감을 더욱 생생하게 느낄 수 있습니다.
CD의 경우 22,050Hz(22.05KHz)를 지원할 수 있도록 44.1KHz와 16비트로 표본화하므로 7Mbps 정도의 대역폭이 필요하게 됩니다만 ADPCM과 같은 다양한 압축기법을 통해 요구 대역폭을 최소화하면서 MOS값을 그대로 유지할 수 있도록 할 것입니다.