소리에서 얻을 수 있는 물리량
- 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를 만들게 된다.
'AI > 음성 인식' 카테고리의 다른 글
[토크ON세미나] 딥러닝 기반 음성인식 기초 5강 - 음성인식 알고리즘 II - LAS (Listen Attend Spell) - DataLoader (0) | 2020.10.19 |
---|---|
[토크ON세미나] 딥러닝 기반 음성인식 기초 4강 - 음성인식 알고리즘 I - CTC - Data augmentation (0) | 2020.10.19 |
[토크ON세미나] 딥러닝 기반 음성인식 기초 3강 - Audio Classification & Tagging (0) | 2020.10.19 |
[토크ON세미나] 딥러닝 기반 음성인식 기초 2강 - 딥러닝 기초 II (0) | 2020.10.19 |