본문 바로가기

딥러닝 & 머신러닝/강연

그래비티 클래스 4주차 강의 내용 정리

오늘은 마지막 순서로 음성 관련 딥러닝 강의를 들었다. 음성 관련 딥러닝에 대해선 정말 문외한 그 자체였는데, 강사님이 너무 유쾌하고 친절하게 처음부터 차근차근 알려주셔서 없던 흥미가 막 돋아나는 강의였다! 목소리도 크시고 발성도 좋으셔서 전달력이 아주 좋았고, 어떤 질문에도 전문적으로 다 대답해주시고 하나라도 더 알려드리려고 하는 모습이 굉장히 인상적이었다. 거기다가 재미있기까지 해서 토크 콘서트 온 느낌이었다ㅋㅋㅋ but 강사님은 진짜 별 5개 중 10개지만, 내 이해력과 바탕이 조금 부족한 탓에 후반부가 약간 어려운 게 흠이었다 ㅠ

 

4주 동안 양질의 딥러닝 강의를 들을 수 있어서 정말로 유익한 시간이었다. 뭔가를 떠먹여 준다는 느낌보다는 '이런 저런 길이 있으니 필요하면 네가 공부를 더 해봐라'같은 느낌이었다. 누군가에겐 조금 아쉬울 수 있는 점이지만, 자유로운 공부를 좋아하는 나에겐 굉장히 좋은 강의 방향이었다. 다음에도 이런 기회가 있다면 또 신청해봐야겠다!!


고막의 진동과 귓속뼈에 전달 = 마이크

 

여러 가지 사인파형의 집합이 우리 귀에 들어오는 것

 

소리의 3요소: 크기, 높낮이, 음색

 

주파수가 높을수록 속도는 빠르다

 

소리는 온도에 따라 속도가 다르다 – 굴절을 일으킴

 

파장이 클수록 회절이 잘된다 – 저음 위주로 회절이 된다.

 

사람의 청각적 특성 중 칵테일 파티 효과를 구현하기 위해 어텐션이라는 기술이 등장한 것.

 

아날로그 신호 = 전기신호 -> 컨버터 -> 디지털 신호 = 0,1

 

컴퓨터에 들어가기만 할 꺼면 스피커는 필요 없다.

 

샘플링: 사인파가 있는데, 여기서 1초당 데이터를 몇 개까지 표현할 것인가?

양자화: 각각의 시그널을 우리 기준으로 표현

부호화: 양자화된 시그널을 컴퓨터가 알아들을 수 있게 0,1로 표현

 

음향 데이터와 음성 데이터: 음성 데이터는 사람만 들을 수 있으면 되기 때문에 가청 주파수인 40kHz까지만 검출하면 된다. 가청 주파수가 20kHz까지이기 때문.

 

raw data를 한 번 압축한게 amplitude, 그걸 양자화하면 dB

 

44p의 데이터 파형 그래프: 32000, -32000이 범위 -> 16비트로 샘플링 됨

근데 여기서 진폭만 알 수 있고 주파수와 음색은 모름

 

그냥 FFT -> 전체를 한꺼번에 푸리에 변환

STFT -> 예를 들어 통째로 말고 1초마다 FFT를 함. window size와 hop size를 조절하면서

10초 짜리 데이터를 window size는 1초로 하고 hop size는 0.5초면 20개의 데이터가 나온다

-> 중간중간 겹치면서 해줘야 소리가 중간에 안 끊긴다

 

STFT를 통해서 나온게 스펙트로그램: 시간에 따른 주파수에 따른 진폭의 변화량

but 여러 소리가 섞였을 때 서로 분리하기 힘듦

 

mel-scale filter(mel-band): 저주파엔 민감하고 고주파엔 둔감한 사람의 달팽이관의 특성을 반영하는 필터 -> 고주파는 rough하게 압축하고, 저주파는 조밀하게 압축한다.

 

8000개의 주파수 20장을 128개, 20장의 배열로 변환하는 것을 mel-band가 해준다.

 

MFCC: log mel spectrum에서 한 번 더 압축을 시키는 것. 더 저음 쪽으로 압축하는 것.

 

Data Augmentation에서 Dynamic range compression: 낮은 음은 크게, 큰 음은 낮게 노멀라이징 하는 것. SpecAugment: 소리의 중간 중간을 0으로 만들어버리는 것. (Dropout 효과)

 

Log-Mel-Spectrogram으로 데이터를 유의미하게 압축

 

Spectrogram도 CNN 적용이 가능하다.

 

SNR: SigNal to Ratio – 여러 소리 중에 무의미한 신호의 비율