[Deep.人. Article] 비전사 데이터를 활용한 개인화 음성 합성 - DeepBrainAI

Technology
|
March 2, 2022
Deep Learning Team : Colin

들어가며

지난 시간에 살펴본 AdaSpeech 모델과 같이 기존의 TTS 적응 방식은 특정 화자의 목소리를 합성하기 위해 텍스트-음성 쌍의 데이터를 사용해 왔습니다. 그렇지만 데이터를 쌍으로 확보하는 것이 현실적으로 어렵기 때문에 전사가 안된 음성 데이터만으로 TTS 모델을 적응 시킬 수 있다면 훨씬 효율적인 방법이 될 것입니다. 가장 쉽게 접근해 볼 수 있는 방법으로 음성의 전사를 위해서 음성인식(ASR) 시스템을 활용하는 것을 생각할 수 있겠으나 특정 상황에서는 적용이 어렵고 인식 정확도도 충분히 높지 않기 때문에 부정확한 전사로 인해 최종 적응 성능을 저하 시킬 수 있습니다. 그리고 TTS 파이프라인과 적응을 위한 모듈을 함께 joint training하는 방식으로 이 문제를 해결하고자 하는 시도들이 있었는데 이런 훈련 방식은 다른 상용 TTS 모델들과 쉽게 결합시킬 수 없다는 단점을 안고 있습니다.

AdaSpeech2에서는 어떤 TTS 모델이든 함께 결합시킬 수 있는 추가 모듈을 설계하여 전사가 안된 음성으로 학습을 가능하게 하고(pluggable), 이로부터 텍스트-음성 쌍 데이터로 적응시킨 TTS 모델의 성능과 동등한 수준의 결과를 낼 수 있는 모델을 제안합니다(effective).

바쁜 현대인을 위한 세 줄 요약

  • AdaSpeech의 구조에 Mel Encoder를 추가 모듈로 붙여서 음성 데이터만을 활용하여 특정 화자에 대한 음성을 적응 시킬 수 있도록 유도하였습니다.
  • Mel Encoder의 잠재 공간이 Phoneme Encoder의 잠재 공간과 유사해지도록 학습 시켜서 Mel Decoder 입장에서는 입력이 텍스트로 들어오든 음성으로 들어오든 상관없이 같은 피쳐를 받을 수 있습니다. 이는 사전 학습된 TTS 모델에 음성 데이터만을 입력으로 넣어줘야 하는 상황에 적합합니다.
  • AdaSpeech2의 적응 방식은 어떤 TTS 모델이든 붙여서 활용할 수 있으며 텍스트-음성 쌍 데이터로 특정 화자를 적응 시킨 모델들과 비슷한 성능을 낼 수 있습니다.

모델 구조

AdaSpeech2는 phoneme encoder와 mel-spectrogram decoder로 이루어진 AdaSpeech를 backbone 모델로 사용합니다. 기존의 AdaSpeech처럼 acoustic condition modeling과 conditional layer normalization을 사용하지만 간결함을 위해 위의 그림에는 표현되지 않았습니다. 여기에 음성 데이터를 받아서 인코딩하는 mel-spectrogram encoder를 추가하고 이를 phoneme encoder의 출력과 비슷하게 만들 수 있도록 L2 loss를 적용합니다. 자세한 학습 과정은 아래에서 설명하겠습니다.

 

학습 및 추론 과정

Step 1. 소스 모델 훈련

우선 소스 TTS 모델을 잘 훈련시키는 것이 중요합니다. 충분한 양의 텍스트-음성 쌍으로 AdaSpeech 모델의 phoneme encoder와 mel-spectrogram decoder를 훈련시키는데 이때 phoneme encoder의 출력을 mel-spectrogram의 길이로 늘려주기 위한 duration 정보는 Montreal Forced Alignment(MFA)를 통해 얻어냅니다.

Step 2. Mel Encoder 정렬

잘 훈련된 소스 모델을 얻었다면 여기에 비전사 음성 적응을 위한 mel-spectrogram encoder를 붙입니다. 최종적으로 음성의 오토 인코딩을 하면서 mel-spectrogram decoder의 입력으로 들어갈 피쳐를 만들어주는 역할을 하는데 전사 데이터(텍스트)로부터 나온 피쳐와 동일한 출력을 내뱉어야 하므로 우선 phoneme encoder의 잠재 공간과 동일하도록 만들어줄 필요가 있습니다. 그래서 텍스트-음성 쌍 데이터를 활용해 TTS 학습을 다시 진행하면서 phoneme encoder에서 나온 시퀀스와 mel-spectrogram encoder에서 나온 시퀀스 사이의 L2 loss를 구하고 이를 최소화 시키면서 둘 사이 잠재공간이 정렬되도록 유도합니다. 이때, 전체 구조를 다시 훈련시키는 것이 아니라 소스 모델의 파라미터는 고정시키고 mel-spectrogram encoder의 파라미터만 업데이트하기 때문에 이 방식을 pluggable하다고 표현할 수 있습니다.

Step 3. 비전사 음성 적응

이제 합성하고자 하는 특정 화자의 (비전사된) 음성 데이터만을 활용하여 모델을 fine-tuning합니다. 입력으로 들어온 음성이 mel-spectrogram encoder와 mel-spectrogram decoder를 거쳐서 다시 음성으로 합성되므로 오토 인코딩을 통한 음성 복원 방식이며, 이때는 소스 모델에서 mel-spectrogram decoder의 conditional layer normalization과 관련된 파라미터만 업데이트를 시켜주며 연산을 최소화합니다.

Step 4. 추론

위의 적응 과정이 모두 끝났다면 이제 모델은 텍스트가 입력으로 들어왔을 때 fine-tuning 되지 않은 phoneme encoder와 부분적으로 fine-tuning된 mel-spectrogram decoder를 통해서 특정 화자의 음성을 흉내낼 수 있게 됩니다.

실험 결과

적응 음성의 품질

표 1에서 joint-training은 phoneme encoder와 mel-spectrogram encoder를 동시에 학습 시키는 방식으로 본 실험에서 베이스라인으로 쓰이는 세팅인데, AdaSpeech2의 MOS, SMOS가 더 높기 때문에 phoneme encoder와 mel-spectrogram을 순서대로 학습 시키는 전략이 더 우월하다고 판단됩니다.

그리고 backbone으로 쓰인 AdaSpeech와 PPG-based 모델의 성능은 AdaSpeech2의 성능이 뛰어 넘어야 할 상한으로 고려되어 함께 비교하는 실험을 진행했습니다. MOS와 SMOS 결과를 봤을 때 AdaSpeech2는 상한으로 여겨지는 모델들과 거의 동등한 품질의 음성을 합성하는 것을 알 수 있습니다.

적응 전략에 대한 분석

앞서 학습 과정에서 언급한 전략들이 모델의 성능 향상에 기여했는지 평가하기 위해 ablation study를 진행했습니다. 결과적으로 phoneme encoder와 mel-spectrogram encoder의 출력 사이에 L2 loss를 제약으로 설정한 것을 제거하거나 fine-tuning 단계에서 mel-spectrogram encoder도 함께 업데이트하게 된다면 음성의 품질이 저하됩니다.

 

적응 데이터 양에 따른 합성 품질 변화

적응 음성 데이터 샘플의 수가 20개 보다 적을 때는 데이터의 양이 증가할수록 합성 품질이 크게 좋아지지만 그 이상으로 가면 유의미한 품질 향상이 나타나지 않습니다.

결론 및 의견

TTS 모델을 학습 시키는 머신러닝 엔지니어들은 데이터의 품질이 곧 합성 품질임을 알기에 데이터 수집 및 전처리에 많은 공을 들입니다. 그리고 새로운 화자로 음성을 합성하기 위해서는 새로운 화자의 음성 파일과 전사된 텍스트를 쌍으로 수집하여 TTS 모델을 처음부터 재학습을 시키게 되는데 AdaSpeech2의 방식을 사용하면 데이터는 음성만 수집하고 모델은 fine-tuning을 진행하면 되기 때문에 훨씬 효율적입니다. 어떤 TTS 모델에도 합쳐질 수 있는 모델이기 때문에 현실적으로 적용하기 쉽다는 것도 장점입니다.

만약 AdaSpeech2에서 추가적인 연구를 진행해 본다면 L2 loss 외에 cosine similarity와 같은 새로운 distance 함수를 제약으로 사용해서 이에 따른 성능 변화를 관찰해보는 것도 흥미로운 주제가 될 수 있겠습니다.

다음 시간에는 AdaSpeech 시리즈의 마지막 논문을 소개해드리는 시간을 갖도록 하겠습니다.

참고자료

(1) [AdaSpeech2 논문] AdaSpeech 2: Adaptive text to speech with untranscribed data

(2) [AdaSpeech2 음성 데모] https://speechresearch.github.io/adaspeech2/

 

 

Most Read

Event & Webinar
December 17, 2021

NRF 2022에서 딥브레인AI를 방문해주세요. - DeepBrainAI

딥브레인AI는 2022년 1월 미국 뉴욕에서 NRF2022에 참가합니다. 

News
September 13, 2021

수백억 투자 감사합니다… AI스타트업들 싱글벙글 - DeepBrainAI

AI(인공지능) 분야 창업 초기 단계의 토종 스타트업에 최근 투자가 몰리고 있다. AI 앵커 같은 가상 인간을 개발하는 딥브레인AI는 지난 3일 500억원의 초기 투자를 유치했다.

News
August 12, 2021

서울대-머니브레인, 딥페이크 탐지 AI 경진대회 개최 - DeepBrainAI

이번 대회는 인공지능 영상합성과 딥페이크 분야에서 세계적인 선두기업인 머니브레인과 서울대학교의 인공지능 연구실(DSAIL)이 주최, 데이콘이 주관, 한국정보화진흥원이 후원한다.