KAIST 문화기술대학원의 GCT634 수업 자료로 공부한 내용입니다. 수업을 직접 들은 것은 아니라 혼자 자료로만 공부한거라 틀린 부분이 있을 수 있음!

Types of Music Data

  • 오디오: mp3, wav
  • 악보 (symbolic): 미디, typesetting 스크립트 언어 (MusicXML 등)
  • image: 스캔된 악보, 앨범 커버, 공연 영상
  • text: 메타데이터, 태그, 가사, 리뷰
  • user data: 청취 이력, 평가

Types of Audio Data Representation

  • 파형(디지털 오디오 샘플): 샘플링, 양자화
    • 스펙토그램: short-time FT
    • mel-spectogram: human pitch perception. 음성 데이터 분석에 주로 쓰임
    • constant-Q transform: 음계(반음계)로 변환. data series를 frequency domain으로 transform함

Digital Audio Chain

mic -> lowpass filter -> sampling -> quantisatoin -> D2A conversion -> lowpass filter -> amp -> speaker

Sampling and Quantisation

  • 순간적인 값을 주기적으로 선택해 연속된 time signal을 이산 time signal으로 변환
    • 숫자들의 seq으로 표현
    • sampling 주기(Ts): 몇 초에 한 번 샘플링하는지
    • sampling rate: fs = 1/Ts
    • notation: x(t) -> x(nTs)

읽어볼 것

Sampling Theorem

  • sampling rate(1초에 얼마나 sampling할 것인지)를 얼마로 설정할 것인가?
    • 너무 높으면 데이터 사이즈가 커짐
    • 너무 작으면 원래 신호를 reconstruct 할 수 없다
  • sampling theorem
    • 원래 신호를 재구성하려면 sampling rate가 신호의 최대 주파수의 두 배 이상이어야 함
    • fs > 2*fm
    • sampling rate의 절반은 nyquist freq라 부름
    • fs < 2 * fm인 경우 fold된다

Sampling Rate

  • 신호 또는 청력 제한의 대역폭에 의해 결정됨
    • 음악(CD): 44.1 kHz(소비자), 48/96/192 kHz(전문)
    • speech communication: 8 kHz

Sampling Rate Conversion (Resampling)

  • upsampling과 downsampling
    • upsampling: sampling freq를 증가히켜 더 높은 freq에서 아날로그로 변환
    • downsampling: sampling freq를 감소시킴
    • 데이터 사이즈를 줄이기 위해 44.1kHz의 CD 음악이 22.05kHz 이하로 종종 downsampling 됨
  • signal interpolation(사이를 채워줌)으로 계산됨
    • downsampling 전에 low pass filter를 통과시켜 aliasing noise 방지
    • windowed sinc function

Quantisation

  • real-value 신호의 진폭을 이산화함
    • 진폭을 가장 가까운 step으로 반올림
    • step은 비트 수에 의해 결정됨
    • N 비트로는 -2^(N-1) ~ 2^(N-1)-1의 데이터를 표현할 수 있다
  • 신호의 dynamic range에 의해 결정됨
    • LSB에 1비트 추가하면 음량이 6dB 증가
    • CD: 16비트 -> 96dB
    • speech communication: 8비트 -> 48dB

Loading Audio Files

  • sampling rate와 bit depth 체크
    • Audacity
  • 필요하면 resampling(주로 downsampling)을 함
    • Librosa는 오디오 파일을 로드할 때 resampling 제공

Waveform

  • 파형은 오디오를 자연스럽게 표현하지만 내용 분석에 제한이 있다
    • 주로 시간 에너지를 보여줌
  • 매 순간의 음악을 측정해 그 수치를 저장한 형태. 음악을 분석하기에 적합하지 않다
    • 우리의 음의 높이와 세기를 듣는 것이지 순간의 음압을 듣는게 아님
  • FT와 같은 변환 기법을 사용해 time 축의 데이터를 freq 축의 데이터로 바꿔줘야 할 필요가 있음
    • 이때 constant Q 변환을 사용하는데, 이 변환은 freq 축이 log 단위로 변환되고, 각 주파수에 따라 해상도가 다양하게 처리되기 때문에 (저주파는 저해상도, 고주파는 고해상도) 음악을 처리하는데 FT보다 유리함

Spectrogram

  • short-time FT를 사용해 2D 영상 표현
    • x축: 시간, y축: 주파수, 색상: 크기 반응
    • 일반적으로 dB척도(로그척도) 사용
    • 들리는 것과 보이는 것을 일치시키기 쉬움

Computing Spectrogram

  • 각 segment(frame)에 대해 = window(frame)를 잡아
    • DFT(FFT) 계산
    • 극좌표로 변환
      • magnitude, phase
    • magnitude 압축
      • 20logXmag: decibel
    • shifting by a hop size
  • spectrogram param
    • window size (FFT size)
    • hop size
    • window size

Discrete Fourier Transform (DFT)

  • x(n)의 frequency(sinusoidal) 성분 찾기
  • DFT로 A(k)와 Φ(k)를 찾음
  • x(n) = sigma(k=0, N-1, A(k)cos(2πkn/N + Φ(k)))
    • A(k): amplitude(magnitude)
    • Φ(k): pahse
    • N: DFT의 사이즈
    • k: 주파수 bin 지수 (0 ~ N-1)
  • sinusoid의 orghogonality 사용 (프린트 수식 참고)
  • 두 sinusoid 간의 내적곱(상관관계):
    • 동일한 주파수이면 (부호는 달라도 됨) != 0
    • 아니면 0 (직교함)
  • inner product with the input and sinusoids (프린트 수식 참고)
  • magnitude and phase (프린트 수식 참고)
  • the definition of DFT can be simplified using complex sinusoids
  • 행렬곱으로 볼 수 있음
  • 실제로는 직접 곱하는 것보다 FFT를 대신 사용함
    • 반복적으로 행렬을 작은 행렬로 나눔
    • O(N^2)에서 O(N^log2N)으로 시간복잡도 감소
  • DFT를 음악 사운드에 적용
    • pitch가 있는 musical tone은 주기적인 waveform을 가짐
    • DFT는 harmonic spectrum(harmonic overtone)을 보여줌
    • pitch 정보도 추출 ㄱㄴ
    • 일반적으로 magnitude가 waveform보다 더 sparse함

Effect of Window Type

  • Window type: 신호를 일정 길이만큼 잘라 관찰하자는 것
    • 매 시간마다 주파수의 성분이 달라지는 신호(예를 들어 음악)이 있기 떄문이다. 만약 전체 음악 신호에 대해 전 구간에서 FT를 취하면 전체 시간 구간에서 포함도니 주파수 성분들이 모두 들어오므로, 이 시점에서 나온 음이 몇 Hz인지 등 특정 시간에서의 주파수 성분에 대해 알고싶다면 그 부분을 windowing한다.
  • types of window functions
    • main lobe와 side lobe 간의 tradeoff
      • lobe: 안테나에서 방사되는 전파 에너지가 최댓값을 나타내는 방향의 돌출부
      • main lobe: 방사 에너지가 최댓값
      • side lobe: main lobe 이외의 방사군
    • 음악 분석에서는 Hann window가 가장 널리 사용됨
  • time과 frequency resolution 간의 tradeoff
    • time resolution: sampling 간격(ㅿt)을 의미함
    • frequency resolution: 원하는 곳을 freq domain에서 관찰할 때 얼마나 촘촘한 간격으로 해당 주파수 대역 값을 관찰할 수 있는지. 두 측정 결과 간의 주파수 간격을 나타냄
    • short window: 낮은 freq 분해능, 높은 time 분해능
      • sampling rate가 높음
    • long window: 높은 freq 분해능, 낮은 time 분해능
      • freq domain에서 촘촘하게 관찰할 수 있음

Human Ears

  • 인간의 귀는 스펙트럼 분석기인가?
    • 고막에서 청각신경으로 가는 복잡한 경로
    • 내이에 있는 달팽이관은 bandpass-filter bank임
    • 입력 freq에 따라 다른 위치에서 막이 공명하고, ㄹfreq는 membrane을 따라 log scale로 증가

Human Pitch Perception

  • Pitch resolution
    • 주파수가 올라갈수록 just noticeable difference(JND)가 증가함 = Mel scale
    • pitch에서 발견한 음을 인지하는 기준을 반영한 scale 함수
    • 톤의 피치 비율을 기준으로 인체 피치 분해능 근사
    • 음성 및 음악 분석에 가장 널리 사용
    • 로그 주파수 스케일
      • m = 2595log(1+f/700)

Computing Mel-Spectogram

  • linear freq를 mel scale으로 매핑
    • mel-scale filter bank 사용
      • 해당 대역폭 skirt를 사용해 center frequency에서 linear interpolation
      • 고주파수 범위 확대, 저주파수 범위 상대적으로 축소, 주파수 bin 수 감소

Musical scale

  • 음악 튜닝 시스템
    • 평균률(equal temperament): 1:2^(1/12)의 비율로 반음
    • 음표(m)와 주파수(f)에 대하여
      • m = 12log(2, f/440)+69
      • f = 440 * 2^((m-69)/2)

Review

  • 음악을 위한 로그스케일이 필요하다는 것을 알았음
  • 시간-주파수 표현을 사용하여 파형에서 직접 로그-주파수 스케일 스펙트럼 프로그램을 얻을 수 있을까?

Constant-Q Transform

  • 로그 간격 주파수의 sinusoidal kernel 집합을 사용하는 time-freq 표현
  • freq축이 log 단위로 변환되고 각 주파수에 따라 resolution이 다르게 처리됨
  • Q(=주파수/대역폭)를 일정하게 유지하기 위해 주파수가 커질수록 sinusoidal kernal의 길이가 짧아진다 (대역폭은 넓어짐)

Constant-Q IIR Filter Bank

  • IIR Filter(Infinite Impulse Response): 입력 신호의 값과 output 신호의 값이 재귀적으로 적용됨. 아날로그로 변환 쉬움
  • 음악적으로 설계된 constant-Q transform
    • 88개의 IIR bandpass filter
    • 중심 주파수는 각 피아노 음의 피치에 대응
    • 대역폭은 +/- 25센트의 정수로 설정되며 중심은 +/- 25센트임 (100cents = 1 semi-tone)