소리에서 얻을 수 있는 물리량

  • Amplitude(Intensity) : 진폭
  • Frequency : 주파수
  • Phase(Degress of displacement) : 위상

물리 음향

  • intensity : 소리 진폭의 세기
  • Frequency : 소리 떨림의 빠르기
  • Tone-Color : 소리 파동의 모양

심리 음향

  • Loudness : 소리 크기
  • Pitch : 음정, 소리의 높낮이 / 진동수
  • Timbre : 음색, 소리 감각

Fequency?

얼마나 소리가 압축되어 있느냐

Complex Wave(복합파)

우리가 사용하는 대부분의 소리.

푸리에 변환 (Fourier transform)

Input으로 들어오는 오디오 파일의 frequency 영역을 위해 푸리에 변환을 한다.
그 결과로 주파수의 강도와 위상(Phase)을 갖게 된다.

Audio Task

  • Sound

    • Sound Classification 유저가 Input을 넣었을 때 activate하는 기능을 한다.
    • Auto-tagging
  • Speech

    • Speech Recognition(STT) 음성 인식
    • Speech Synthesis(TTS) 음성 합성
    • Speech Style Transfer(STS) 음성 변환

Deep Learning Architectures

  • Connectivity Patterns

    • Fully-Connected
    • Convolutional
    • Dialated
    • Recurrent
    • Skep / Residual
    • Random
  • Nonlinearity modules

    • ReLU
    • Sigmoid
    • Tanh
    • GRU
    • LSTM
  • Loss (모델이 이상치를 향해 가고 있는가?)

    • Cross Entropy
    • Adversarial
    • Variational
    • Maximum Likelihood
    • L1 and L2
  • Optimizer

    • SGD
    • Momentum
    • RMSProp
    • Adagrad
    • Adam
    • Second Order
  • Hyper Parameters

    • Learning rate
    • Weight decay
    • Layer size
    • Batch size
    • Dropout rate
    • Weight initialization
    • Data augmentation
    • Gradient clipping
    • Momentum

Multi-Layer Perceptron(MLP)

epsil layer : MLP에 non linearity module만 빼면 된다.

CNN를 오디오에 어떻게 적용할까?

오디오의 Input data는 Spectrogram이기 때문에 Frequency / time 만을 갖는다. Channel은 갖지 않는다.
만약 1-D CNN을 사용하면 Convolution filter 크기가 frequency 영역대는 고정되고, time에 따라서 진행하게 된다.

보통 2-D CNN을 사용한다. Frequency와 time을 가지고 convolution layer를 쌓고, layer가 쌓일수록 output channel이 생기게 되어 time이랑 Frequency 영역에서 pattern을 찾는 것이다.

Sample CNN은 phase-invarient representation을 반영한다. classification model에서는 phase는 날리고, magnitude level만 갖고 cnn을 돌리는데 phase에도 많은 정보를 갖고 있다. 가령, 화자를 분별할 때, 사람마다의 음색이 있을 것이다. 이런 부분을 잡을 땐 sample CNN을 사용하는 게 더 많은 정보량을 갖게 된다.

RNN

Hidden State를 유지하면서 이전 출력을 입력으로 사용할 수 있는 신경망. 어떠한 input length든 커버하고, 입력 크기에 따라 모델 size가 증가하지 않는다. Historical information을 잘 활용하며, 시간축에 따른 Weights Sharing이 진행된다.

LSTM (Long Short-Term Memory Unit)

기존 RNN에서 vanishing gradient를 처리하며 GRU의 일반화된 모델.

  • Update gate : 현재 정보를 얼마나 반영할 것인가?
  • Relevance gate : 이전의 정보를 얼마나 포기할 것이냐?
  • Forget gate : 이 셀을 지울 것이냐?
  • Output gate : 이 셀에서 내보낼 정보를 어느 정도 포함해야 하는가?

Attention

인코딩된 정보와 디코딩된 정보간의 Hidden state의 Alignment를 맞추는 것.
hidden state 두 개가 softmax를 거쳐 어떤 alignment를 형성하는데 여기에 fully connected가 붙어 context vector를 만들게 된다.

+ Recent posts