오디오 시리즈
- 소리와 디지털 신호 & ADC
- 인코딩 및 파일 종류
- Feature
- 음성 모델
현실 세계의 소리를 어떻게 디지털 신호로 변환하는지에 대해 설명합니다.
소리와 음파
소리는 물체가 진동(vibration)하면 공기 입자들을 진동(oscillate)시키고 공기압을 변화시켜서 생기는 파동입니다. 소리는 파동 중에서 역학적 파동에 속하는데, 역학적 파동이란 매질을 변화시키면서 에너지를 한 지점에서 다른 지점으로 전달하는 파동이라고 할 수 있습니다. 소리의 경우 공기를 매질로 하는데 공기 입자들이 서로 부딪치면서 압력이 더 높은 부분과 낮은 부분이 생기고 이를 음파로 표현할 수 있습니다.
Waveform(파형)
음파(Sound wave)는 가로축을 시간으로, 세로축을 공기압으로 두는 파형(waveform)으로 표현할 수 있습니다. 파형을 통해서 주파수, 진폭 등의 정보를 얻을 수 있습니다.
Analogue to digital conversion(ADC)
이제 아날로그 소리를 어떻게 디지털 신호로 변환하는지에 대해 알아보겠습니다.
Analogue Signal
아날로그 신호는 가로축이 시간이고 세로축이 강도(amplitude)인 연속적인 신호입니다.
Ditigal Signal
디지털 신호는 이산적인 값들의 시퀀스로 유한한 개수의 값들을 가집니다.
Analogue to digital conversion(ADC)
ADC는 아날로그 신호를 디지털 신호로 변환하는 것을 의미하며, Sampling과 Quantization을 통해서 ADC 변환을 할 수 있습니다.
Sampling
샘플링은 소리 신호에서 특정한 시간에 포인트를 정해서 추출하는 방법입니다. 샘플링은 일정한 간격의 주기(Period)로 진행하며, 샘플링 주파수는 샘플링 주기의 역수이며 사실상 주파수와 동일합니다. 샘플링 주파수는 헤르츠(Hz)를 단위로 합니다. 예를 들어 주기가 $\frac{1}{16000}$ 초인 경우 샘플링 주파수는 16000Hz입니다.
Quantization
샘플링이 파형의 x축을 기준으로 연속적인 신호를 이산적인 신호로 바꾸었다면, 양자화는 y축을 기준으로 이산화합니다. y축에 고정된 개수의 이산적인 강도를 설정하고 각 샘플별로 가장 가까운 강도로 변환합니다. 강도의 개수가 많을수록 quantization error가 줄어듭니다. 양자화의 해상도는 bit의 개수로 측정됩니다. 예를 들어 bit depth가 16인 경우 양자화할 때 사용할 수 있는 강도(amplitude)의 개수가 $2^16$인 65536입니다.
오디오 모델 학습시 자주 사용하는 샘플링과 양자화 설정
- 자주 사용하는 샘플링 레이트 16000, 44100, 22050
- 자주 사용하는 비트 뎁스 16 bits. $2^{16}$