Posts 2021 딥러닝 기반 음성 합성 총정리 - 1
Post
Cancel

2021 딥러닝 기반 음성 합성 총정리 - 1

본 게시글은 towards data science 사이트에 Patrick Meyer가 작성한
‘State Of The Art of Speech Synthesis at the End of May 2021’를 번역 및 정리한 글이다.

많은 내용을 담고 있어 2개의 게시글로 나눠 작성할 예정이다.

글의 출처는 다음과 같다.
https://towardsdatascience.com/state-of-the-art-of-speech-synthesis-at-the-end-of-may-2021-6ace4fd512f2

0. Introduction

  • 2021년 5월까지 음성합성 연구 기술 현황에 대한 내용 총정리
    Sentence to Signal의 기술의 전반과 모델 소개
  • 이전 까지의 자동 음성 합성, 이에 대한 문제
    → 생성을 위한 파이프라인 소개
    → mel-spectrogram에 대한 간단 정리
    → Deep Generative model 소개
    → End to End System 소개
    → 음성 합성을 연구하는 기관 및 사람 등에 대한 설명

1. TL;DR (요약)

  • 딥러닝 기반의 음성합성의 과정은 크게 두 단계로 진행된다. 첫 번째 단계에서 문장을 주파수로 표현을 생성하여 mel-spectrogram을 만들어 내고, 두 번째 단계에서 mel-spectrogram을 파형으로 만들어, 들을 수 있는 음성을 만든다.
  • 최근 음성합성에 널리 활용되고 있는 기술은 입력과 출력 사이 정렬(alignment)을 개선하는 attention과 convolutional network이다. 정렬은 지속시간 예측에 대한 알고리즘에 의해 성능이 향상된다.
  • 정렬된 데이터는 vocoder에 의해 3차원 주파수(시간, 주파수, 파워)를 소리로 변경한다.
  • 모든 합성 결과물은 학습 데이터에 의존하기 때문에 데이터가 가장 중요하며, 최대한 운율과 리듬, 성격 요소 등 매개 변수화 할 수 있는 음성 데이터를 활용하는 것이 좋다.

2. One-to-many Problem

  • 음성합성에서의 핵심은 문장을 제시하면 그에 따른 수천 개 값의 파형을 생성하는 것이다.
  • 음성에는 음량과 억양, 속도, 처음과 끝, 감정 등 다양한 특성을 보유하고 있다.
    이를 전역(global) 또는 개별(individual)로 훈련하도록 단계를 나누어 다양한 특성들을 처리한다.
    (Tacotron에서 Encoder – Attention – Decoder를 진행한 후 Wavenet을 사용하는 이유)
    ex) Sentence → Phonemes(음운) → Spectrogram → Waveform → Audio Signal

3. Processing Pipeline

  • Vocoder는 두 번째 단계로, 이 주파수의 표현을 기반으로 생성을 마무리한다.
    생성 네트워크는 Convolution부터 VAE, Attention, GAN 등 순서로 표준이 되었다.

    processing_pipeline

  • 위 그림은 음성을 생성하는데 사용되는 머신러닝 파이프라인 구조다.

  • 대부분 딥러닝 합성과 비슷하게 학습 단계와 생성 단계로 구성되는데, 특이한 점은 ‘in between’이 삽입되어 다른 데이터와 음향 모델의 미세 조정을 수행한다.

  • 학습 단계에서 파이프라인으로 모델을 생성할 수 있다. 문장은 인코더와 디코더에 입력과 관련된 음성 파일이다. 여기에 화자의 ID가 추가되는 경우가 있다.

4. In Pipeline

1) Training Pipeline and module (학습 단계의 파이프라인)

  • 텍스트 분석 모듈 (Text Analysis module)
    먼저 Input에 대한 텍스트 정규화, 숫자 to 텍스트 변환, 문장 분할, 음절 to 음소 변환, 운율 요소 추가 등을 수행한다.
  • 음향 분석 모듈(Acoustic Analysis module)
    Input – 텍스트와 관련된 음향 특성 및 스피커의 ID
    학습 단계에서 기존의 데이터와 생성된 데이터의 특징 간 차이를 분석한다.
    이 때, 음향 feature는 FFT(Fast Fourier Transform)와 같은 신호처리 알고리즘을 사용하여 샘플이 생성된다.
    이 모듈은 신호 지속시간을 예측하고, 텍스트를 정렬한다.
    최신 논문에서는 이 예측 네트워크를 더 개선하고, 피치에 대한 예측을 더 향상시켰다.
  • 음성 분석 모듈(Speech Analysis module)
    학습 음성 데이터(Ground-truth)에서 다양한 파라미터를 추출하는데 사용된다.
    Tacotron과 같은 End-to-end 모델에서는 앞뒤 빈 공간을 제거하기도 한다.
    여기서 힘, 강도, 지속시간, 기본 주파수 등을 추출한다.
  • 학습 단계의 모듈은 문장의 벡터, 스피커 벡터, 음향 feature에서 뽑은 정보를 담아내며,
    이를 선형 또는 다양한 모양에 대한 예측 모델 또한 존재한다.

2) Inference Pipeline and module (생성 단계의 파이프라인)

  • 텍스트 분석 모듈 (Text Analysis module)
    출력 및 음향 모듈을 통해 feature prediction module은 필수적인 음성 표현을 생성한다.
    여기서 출력은 mel-spectrogram, bark scale cepstral, linear scale 크기, 기본 주파수(F0), spectral envelope, 지속시간, 주기성, 음높이 등의 정보를 포함한다.
  • 위에서 만들어진 출력은 vocoder의 입력으로 활용된다. 이 모듈에 다양한 버전이 존재하며, end-to-end 시스템에 활용할 때 단일로 사용되는 경우가 많이 있다.
  • Deepvoice1과 같은 초기 모델에서는 전통적인 parametric TTS 파이프라인에 의존했지만,
    이후 attention 기반의 seq2seq을 활용하는 Tacotron, Char2wav 등이 등장했다.

model_list_timestamp

위 표는 날짜 별로 발표된 논문에 대한 모델을 정리한 것이다. 참조 또는 응용된 모델은 화살표로 연결되어 있다.
앞에 하얀 네모 박스의 GAN, RNN, Attention, VAE 등 음성합성을 위한 기반이 되는 딥러닝 모델이다.

5. Introduction to the Mel-Spectrogram

  • Vocoder의 input은 모든 feature의 표현인 mel-spectrogram이다.
    Spectrogram의 오디오 신호에 여러 변환이 이뤄지고, 음성 신호로 생성된다.

  • 첫 번째 변환은 STFFT(Short-Term Fast FT)를 사용하여 신호의 스펙트럼을 추출한다.
    이 STFFT는 신호의 다양한 주파수와 그 진폭을 캡처하여 신호를 분해한 것이다.

    mel_spectrogram

  • 가로축은 시간, 세로축은 주파수 그리고 색상은 데시벨 단위의 신호에 해당된다.

  • Mel-spectrogram에서는 frequency scale을 logarithmic scale로 변환한다.
    사람이 인지하기에 500hz → 1000hz는 체감이 크지만, 100500hz → 101000hz는 체감이 없기 때문에 log를 취해 체감에 따른 강도를 비교하기 위해 나타낸다.

  • 인간은 주파수의 높낮이의 차이를 잘 체감하지 못하는 점 때문에 mel-scale이 활용되기 시작했다. Mel-scale은 청취자가 같은 거리에서 동일한 피치의 소리를 나타내는 강도를 파악할 수 있기에 자주 활용한다.

6. Deep Generative Models

  • 음성 생성은 일부 데이터로 아예 관련이 없는 데이터를 만들어내야 하기도 한다.
    22KHz로 10초동안 발음되는 문장은 16bit 기준 440byte의 시퀀스를 생성해야 하는데, 이는 1:14.7의 비율로 생성(?)해야 하는 것을 의미한다.
  • 음성 합성은 가장 처음에 CNN을 기반으로 생성되다가, 음성의 연속성을 위해 이전의 문맥을 잇는 개념을 도입하기 위해 RNN이 활용되기 시작했다. 이는 DCNN(Wavenet), VAE(Auto-Encoders), GAN, 픽셀 RNN과 CNN 등 모델로 구현되었다.

1) AR (Auto-Regressive)

ar_equation

  • 가장 일반적인 구조인 AR(Auto-Regressive)은 다음과 같다.
  • Auto-Regressive는 시계열에 대한 regressive이며, 이 시계열은 이전 값들과 관련 있다.
    초기 음성 합성에서 많이 채택했으며, 장기 의존성을 위해 자주 활용했다.
  • AR은 구현과 학습이 간단하지만, 잘못된 정보를 그대로 이어갈 수 있고, 최악의 경우 성능이 악화될 수 있다. 또한 직렬 구조로 GPU와 TPU를 활용할 수 없다는 단점이 있다.
    이는 실시간 음성 생성이 불가능하다는 것을 의미한다.
  • 이를 극복한 Wavenet과 ClariNet은 이전 세대에 의존하지 않으며, 메모리에 의해서만 제한되면서 병렬화가 가능하다.

2) DCCN (Dilated Cause Convolution Network)

DCNN

  • Wavenet에서 핵심 되는 기술로, 인접한 input 값이 아니라 일정한 거리를 두어 더 큰 영역에 필터가 적용되는 Dilated Convolution이다.
  • 단 몇 개의 레이어로 넓고, 다양하고 넓은 데이터를 활용할 수 있다는 장점이 있어 기술이 발표되고 많은 구조에서 이 모델을 채택했다.

3) Flow Based Architecture

flow_based

  • Flow 구조는 일련의 가역 변환(invertible transformation)으로 구성된다. Flow의 핵심은 간단한 구조의 가역 변환을 복잡한 가역 변환으로 만드는 것이다.
  • NVIDIA는 mel-spectrogram을 음성으로 변환하는 vocoder에서 generative flow를 활용한 waveglow를 발표했다.

4) Teacher-Student model

teacher_student

  • 두 가지 모델을 갖는다. 먼저 Non-AR 네트워크인 student 네트워크가 있으며, 다음으로 정확한 정답과 정렬을 학습하는(가이드 역할) pre-trained AR teacher 모델이 존재한다.
  • Teacher는 student의 병렬 feed-forward 모델의 결과를 기록하며, student는 학습 기준을 inverse AR flow와 관련 있으며, 다른 flow-based 모델은 waveglow와 함께 발표되었다.
  • 그러나 이 병렬 합성 모델의 문제는 invertible 변환에 대한 제한이 존재하는데, 이는 모델의 용량을 제한하는 것이라는 점이다.

5) Variational Auto-Encoders (VAE)

VAE

  • VAE는 auto-encoder를 개조한 것이다. Auto-encoder는 연계하는 2개의 neural network로 구성되어 있다. 이는 평범한 encoder-decoder 모델의 구성 방식이다.
  • 음성 학습 단계
    Encoder는 입력을 연속적인 latent reduce(잠재 축소) 표현으로 변환한다. (압축 형식 = Z)
    Decoder는 Z 값에 대한 재구성을 진행하는데, 이 때 최대한 output loss를 줄인다.
    이 때, overlearning을 제한하기 위해 학습 때 mean과 covariance로 정규화 한다.
  • 음성 생성 단계
    Encoder는 텍스트를 latent 상태로 변환하고, Decoder는 이 상태를 음향 신호로 변환한다.
  • 대부분 이미지 생성과 비슷한 절차를 거치기 때문에 PixelCNN, Glow 등 내용은 TTS의 neural network 아이디어의 근원이 되었다.

6) Generation Adversarial Network (GAN)

GAN

  • GAN은 Generator와 Discriminator를 opposing하는 원리에 근거하는 모델이다.
    Generator는 데이터에서 이미지를 생성하고, Discriminator는 생성된 이미지가 실제에 가까운지를 비교하여 원본인지 가짜인지 판단하도록 학습한다.
  • 많은 Vocoder에서 이 기술을 생성 과정에서 활용한다.
  • 위 6가지 방법 외에도 가우스 노이즈, IAF와 같은 Markov chain 변환을 통해 신호를 변경하는 확률론적 모델이 있지만 덜 보편적이다.
  • 그리고 Attention의 경우, 반복을 할 필요가 없다는 장점으로 seq2seq를 발전시켰지만, 여전히 입력과 출력에 대한 정확한 정렬을 예측하기 어렵다.
  • 그래서 그 외 Gaussian Mixture Model(GMM), Hybrid Location-Sensitive Attention, Dynamic Convolution(DCA), Monotonic Attention(MA) 등 알고리즘을 적용한 연구가 진행중이다.

model_list_all

• 16년 9월 DNN 기반의 합성 모델을 시작으로 21년 5월까지의 모델이 나열되어 있다.
• 21년 8월 개최된 Interspeech에 게재된 논문은 포함되지 않았다.

다음 글에서 계속

https://hwrg.github.io/posts/2021-딥러닝-기반-음성-합성-총정리-2/

This post is licensed under CC BY 4.0 by the author.