티스토리 뷰
Paper/TTS
[Paper 리뷰] Fast DCTTS: Efficient Deep Convolutional Text-to-Speech
feVeRin 2024. 9. 15. 18:20반응형
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가지 방식들을 고려할 수 있음
- Residual Connection
- $T(x,W_{T})=C(x,W_{C})=1$인 highway activation의 특수한 변형
- BUT, residual DCTTS는 음성 품질 측면에서 저하가 발생하고, 특히 audio encode/decoder에 적용했을 때 skipping이나 repeating 문제가 크게 증가함 - 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를 만족할 수 있음
- Residual Connection
- 기존의 DCTTS는 다음과 같은 highway activation layer를 사용:
- 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 size를 줄이면 합성 속도를 향상할 수 있음
- Network Pruning
- Network pruning도 마찬가지로 computation과 size를 줄일 수 있음
- 일반적으로 pruning algorithm은 training 이후 각 unit의 importance value를 추정한 다음, low importance value를 가지는 unit을 제거하는 방식으로 동작함
- CNN model의 경우 convolution filter나 feautre map에 적용
- 이때 논문에서는 group highway activation에 대해 pruning method를 적용함
- 즉, less important feature map을 제거한 다음, feature가 제거된 해당 gate를 pruning 함
- Network pruning도 마찬가지로 computation과 size를 줄일 수 있음
- Fidelity Improvement Techniques
- Positional encoding은 realtive/absolute position information을 feature vector에 반영하는 방식
- 이를 통해 feature vector 간의 temporal relation을 학습하여 attention stability를 개선할 수 있음
- 논문에서는 TransformerTTS의 scaled positional encoding을 활용함
- 여기서 positional information은 $x'_{i}=x_{i}+\alpha\text{PE}(pos, i)$와 같이 feature vector에 더해짐
- $\alpha$ : trainable weight - $\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)$
- 여기서 positional information은 $x'_{i}=x_{i}+\alpha\text{PE}(pos, i)$와 같이 feature vector에 더해짐
- 추가적으로 scheduled sampling을 성능 향상을 위해 고려할 수 있음
- 일반적으로 autoregressive decoder는 previous step에 의존하므로 parallelize 하기 어려움
- 이때 teacher forcing을 적용하면 previous output 대신 ground-truth mel-spectrogram을 활용하여 autoregressive decoder를 학습할 수 있음
- BUT, teacher forcing은 ground-truth와 previous output에 대한 discrepancy 문제가 나타날 수 있음 - 반면 scheduled sampling은 해당 discrepancy를 완화하기 위해 ground-truth에서 training을 시작해 점점 previous output의 비율을 늘리는 방식
- 일반적으로 autoregressive decoder는 previous step에 의존하므로 parallelize 하기 어려움
- 이를 통해 feature vector 간의 temporal relation을 학습하여 attention stability를 개선할 수 있음
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를 확장할 수 있음
- 그러면 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)\}$
- 즉, weight vector $w$는 horizontal, vertical, diagonal transition에 대한 penality를 control 하는 hyperparameter로 구성됨
- 각각은 repeating, skipping, matching에 해당
- 결과적으로 논문에서는 $w=(1,1,\sqrt{2})$로 설정하여 사용함
- 이를 통해 matching algorithm이 $(i-1,j-1)$에서 $(i,j)$로 가는 diagonal matching path에 penality weight $w_{diag}=\sqrt{2}$를 할당하게 함
- Same point 간의 rectangular matching trajectory에는 penality weight $w_{hor}, w_{ver}=2$를 할당하게 함
- 해당 matching 이후, $\text{EMCD}(T_{syn},T_{gt})$는 $x,y$ 간의 EMCD value를 제공함
- 이때 추가적으로 evaluation에서 speech length의 효과를 제거하기 위해 $T_{gt}$로 EMCD value를 normalize 함
- 해당 EMCD는 horizontal, vertical, diagonal transition에 대한 penality weight를 할당함으로써 repeating, skipping으로 인한 품질 차이를 효과적으로 측정할 수 있음
- 일반적으로는 ground-truth에 대한 distance에 따라 output mel-spectrogram의 품질을 evaluate 함
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%의 단축효과를 보임
- 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 수
- KSS dataset에서 $\text{GH_L6_C64}$가 가장 빠른 합성 속도를 보임
- 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 개선 효과를 얻을 수 있음
- $\text{GH_L6_C64}$를 기준으로 network pruning을 적용해 보면, 1.05초에서 0.86초로 18.09%의 단축효과를 보임
- 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와 비교하여 1.6%의 compuation과 2.75%의 parameter 만을 사용함
반응형
'Paper > TTS' 카테고리의 다른 글
댓글