2020.09.22 R&D

더 깨끗하고 완벽한 AI 음성을 위해, 뉴럴 보코더(Neural Vocoder)

엔씨 AI센터 산하 Speech AI Lab의 음성합성팀은 게임 개발, 콘텐츠 제작 등을 지원하기 위해 텍스트를 기반으로 다양한 목소리를 만들어 내는 음성합성 기술을 연구하고 있습니다.

최근 음성합성팀에서 고안한 뉴럴 보코더 기술 ‘VocGAN’이 올해 10월 중국 상하이에서 개최되는 INTERSPEECH 2020 국제학회에 게재 승인되는 쾌거를 이루었는데요. 음성합성에서 주요한 역할을 하는 뉴럴 보코더를 주제로 다루기 때문에 이 논문은 벌써 국내외 연구자들 사이에서 높은 관심을 받고 있습니다.

이번 기사에서는 뉴럴 보코더 VocGAN[1, 2]를 개발한 Speech AI Lab 음성합성팀 양진혁 님의 글을 통해 합성음의 품질을 향상시키기 위해 어떤 고민이 있었고 또 어떻게 해결했는지, 앞으로의 계획은 무엇인지 들어보겠습니다.


VocGAN_KV

엔씨의 자체 뉴럴 보코더 기술, VocGAN


엔씨 음성합성팀에서는 합성음의 음질, 자연스럽고 안정적인 발화, 소량의 데이터로 특정인 목소리의 효과적인 표현, 실용화를 위한 속도와 모델 사이즈 개선 등을 주의 깊게 연구하고 있습니다. 그 중에서도 가장 중점을 두는 부분은 합성음의 음질을 높이는 것입니다.

합성음의 음질을 결정하는 주요한 요소로는 크게 두 가지가 있습니다. 첫째는 ‘주어진 입력 문장(텍스트)으로 주파수 영역의 간소화된 벡터들의 열인 멜 스펙트로그램(Mel-Spectrogram)을 얼마나 잘 생성해 낼 수 있는가’이고, 둘째는 ‘이렇게 예측된 멜 스펙트로그램으로부터 음성의 파형 자체를 얼마나 선명하게 합성해 낼 수 있는가’ 하는 것입니다. 그중 두 번째 이슈를 다루는 기술이 바로 뉴럴 보코더(Neural Vocoder)입니다.

음성합성팀에서는 작년 말 진행한 사내 테스트를 통해 합성음을 스피커로 재생할 때 원음과 큰 차이를 느끼지 못하는 수준을 달성했다고 내부적으로 판단했습니다. 하지만 헤드폰으로 청취했을 때는 순간순간의 끊어짐과 곳곳에서 조금씩 묻어나는 왜곡(Distortion)을 해소하지 못해 만족스럽지 않았습니다.

그래서 뉴럴 보코더 연구에 더 집중해 헤드폰으로 청취하는 상황에서도 귀에 거슬림을 거의 느낄 수 없을 만큼 음질을 높인 합성음을 만들자는 목표를 세웠습니다. 결국 ‘VocGAN’이라는 자체 뉴럴 보코더 기술을 통해 고품질의 합성음을 생성할 수 있었습니다.


빠른 속도, 가벼운 모델, 좋은 음질을 위해


음성합성팀에서 기존에 사용하던 뉴럴 보코더는 WaveGlow[3, 4]의 변형 모델이었습니다(지난 블로그 포스팅 참고). WaveGlow는 합성 속도가 빠르고 음질도 괜찮은 편입니다. 또 논문의 저자들이 오픈소스를 공개해 주어 쉽게 사용할 수 있다는 강점이 있었습니다.

하지만 다양한 서비스에 접목해 실용화하기 위해서는 더 빠른 속도, 가벼운 모델, 매우 좋은 음질 등이 필요했습니다. 특히 게임에 음성을 직접 적용하기 위해서는 헤드폰 청취 상황에서도 녹음 음성과 실제 음성의 구분이 어려운 수준의 완벽한 음질이 필요합니다. WaveGlow도 좋은 기술이지만 속도와 모델 크기 측면에서 아쉬움이 있고 음질 역시 많이 부족하다는 점에서 이와는 완전히 다른 보코더를 생각해야 했습니다.

우리 팀은 더 가볍고 빠르면서, 음질이 크게 개선된 보코더를 만들기 위해 고민하기 시작했습니다. 기존의 학습 방식으로는 원하는 조건을 모두 만족하는 보코더를 개발하기 어려울 것이라는 판단에 따라 최근 딥러닝에서 주목받고 있는 GAN(Generative Adversarial Network)[5]을 이용한 연구를 진행했습니다. 그러던 중 MelGAN[6], ParallelWaveGAN[7]과 같은 연구가 추가로 공개되었고, 이 논문들을 참고하며 GAN 기반 뉴럴 보코더에 확신을 가지게 되었습니다.

VocGAN의 핵심 기술

VocGAN_01

[그림1] MelGAN과 VocGAN의 구조


일반적으로 음성합성 모델에 사용하는 음성 신호 데이터는 16kHz(1초에 16,000개 샘플) 이상의 샘플링 주파수인 고차원 시계열 데이터입니다. 이러한 데이터의 스펙은 딥러닝 모델을 학습시키기 어려운 요건이 됩니다. 그러나 컴퓨터 비전 분야에서는 이러한 고차원 데이터를 생성하는 연구가 다양하게 이루어졌습니다[8].

비전 분야의 여러 연구에서 영감을 얻은 우리 팀은 음성을 더 효과적으로 학습시키기 위해 음성신호의 중요한 정보들이 저주파에 집중되어 있다는 특성을 잘 이용할 방법을 고민했습니다. 그리고 이와 같은 인사이트를 통해 샘플링 주파수를 낮춘 음성들을 직접 근사할 수 있도록 GAN을 설계했습니다.

VocGAN_02

[그림2] VocGAN 모델 세부 구조

 

뉴럴 보코더는 텍스트를 음성으로 바로 합성하는 것이 아니라, 음성 특징(예: 멜 스펙트로그램)을 음성 파형으로 변환하는 역할을 합니다. 이때 입력에 사용하는 음성 특징은 출력되는 음성 파형에서 특정한 알고리즘으로 추출된 데이터입니다.

따라서 Generator(VocGAN에서는 멜 스펙트로그램을 음성 파형으로 변환하는 모델)는 입력 데이터의 많은 정보를 활용해야 하고, Discriminator는 입력 데이터에 맞는 음성으로 생성했는지도 함께 판별해야 할 필요가 있었습니다. 이에 기존의 Discriminator에 Conditional Discriminator를 함께 사용하는 Joint Conditional and Unconditional Discriminator[9]를 도입하고 모델에 맞게 변형해 적용했습니다.

이처럼 두 가지 핵심 요소와 더불어 추가적인 기술들을 GAN 기반 보코더에 적용함으로써 속도와 음질 두 마리 토끼를 모두 잡는 보코더를 얻을 수 있었습니다.


기존 보코더와 VocGAN의 성능 비교


기존 보코더와 VocGAN의 공정한 비교를 위해 엔비디아가 Github에 공개한 Tacotron2와 WaveGlow의 코드[10] 그리고 학습된 모델을 그대로 사용했습니다. 또한 보코더만 WaveGlow와 VocGAN으로 차이를 두어 다음과 같이 샘플을 만들어 비교했습니다. (성능 비교를 위해 헤드폰 혹은 이어폰 청취를 권장합니다.)

• 텍스트: "VocGAN outperforms WaveGlow."

- WaveGlow


- VocGAN


들어보시면 WaveGlow보다 음질이 상당히 깔끔하게 합성된 것을 확인할 수 있습니다. 속도 측면에서도 GPU 기준 10배 이상 빠르고, 모델의 크기도 약 300MB에서 약 10MB로 축소되었습니다.

주요 모델이었던 WaveGlow 이후에 공개된 GAN 기반 보코더와도 결과를 비교해 보았습니다. 다음 샘플은 VocGAN 연구의 주요 선행 연구였던 MelGAN과 비교한 결과입니다. 위의 WaveGlow와의 비교에서는 Tacotron2라는 멜 스펙트로그램을 생성해 비교했는데, 보코더 앞에 사용되는 Tacotron2의 성능이 보코더에 영향을 미치기 때문에 보코더 자체의 성능만을 비교할 수 없습니다.

따라서 실제 녹음본과 동일하게 생성되는지 보코더의 성능을 확인할 필요가 있었습니다. 아래 샘플들은 녹음된 오디오 샘플과 그 샘플을 멜 스펙트로그램으로 변환한 후 MelGAN과 VocGAN으로 각각 복원한 샘플입니다.

- 녹음본


- MelGAN


- VocGAN


들어보시면 제안한 모델인 VocGAN이 MelGAN보다 음질이 상당히 개선된 것을 알 수 있습니다. 특히, VocGAN이 복원한 샘플은 이어폰으로 청취해도 녹음본과 거의 차이가 없습니다.


엔씨가 보유한 데이터를 사용한 샘플


성능이 좋은 음성합성 모델을 만들기 위해서는 다량의 데이터가 필요합니다. 이를 위해 음성합성팀에서는 많은 양의 녹음 데이터를 보유하고 있습니다. 녹음 시간이 짧게는 수 초에서 길게는 10시간 이상까지 다양한 화자의 데이터를 다량 보유하고 있습니다. 아래의 '엔씨 AI 보이스'는 각각 학습한 모델의 샘플입니다.

• 엔씨 AI 보이스 - 여성

- 샘플 1


- 샘플 2


• 엔씨 AI 보이스 - 남성

- 샘플 1


- 샘플 2


뉴럴 보코더의 학습을 위해 매 번 모든 음성이 사용되는 것은 아닙니다현장에서는 새로 녹음하여 데이터가 적은 음성을 잘 합성하는 것도 중요합니다그런데 녹음 데이터가 추가될 때마다 멜 스펙트로그램을 추정하는 모델과 보코더를 모두 학습시키는 것은 비효율적입니다아래는 보다 적은 양의 데이터로 멜 스펙트로그램 추정 모델만 학습한 모델의 샘플입니다아래 샘플에 사용된 보코더는 대용량 데이터들에 대해서만 사전에 학습한 모델입니다해당 화자의 데이터가 학습에 사용되지 않았음에도 좋은 음질과 유사도로 음성을 합성하는 것을 확인할 수 있습니다.

• 전라도 사투리 음성 (남자)

- 녹음


- 합성 샘플



더 완벽한 AI 합성음을 위한 연구


속도가 빠르면서 음질이 상당히 개선된 보코더를 개발했지만, 이것만으로는 텍스트에서 완벽한 음질의 음성을 생성해 내지 못합니다. 보코더의 입력으로 사용되는 멜 스펙트로그램이 실제 분포의 데이터처럼 추정되어야 보코더의 성능을 모두 끌어낼 수 있습니다. 따라서 음성합성팀은 텍스트에서 멜 스펙트로그램을 생성하는 모델의 성능을 높이기 위해서도 많이 고민하고 있습니다. 또한 음질을 개선하는 것 외에도 목소리를 조절하는 등의 다양하고 재미있는 합성 모델을 연구하고 있습니다.


참고 문헌


[1] VocGAN 논문: https://arxiv.org/abs/2007.15256

[2] VocGAN 합성음 샘플 제공 웹사이트: https://nc-ai.github.io/speech/publications/vocgan/

[3] WaveGlow 논문: https://arxiv.org/abs/1811.00002

[4] 지난 5월 공개된 ‘엔비디아 키노트 영상’(https://www.youtube.com/watch?v=LYXY3eCJvAI). 보코더로 WaveGlow가 노이즈를 제거하는 알고리즘과 함께 사용되었다. 음질 면에서 다소 부족하다는 것을 확인할 수 있다.

[5] GAN 논문: https://arxiv.org/abs/1406.2661

[6] MelGAN 논문: https://arxiv.org/abs/1910.06711

[7] Parallel WaveGAN 논문: https://arxiv.org/abs/1910.11480

[8] HDGAN 논문: https://arxiv.org/pdf/1802.09178.pdf

[9] StackGAN++ 논문: https://arxiv.org/abs/1710.10916

[10] WaveGlow 코드: https://github.com/NVIDIA/waveglow WaveGlow는 공개된 데이터셋 외에도 학습한 것으로 추정되지만 확인할 수 없다. 따라서 VocGAN은 LJSpeech라는 지정 데이터셋만으로 학습했다.


양진혁

AI Center Speech AI Lab 음성합성팀 팀원.
판타지를 수천 권 읽으며
미래에 다가올 게임을 그려보게 되었고,
그 대업에 합류하기 위해 AI를 공부했습니다.
완전한 자유도의 가상 세계를 구축하겠다는
목표를 갖고 있습니다.

김영익

AI Center Speech AI Lab 음성합성팀 팀장.
화자의 감정과 발화 스타일을 자연스럽게 표현하는
고품질 음성합성 기술을 만들고,
NCSOFT가 만드는 다양한 서비스에
적용해 보고 싶은 꿈을 가지고 있답니다.

조훈영

AI Center Speech AI Lab 실장.
현재 AI 기술은 사회 각 분야에서
흥미롭고 근본적인 변화를 만들고 있습니다.
음성이라는 매력적이고도 편리한 수단을 통해
사람과 사물이 다양한 형태로 교감하는
미래를 만들어 나가고자 합니다.

TOP