2020.코딩일지

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

NLP(NaturalLanguageProcessing)

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

개발하는라푼젤 2021. 7. 30. 10:45
728x90
강좌정보 Tacademy강좌링크
학습내용 문장이 음성으로 변환하는 음성합성 과정과 기초 알고리즘에 대해 이해하도록 합니다. 또한, Wavenet / FloWaveNet 등 최신 모델에 대해 알아보고 WaveGlow를 이용한 음성합성 구현 방법에 대해 알아봅니다.
강사 김형주 (서울대학교 Human Interface Lab 석사과정)
학습기간 2021.07.30 ~ 이수중
강의목록 [1강] Vocoder
[2강] Deep Generative Model 1 - Autoregresssive Model(Wavenet)
[3강] Deep Generative Model 1 2 Flow Model(RealNVP, FlowIAF)
[4강] 최신음성합성모델 - WaveNet Vocoder, FloWaveNet, WaveGlow, Parallel WaveNet
[5강] 음성합성 모델실습 - WaveGlow

딥러닝을 활용한 음성합성(2)

[1강] Vocoder

STT + TTS 는 필수........
화자인식 : (엄마/아빠/ 아이 를 구분)
음성향상 : 음성신호에서 잡음을 제거하여 유용한 신호를 추출하는 과정

vocoder란..
통신을 위한 음성압축기술.

딥러닝 음성합성 모델의 타겟 (33p.)

  1. 음성 신호(raw waveform)는 데이터의 차원이 커서 음성합성 모델의 직접적인 타겟으로 사용하기 부담스러움 (5초짜리 샘플링레이트여도 120k개의 샘플로이루어져 있다;;>Neuralvocoder뉴럴보코더로 해결
  2. STFT를 음성합성 모델의 타겟으로 사용하는 경우 복소수를 고려하여 모델을 설계해야 하는데 이는 쉽지 않음( 여전히 데이터 차원 문제를 해결할 수 없음)

35p. Griffin-Lim algorithm
그리핀알고리즘은 예전에 사용되었고 반복적.단순함
입력: STFT magnitude matrix
librosa.feature.inverse.mel_to_audio
다만 불안한 음성이므로 고퀄을 기대하기는 어렵다.

36p.Neural vocoder

  • mel-spectogram을 입력으로 받아 음성신호(waveform)을 생성하는 딥러닝 모델
  • 다량의 데이터 학습을 통해 neural vocodersms mel-spectogram과 음성 신호 사이의 관계를 이해하고, 고품질의 음성을 생성
  • 학습 시에는 1~2초 정도로 나누어진 음성 신호를 학습하도록 하여 메모리 사용의 부담을 줄일 수 있음
  • 대표적인 neural vocoder
    • Autoregressive model: WaveNet vocoder
    • Flow-based model: WaveGlow, FloWaveNet, Parallel WaveNet, ClariNet
    • GAN-based model: ParallelWaveGAN, VocGAN

[2강] Deep Generative Model 1 - Autoregresssive Model(Wavenet)

[3강] Deep Generative Model 1 2 Flow Model(RealNVP, FlowIAF)

우와.. 수학공식파티
WaveNet
음성신호에 대해 적용하는 모델.
▶ T 아카데미 온라인 강의 (머신러닝/딥러닝 수학 입문) :
https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=157

[4강] 최신음성합성모델 - WaveNet Vocoder, FloWaveNet, WaveGlow, Parallel WaveNet

WaveNet vocoder란? 88p. 3최신음성합성모델
주어진 mel-spectrogram에 해당하는 오디오(waveform)를 생성하는 보코더의 역할을 수행하도록 기존의 WaveNet을 수정한 것

WaveNet vocoder 장점
• 생성된 샘플을 바탕으로 새로운 샘플을 생성하여 음질의 퀄리티가 좋
은 편
• 직관적인 목적 함수
• 1~2초 길이의 음성 신호 및 mel-spectrogram을 이용하여 훈련 가

• CNN 기반 모델이므로 실제 사용 시에 훨씬 더 긴 길이의 음성 신호
합성 가능 (ex. 7초에 해당하는 mel-spectrogram을 입력으로 주면
이에 해당하는 음성 생성 가능)

WaveNet vocoder 단점
• Autoregressive property로 인한 느린 샘플링 속도
• 훈련 과정과 샘플링 과정의 mismatch (ex. teacher forcing)

Flow-based Vocoder 95p.

31:20 모델간차이점
WaveGlow는 channel ordering을 일반적으로 바꿈//음질이 조금 더! 좋다.
FlowWaveNet은 Actnorm을 사용.

[5강] 음성합성 모델실습 - WaveGlow

Colab실습
런타임-런타임유형변경-GPU로 바꾸고 시작...훈련12시간돌렸을때 성능이좋아진...다.....능...

 [실습 코드](https://colab.research.google.com/drive/1nLl5cBLRXFKWqwahh9ydWIpV3IiEeTmL?usp=sharing)
 [실습 코드 전체](https://colab.research.google.com/drive/1N6_joigWXgoDHfE1rm4rL2kBkmCpXW2H?usp=sharing)

Reference
WaveGlow (implemented by NVIDIA): https://github.com/NVIDIA/waveglow
딥러닝을 활용한 음성합성(1) (T-academy): https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=184

Comments