2020.코딩일지

딥러닝 기반 음성합성(1) 본문

NLP(NaturalLanguageProcessing)

딥러닝 기반 음성합성(1)

개발하는라푼젤 2021. 7. 19. 04:12
728x90

딥러닝 기반 음성합성(1)



강좌정보 Tacademy강좌링크
학습내용 음성생성 과정 및 기존 통계적 파라미터 방식부터
딥러닝을 활용한 음성합성 기법까지 음성합성 모델링 전반에 대해 알아봅니다.
또한 Tacotron2를 이용한 음성합성 과정에 대해 이해하도록 합니다.
강사 이준엽 박사과정 (서울대 Human Interface Lab)
학습기간 2021.06.15~2021.06.24 이수완료
학습시간 03:31:59
강의목록 [1강] 음성 모델링 I - DSP for Speech Signal Processing
  [2강] 음성 모델링 II - Speech Production (Source-Filter Model)
  [3강] 음성합성 입문 I - Unit-Selection, HMM
  [4강] 음성합성 입문 II - Deep learning, End to End (Tacotron/Tacotron2/Transformer)
  [5강] 음성합성 입문 III - 개인화(Multi-Speaker, Style Modeling)
  [6강] 음성합성 모델 실습I - Tacotron2

[1강] 음성 모델링 I - DSP for Speech Signal Processing

idea -> Speech formulaltion -> Human vocal Mechanism
--> Wave propagation
-> Perception of the ear -> Speech comprehension

인간의 귀는 저주파를 듣는다.
일정이상의 고주파는 안들림

Speech. Analog signal.

Analog to digital conversion

  1. Sampling
    Sampling rate
    높을수록 품질이 좋아지나 용량도 같이 커짐;
    그래서 적정선에서 끊어 노이즈섞인 저품질로 함. - Telephone(통화음)8kHz - Volp 16kHz - CD 44,100Kz
  2. Quantization
    8bit : 64개의 값 (손실많음)
    64bit : 118개의 값

Aliasing 주의 (11p)

아날로그 신호의 표본화 시 표본화 주파수가 신호의 최대 주파수의 2배보다 작거나 필터링이 부적절하여 인접한 스펙트럼들이 서로 겹쳐 생기는 신호 왜곡 현상. 이 현상을 피하기 위해서는 표본화 주파수를 신호의 최대 주파수의 2배 이상으로 높이고, 샘플링하기 전에 저주파 통과 여파기를 사용하여 최대 주파수 이상의 신호들을 제거해야 한다. 영화에서 선풍기의 날개가 천천히 회전하거나 반대로 돌아가는 것처럼 보이는 현상도 표본화 주파수가 부적절하여 느끼게 되는 것이다.
[네이버 지식백과] 에일리어싱 [aliasing] (IT용어사전, 한국정보통신기술협회)

Fourier analysis

주파수 도메인으로 시간축에서 주파수축으로 바꾸는 방법인 푸리에
모든 파동은 다양한 주파수를 가지는 sine wave의 값들로 표현할 수 있다.

Discrete-time Fourier Transform (DTFT)

신호의 비슷한 정도를 확인
magnitude의 변화는 사람이 민감하게 인지함.(중요)

Z-transform

DTFT 보다 만족하기 쉬운 형태!!

Discrete Fourier Transform (DFT)

시간을 마이너스무한대~무한대까지 모두; 실용적이진않다;

Fast Fourier Transform (FFT)

높은 연산량이지만 DFT를 좀더 효율적으로 계산한 알고리즘이 FFT이다.
DFT를 소형 DFT모듈로 분해하여 연산

DSP for Speech Signal Processing

Analog Signal
-> Anti-Aliasing lowpass filter(Aliasing방지.고주파날리기)
-> Samplig (연속적인값을 개별적으로 만들기)
-> Quantization (디지털신호로 바꾸기)
-> Window (Short-Time Analysis를위해 윈도우를 매프레임마다 곱하기)
-> DFT (주파수변환된 값=윈도우 취한 값을 원하는 형태로 사용.)

[2강] 음성 모델링 II - Speech Production (Source-Filter Model)

... 수학 공식으로 분석 😲 ...
나는 분명 봤지만 잘 모르겠다..
나중에 궁금할 때 다시 볼 것 ㅋㅋ

[3강] 음성합성 입문 I - Unit-Selection, HMM

Comparison of TTS techniques

| Class | Approach | Audio quality | Naturalness | Flexibility | Size of footprint | Runtime simplicity |
| :--------------------: | :------------: | :-----------: | :---------: | :---------: | :---------------: | :----------------: | --- |
| Concatenative | Unit-Selection | ★★★★★ | ★★★★ | ★ | ★★★ | ★★★★ |
| Statistical Parametric | HMM | ★★★ | ★★★ | ★★★★ | ★★★★★ | ★★★★ |
| | Neural Net | ★★★★ | ★★★ | ★★★ | ★★★★ | ★★★★ | ★★★ |
| End-to-End | Deep- Learning | ★★★★ | ★★★★ | ★★★★ | ★★★★ | ★★★ |

자연스러움엔 End-to-End 겠지만
내가 원하는건 Unit-Selection정도만으로도 가능할 수 있겠다!! 53p.

[4강] 음성합성 입문 II - Deep learning, End to End (Tacotron/Tacotron2/Transformer)

Tacotron
CBHG module

Tacotron1 보다 나아진 Tacotron2
Stop token 최대길이설정해놓고 최대길이 이후 잘라서 합성했었는데(계산량 비효율적),
언제 합성이 끝났는지 알려주는 Stop token으로 원하는 만큼만 계산하는 장점이 있다.
WaveNet vocoder사용

Tacotron2와 Transformer비교
training속도 Transfomer가 4.25배 빠름
학습은 빠르지만 테스트시 합성할때, inference가 느리다.
Transformer는 batch size가 중요하다.
서버 소용량으로 Tacotron2를 사용하는 것이 낫다 ~~

[5강] 음성합성 입문 III - 개인화(Multi-Speaker, Style Modeling)

[6강] 음성합성 모델 실습I - Tacotron2

Colab실습

Comments