1. 오디오 데이터의 특징
음파(sound wave)는 매질을 통해 전파되는 진동으로 연속적인 신호입니다. 음파 자체는 아날로그 신호입니다. 따라서 이를 컴퓨터에서 사용할 수 있도록 이산적인 디지털 신호로 변환해야 합니다.
디지털 음향 파일의 포맷으로 .wav(Waveform Audio File), .flac(Free Lossless Audio Codec), .mp3(MPEG-1 Audio Layer 3)등이 있습니다. 이 포맷들은 오디오 신호의 디지털 표현을 압축하는 방식에서 차이가 있습니다.
우리가 말을 하거나 악기를 연주하면 공기 중에 진동이 발생합니다. 이러한 아날로그 신호는 마이크에 의해 포작되어 음파에서 전기 신호로 변환됩니다. 이 전기 신호는 아날로그-디지털 컨버터(Analog-to-Digital Converter)를 거치며 샘플링을 통해 디지털 표현으로 디지털화됩니다.
2. 샘플링과 샘플링 속도(Sampling Rate, Sampling Frequency)
샘플링은 연속적인 신호를 고정된 시간 간격으로 측정하는 과정을 의미합니다.
샘플링 속도는 1초동안 수집된 샘플의 수로 헤르츠(Hz)단위로 측정됩니다. 예를 들어 44,100Hz의 샘플링 속도를 갖는다면 초당 44,100번의 샘플이 수집된다는 뜻입니다. Hz가 높을 수록 고해상도 오디오입니다. 음성 모델 학습에 주로 쓰이는 샘플링 속도는 16,000Hz(16 kHz)입니다.
음성 모델 학습 시, 데이터셋에 있는 모든 오디오가 동일한 샘플링 속도를 가지고 있는지 확인해야 합니다. 만약 모델을 finetuning할 것이라면 사전학습 시 사용한 데이터의 샘플링 속도와 현재 사용하려는 데이터의 샘플링 속도가 일치해야 합니다. 예를 들어 16,000Hz의 샘플링 속도를 가진 5초 길이의 소리는 80,000개의 값으로 표현되지만, 동일한 길이의 소리여도 8,000Hz 소리라면 40,000개의 값으로 표현됩니다. 서로 다른 샘플링 속도를 일치시켜주기 위해 리샘플링(오디오 데이터 전처리 과정 중 하나)을 거쳐야 합니다.
3. 진폭(amplitude)과 비트뎁스(bit depth)
진폭은 소리의 세기(특정 순간의 소리의 압력 수준)를 의미하며 데시벨(dB)로 측정됩니다. 일반적인 말소리는 60dB미만입니다.
오디오 샘플은 특정 시점의 오디오 파동의 진폭을 기록합니다.
샘플의 비트뎁스는 각 샘플의 진폭을 표현하는 데 사용되는 비트 수를 의미합니다. 이진 용어(binary term)로, 진폭값을 연속값에서 이산값으로 변환할 때 양자화할 수 있는 수를 나타냅니다. 양자화는 아날로그 신호 값을 가장 자까운 디지털 값으로 근사화하는 과정입니다. 실제 아날로그 값과 디지털 값 사이에는 미세한 차이가 발생하는 데 이를 양자화 오류라고 합니다. 양자화 오류는 원래 신호에는 없던 무작위적인 신호를 만들어냅니다. 이렇게 원치 않는 신호 성분을 양자화 노이즈라고 합니다.
비트뎁스가 높을수록 더 많은 비트를 사용해 진폭을 표현하므로 디지털 표현이 원래의 연속 음파에 더 가까워지고 양자화 노이즈가 작아집니다. 반대로, 낮은 비트뎁스는 적은 비트를 사용하여 진폭을 표현하므로 세밀한 소리 표현이 어렵고, 음질 저하가 발생할 수 있습니다. 일반적인 오디오 비트뎁스는 16bit와 24bit입니다.
4. 오디오 표현 방법
4-1. 파형
파형은 시간에 따라 변화하는 신호의 모양을 시각적으로 나타낸 것입니다. 음파의 경우, 시간에 따른 진폭의 변화를 그래프로 표현한 것을 말합니다. 소리를 시각화하면 특정 사운드 이벤트가 언제 발생했는지, 전체적인 음량은 어떤지, 오디오에 어떤 노이즈나 불규칙성이 있는지 오디오 신호의 특징을 식별하는데 유용합니다.
4-2. 주파수 스텍프럼
오디오 데이터를 시각화하는 또 다른 방법으로 오디오 신호의 주파수 스펙트럼이 있습니다. 빛을 파장별로 분해하듯이 시간신호를 주파수 별로 분해하여 보여주는 것입니다. 쉽게 말해, 어떤 소리가 어떤 주파수들을 얼마만큼의 세기로 포함하고 있는지를 한눈에 보여주는 그래프입니다.
오디오 신호의 파형과 주파수 스펙트럼은 동일한 정보를 지닙니다. 단지 같은 데이터를 바라보는 두 가지 방법일 뿐입니다. 파형은 시간에 따른 오디오 신호의 진폭을 표시하며, 주파수 스펙트럼은 고정된 시점의 개별 주파수들의 진폭을 시각화합니다.
4-3. 스펙트로그램(spectrogram)
스펙트로그램은 소리의 주파수가 시간에 따라 어떻게 변화하는지 보여주는 시각적 표현입니다. 시간, 주파수, 주파수의 세기를 한 눈에 보여주는 2차원 그래프입니다.
X축은 시간을 의미하며 소리 신호의 시간적 흐름을 나타냅니다. -> 방향으로 시간이 흐릅니다.
Y축은 주파수로 위쪽일수록 높은 주파수를 의미합니다.
각 시간과 주파수 시점에서의 색상은 해당 주파수 성분의 세기를 나타냅니다. 밝은 색은 강한 세기를, 어두운 색은 약한 세기를 나타냅니다.
4-4. 멜 스펙트로그램(mel spectrogram)
멜 스펙트로그램은 스펙트로그램의 한 종류로 사람의 청각 시스템을 고려하여 주파수를 멜 스케일(mel scale)로 변환한 후 스펙트로그램을 생성하는 방법입니다. 쉽게 말해, 기존 스펙트로그램과 다른 주파수 축을 사용합니다. 음성 작업이나 머신러닝 작업에 주로 쓰입니다.
4-4-1. 멜 스케일
사람의 청각은 모든 주파수에 동일하게 민감하지 않습니다. 높은 주파수 대역에서는 상대적으로 덜 민감합니다. 이 민감성은 주파수가 증가함에 따라 로그함수적으로 감소합니다. 멜 스케일은 사람의 청각 특성을 반영하여 만든 주파수 스케일입니다. 사람이 실제로 느끼는 주파수 차이를 기반으로 주파수를 나타냅니다.
4-4-2. 멜 스펙트로그램 생성 과정
먼저 원본 오디오 신호에서 특정 시간 프레임 단위로 주파수 스펙트럼을 계산합니다.
계산된 주파수 스펙트럼을 멜 스케일을 기반으로 만든 Mel filterbank라고 불리는 필터를 적용시켜 주파수를 멜 스케일로 변환합니다.
각 filterbank 출력 값에 로그 변환을 적용하여 사람의 청각이 소리의 세기를 로그적으로 인지하는 특성을 반영합니다.
위 과정을 거친 결과를 시간, 멜 주파수, 세기를 나타내는 2차원 그래프 형태로 표현합니다.
멜 스펙트로그램은 인간의 청각 특성을 반영하기 때문에 음성 인식, 화자 식별, 음악 정보 검색 같은 작업에 널리 사용됩니다
References
https://huggingface.co/learn/audio-course/ko/chapter1/audio_data
'Artificial Intelligence' 카테고리의 다른 글
[Transformer] Transformer 모델 종류 (0) | 2024.06.17 |
---|---|
[Transformer] Masked Self-Attention (0) | 2024.06.13 |
[Transformer] Self-Attention (2) | 2024.06.10 |
지도학습 vs 비지도학습 (0) | 2024.05.31 |
[인공지능 기초 지식] 평가지표 (0) | 2024.05.20 |