티스토리 뷰
Paper/TTS
[Paper 리뷰] FastPitch: Parallel Text-to-Speech with Pitch Prediction
feVeRin 2023. 12. 14. 10:44반응형
FastPitch: Parallel Text-to-Speech with Pitch Prediction
- Pitch contour를 예측하면 utterance의 semantic을 일치시키고 풍부한 음성 표현력을 얻을 수 있음
- FastPitch
- FastSpeech 기반의 fully-parallel text-to-speech 모델
- Pitch 조절을 통한 자연스러운 음성 변조와 frequency contour를 condition으로 한 합성 품질의 향상
- 논문 (ICASSP 2021) : Paper Link
1. Introduction
- Neural Text-to-Speech (TTS)는 합성 품질 향상을 위해 다양한 방법들을 꾸준히 제시하고 있음
- TTS 모델은 linguistic feature나 fundamental frequency를 condition으로 활용 가능
- 특히 fundamental frequency의 경우 neural TTS 모델의 성능을 크게 향상할 수 있음
- 일반적으로는 에 대한 conditioning이 사용됨F0
-> 그래서 Pitch contour라는 fundamental frequency를 condition으로 활용한 FastPitch를 제안
- FastPitch
- FastSpeech 기반의 feed-forward TTS 모델
- 모든 input symbol에 대해 추정된 fundemental frequency (Pitch contour)를 conditioning
- Pitch contour에 대한 명시적인 모델링을 통해 feed-forward transformer 구조를 개선
- Text 입력의 경우 linguistic information이 부족한 상황에서 동일한 phonetic unit의 서로 다른 pronunciation을 collapsing 할 수 있기 때문
- 결과적으로 수렴성을 향상하고 FastSpeech의 knowledge-distillation을 제거 가능
< Overall of FastPitch >
- Kernel-level 최적화 없이도 60배 빠르게 mel-spectrogram을 합성하는 TTS 모델
- 모든 input symbol에 대해 하나의 값으로 pitch를 예측하기 때문에 대화식 pitch 조절이 가능
- FastPitch를 통한
의 constant offsetting은 speaker의 identity를 보존하면서 자연스러운 variation을 생성 가능F0
2. Model Description
- FastSpeech를 기반으로 하여 두 개의 Feed-Forward Trasnformer (FFTr) stack으로 구성
- 첫 번째 FFTr stack은 input token의 resolution에서 동작하고 두 번째 FFTr stack은 output frame의 resolution에서 동작
: Sequence of input lexical units,x=(x1,...,xn) : Sequence of target mel-spectrogram frames라고 했을 때y=(y1,...,yt)
- 첫 번째 FFTr stack은 hidden representation
를 생성h=FFTr(x)
- Hidden representation 는 1D CNN을 활용해 모든 character의 duration과 average pitch를 예측h
: ,ˆd=DurationPredictor(h) ˆp=PitchPredictor(h)
-ˆd∈Nn,ˆp∈Rn - Pitch는 hidden representation
의 차원과 일치하도록 projection 된 다음h∈Rn×d 에 더해짐h
:g=h+PitchEmbedding(p) - Resulting sum
는 개별적으로 upsampling되고, output FFTr로 전달되어 output mel-spectrogram sequence를 생성g
:ˆy=FFTr([g1,...,g1⏟d1,...gn,...,gn⏟dn])
- 첫 번째 FFTr stack은 hidden representation
- Ground truth
는 training 과정에서 사용되고 예측된p,d 는 inference 과정에서 사용ˆp,ˆd
- 모델은 예측과 ground truth 간의 Mean Squared Error (MSE)로 최적화됨
:L=||ˆy−y||22+α||ˆp−p||22+γ||ˆd−d||22

- Duration of Input Symbols
- Input symbol의 duration은 LJSpeech dataset에서 학습된 Tacotron2를 사용하여 추정됨
를 final Tacotron2 attention matrix라고 하면,A∈Rn×t
- th input symbol의 duration은,i di=∑tc=1[argmaxrAr,c=i]
- Tacotron2는 single attention matrix를 가지고 있기 때문에 multi-head transformer의 attention head를 선택할 필요는 없음- FastPitch는 alignment에 대해 robust한 특징을 보임
- 서로 다른 Tacotron2에서 추출된 duration은 서로 다르게 나타나는 경향이 있음
-> BUT, FastPtich는 서로 다른 alignment에 대해서도 비슷한 품질의 음성을 합성해냄

- Pitch of Input Symbols
- Accurate autocorrelation method를 활용한 acoustic periodicity detection을 통해 ground truth pitch value를 얻음
- 알고리즘은 candidate frequency 중에서 normalized autocorrelation function의 maixum array를 찾는 방식으로 동작
- Candiate array에 대한 lowest-cost path는 Viterbi 알고리즘을 통해 계산됨
- Path는 candiate frequency 간의 transition을 최소화하는 역할 값은 추출된 durationF0 를 사용하여 모든 input symbol에 대한 평균으로 계산됨d
- Unvoiced 값은 제외되고, 평균 0, 표준편차 1로 standardized 됨
- 특정 symbol에 대해 voiced 추정치가 없는 경우, 해당 pitch는 0으로 설정됨F0
- 알고리즘은 candidate frequency 중에서 normalized autocorrelation function의 maixum array를 찾는 방식으로 동작

3. Experiments
- Settings
- Datasets : LJSpeech
- Comparisons : Tacotron2, Flowtron
- Evaluation
- MOS 측면에서 Tacotron2와 비교하면, FastPitch가 더 높은 품질의 음성을 합성할 수 있음

- Pariwise Comparisons
- 1/2/4개의 attention head, 6/10개의 transformer layer를 가지는 FastPitch의 변형에 대해서 예측된 pitch들을 비교
- 1개의 attention head, 6개의 transformer를 사용한 FastPitch 모델이 가장 pitch를 잘 예측함

- Multiple Speakers
- Multiple speaker 환경으로 FastPitch를 확장해서 결과를 비교
- Tacotron2, Flowtron과 비교했을 때 FastPitch가 우수한 합성 품질을 보임

- Pitch Conditioning and Inference Performance
- 예측된 pitch contour는 추론 과정에서 수정하여 생성된 음성을 제어할 수 있음
를 높이거나 낮추면서 음성의 표현력과 pitch의 variation을 높일 수 있음F0 - Frequency를 50Hz 만큼 shift 한 경우에 대해,
- FastPitch는 speaker의 identity를 보존하면서 음성의 변조 중에 발생하는 vocal chord를 모델링할 수 있음

- FastPitch의 추론 성능은 GPU에서 첫 2048개 utterance에 대해 real-time factor (RTF)는 912x로 측정됨
- CPU의 경우 108x로 측정됨

반응형