티스토리 뷰

반응형

Fast DCTTS: Efficient Deep Convolutional Text-to-Speech


  • Single CPU에서 real-time으로 동작하는 end-to-end text-to-speech model이 필요함
  • Fast DCTTS
    • 다양한 network reduction과 fidelity improvement technique을 적용한 lightweight network
    • Gating mechanism의 efficiency와 regularization effect를 고려한 group highway activation을 도입
    • 추가적으로 output mel-spectrogram의 fidelity를 측정하는 Elastic Mel-Cepstral Distortion metric을 설계
  • 논문 (ICASSP 2021) : Paper Link

1. Introduction

  • Tacotron과 같은 기존의 text-to-speech (TTS) model은 우수한 fidelity에 비해 recurrent neural network (RNN)-based architecture로 인해 합성 속도의 한계가 있음
    • 한편으로 FastSpeech, FastSpeech2와 같은 non-autoregressive architecture는 TTS의 합성 속도를 크게 개선할 수 있음
    • BUT, 해당 방식들은 근본적인 computation reduction 보다는 parallelization에 초점을 맞추고 있음

-> 그래서 computation reduction을 통해 real-time 합성이 가능한 Fast DCTTS를 제안

 

  • Fast DCTTS
    • Lightweight network를 구성하기 위해 여러 computation reduction과 fidelity improvement technique을 적용
    • Gating mechansim의 regularization effect와 computation efficiency를 만족하는 group highway activation을 도입
    • 추가적으로 speech quality를 측정하기 위한 metric인 Elastic Mel-Cepstral Distortion (EMCD)를 제안

< Overall of Fast DCTTS >

  • Efficiency와 regularization effect를 얻을 수 있는 group highway activation을 도입
  • 결과적으로 EMCD를 통해 각 techinque들의 효과를 분석하여 single CPU에서 real-time 합성이 가능한 lightweight TTS model을 설계

2. Optimization Techniques for Neural TTS

- Computational Optimization Techniques

  • Depthwise Separable Convolution
    • 음성 합성에서 depthwise separable convolution은 $\text{channel}\times\text{time}$의 2D convolution을 1D depthwise convolution과 1D pointwise convolution으로 decompose 함
    • 이때 2D convolution의 time complexity는 $\mathcal{O}(D_{K}MND_{F})$
      - $D_{K},D_{F}$ : 각각 convolution filter/feature map size
      - $M,N$ : 각각 input/output channel 수
    • Depthwise, pointwise convolution의 time complexity는 각각 $\mathcal{O}(D_{K}MD_{F}), \mathcal{O}(MD_{F}D_{F})$
      - 이론적으로, depthwise separable convolution을 통한 computation reduction은 $\frac{1}{N}+\frac{1}{D_{K}}$
  • Group Highway Activation
    • 기존의 DCTTS는 다음과 같은 highway activation layer를 사용:
      (Eq. 1) $y=T(x,W_{T})H(x,W_{H})+C(x,W_{C})x$
      - $x,y$ : 각각 input/output feature map, $H(x, W_{H})$: convolution operator
      - $T(x,W_{T}), C(x,W_{C})$ : 각각 transformation, carry gate이고 $C(x,W_{C})$는 $1-T(x,W_{T})$로 대체될 수 있음
      - $W_{T}, W_{C}, W_{H}$ : gate, operation parameter
    • Highway activation의 gate는 neural network 학습에 도움을 주지만, 각 gate의 computational cost가 $H(x,W_{H})$와 동일하기 때문에 computational burden도 $2\times, 3\times$로 증가함
    • 따라서 computation reduction을 위해 highway activation에 대한 다음 2가지 방식들을 고려할 수 있음
      1. Residual Connection
        - $T(x,W_{T})=C(x,W_{C})=1$인 highway activation의 특수한 변형
        - BUT, residual DCTTS는 음성 품질 측면에서 저하가 발생하고, 특히 audio encode/decoder에 적용했을 때 skipping이나 repeating 문제가 크게 증가함
      2. Group Highway Activation
        - Feature element를 group으로 combine 하고 group 내의 element는 gate value를 share 하도록 함
        - 결과적으로 group size를 $g$라고 할 때 gate vector size는 $\frac{1}{g}$만큼 감소되고, highway activation을 group highway activation으로 대체하면 convolution layer의 computation을 $(1+\frac{1}{g})/2$만큼 줄일 수 있음
        - 이때 $g$를 adjust 하여 computational efficiency와 regularizing effect 간의 trade-off를 만족할 수 있음
  • Network Size Reduction
    • Network size를 줄이면 합성 속도를 향상할 수 있음
    • 먼저 기존 DCTTS의 text encoder, audio encoder, audio decoder는 각각 14, 13, 11개의 convolution layer를 가짐
      - Audio encoder, decoder의 각 layer는 256 channel을 가지고, text encoder의 각 layer는 512 channel을 가짐
    • 결과적으로 output speech에 대해 layer, channel 수를 적절히 reduction 하여 acceptable fiedity를 만족하는 network를 찾을 수 있음
  • Network Pruning
    • Network pruning도 마찬가지로 computation과 size를 줄일 수 있음
      1. 일반적으로 pruning algorithm은 training 이후 각 unit의 importance value를 추정한 다음, low importance value를 가지는 unit을 제거하는 방식으로 동작함
      2. CNN model의 경우 convolution filter나 feautre map에 적용
    • 이때 논문에서는 group highway activation에 대해 pruning method를 적용함
      - 즉, less important feature map을 제거한 다음, feature가 제거된 해당 gate를 pruning 함

- Fidelity Improvement Techniques

  • Positional encoding은 realtive/absolute position information을 feature vector에 반영하는 방식
    • 이를 통해 feature vector 간의 temporal relation을 학습하여 attention stability를 개선할 수 있음
    • 논문에서는 TransformerTTS의 scaled positional encoding을 활용함
      1. 여기서 positional information은 $x'_{i}=x_{i}+\alpha\text{PE}(pos, i)$와 같이 feature vector에 더해짐
        - $\alpha$ : trainable weight
      2. $\text{PE}(pos, i)$는:
        - $i=2k$일 때, $\text{PE}(pos, 2k)=\sin\left(\frac{pos}{base^{2k/dim}}\right)$
        - $i=2k+1$일 때, $\text{PE}(pos, 2k+1)=\cos\left(\frac{pos}{base^{2k/dim}}\right)$
    • 추가적으로 scheduled sampling을 성능 향상을 위해 고려할 수 있음
      1. 일반적으로 autoregressive decoder는 previous step에 의존하므로 parallelize 하기 어려움
        - 이때 teacher forcing을 적용하면 previous output 대신 ground-truth mel-spectrogram을 활용하여 autoregressive decoder를 학습할 수 있음
        - BUT, teacher forcing은 ground-truth와 previous output에 대한 discrepancy 문제가 나타날 수 있음
      2. 반면 scheduled sampling은 해당 discrepancy를 완화하기 위해 ground-truth에서 training을 시작해 점점 previous output의 비율을 늘리는 방식

3. Elastic Mel Cepstral Distortion (EMCD)

  • High-fidelity lightweight TTS model을 얻기 위해서는 speech quality를 정확하게 evaluate 할 수 있어야 함
    • 일반적으로는 ground-truth에 대한 distance에 따라 output mel-spectrogram의 품질을 evaluate 함
      - BUT, Euclidean metric은 mel-spectrogram에 skipping이나 repeating이 존재하는 경우 적합하지 않음
    • 따라서 논문은 alignment를 고려하여 mel-spectrogram 간의 차이를 계산하는 metric인 Elastic Mel-Cepstral Distortion (EMCD)를 설계:
      (Eq. 2) $D(i,j)=w_{m}\times \text{MCD}(x_{i},y_{j})+\min\left\{D(i,j-1),D(i-1,j),D(i-1,j-1)\right\}$
    • 여기서 Mel-Cepstral Distortion (MCD)는 speech signal 간의 perceptual distance를 계산하는 metric으로:
      $\text{MCD}(i,j)=\sqrt{2\sum_{d=1}^{D}(x_{d}[i]-y_{d}[j])^{2}}$
      - $i=\{1,...,T_{syn}\}, j=\{1,...,T_{gt}\}$
      - $x,y$ : 각각 synthesized/ground-truth Mel-Frequency Cepstral Coefficient (MFCC) sequence
      - $T_{syn}, T_{gt}$ : synthesize/ground-truth MFCC sequence의 length
    • 이때 Dynamic Programming을 통해 optimal alignment를 찾으면서 distance를 계산하도록, Dynamic Time Warping (DTW)와 결합하여 MCD를 확장할 수 있음
      1. 그러면 alignment process의 각 step은 (Eq. 2)와 같이 formulate 되고, $w=[w_{hor},w_{ver},w_{diag}]$, $m=\arg\min\{ D(i,j-1), D(i-1,j), D(i-1,j-1)\}$
      2. 즉, weight vector $w$는 horizontal, vertical, diagonal transition에 대한 penality를 control 하는 hyperparameter로 구성됨
        - 각각은 repeating, skipping, matching에 해당
    • 결과적으로 논문에서는 $w=(1,1,\sqrt{2})$로 설정하여 사용함
      1. 이를 통해 matching algorithm이 $(i-1,j-1)$에서 $(i,j)$로 가는 diagonal matching path에 penality weight $w_{diag}=\sqrt{2}$를 할당하게 함
      2. Same point 간의 rectangular matching trajectory에는 penality weight $w_{hor}, w_{ver}=2$를 할당하게 함
      3. 해당 matching 이후, $\text{EMCD}(T_{syn},T_{gt})$는 $x,y$ 간의 EMCD value를 제공함
      4. 이때 추가적으로 evaluation에서 speech length의 효과를 제거하기 위해 $T_{gt}$로 EMCD value를 normalize 함
    • 해당 EMCD는 horizontal, vertical, diagonal transition에 대한 penality weight를 할당함으로써 repeating, skipping으로 인한 품질 차이를 효과적으로 측정할 수 있음

4. Experiments

- Settings

  • Dataset : LJSpeech, KSS
  • Comparisons : DCTTS (2018)

- Results

  • Depthwise Separable Convolution
    • Depthwise separable convolution을 적용한 경우, operation 수가 275B에서 100B로 크게 감소함
    • 일반적인 convolution을 사용한 경우, 합성 시간이 6.85초에서 18.16초로 증가함
  • Group Highway Activation
    • Group highway activation (GH)은 일반적인 highway convolution (HC)에 비해 75%의 계산량만을 사용함
    • 합성 시간 측면에서 GH DCTTS는 Residual DCTTS와 비교하여 7%의 단축효과를 보임

Group Highway Activation 효과 비교

  • Network Size Reduction
    • KSS dataset에서 $\text{GH_L6_C64}$가 가장 빠른 합성 속도를 보임
      - BUT, EMCD 측면에서는 나쁜 성능을 보이므로, 추가적인 quality improvement를 적용
    • $\text{GH}$ : group highway, $\text{L}x$ : layer 수, $\text{C}y$ : channel 수

Network size 별 합성 속도

  • Network Pruning and Weight Normalization Trick
    • $\text{GH_L6_C64}$를 기준으로 network pruning을 적용해 보면, 1.05초에서 0.86초로 18.09%의 단축효과를 보임
      - BUT, aggressive size reduction으로 인해 unrecognizable output이 발생함
    • 이때 training 초기에 weight normalization을 수행하고 pruning 이후 reduced network를 fine-tuning 하는 weight normalization trick을 적용하면, EMCD 개선 효과를 얻을 수 있음

Weight Normalization Trick

  • Positional Encoding and Scheduled Sampling
    • Positional encoding을 적용하면 EMCD를 LJSpeech에서 41.19%, KSS에서 12.16% 개선할 수 있음
    • 반면 scheduled sampling의 경우 뚜렷한 성능 향상이 나타나지는 않음
  • Fast DCTTS
    • 결과적으로 Fast DCTTS는 기존 DCTTS와 비교하여 1.6%의 compuation과 2.75%의 parameter 만을 사용함
      - 특히 Single CPU에서는 기존보다 7.45배 빠른 합성 속도를 보임
    • EMCD, MOS 측면에서도 Fast DCTTS는 DCTTS와 큰 차이를 보이지 않음

Fast DCTTS와 DCTTS 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total
Today
Yesterday