2020.11.06 R&D

사람이 말하듯 자연스러움을 더하는, AI 합성음 속도 제어 기술

엔씨의 Speech AI Lab에서 음성 합성을 연구하는 팀은 음성합성팀, Voice Conversion(보이스 컨버전)팀 그리고 MLOps팀이 있습니다. 세 개의 팀 중 Voice Conversion팀은 텍스트가 아닌 특정인의 목소리를 그대로 입력해 다른 사람의 목소리로 변경하는, 쉽게 말해서 AI로 하는 성대모사 기술을 연구개발 중입니다. 더불어 합성한 음성의 발화 스타일을 다양하게 제어하는 기술 역시 연구하고 있습니다.

 

이처럼 좀 더 생동감 있는 합성음을 만들기 위한 연구 가운데 이번 블로그에선 음성 분야의 가장 큰 국제학회인 ‘INTERSPEECH 2020’에서 운율 제어의 중요한 요소 중 하나인 합성음의 전체적인 속도 제어 연구 논문[1]을 발표하게 된 Voice Conversion팀 배재성 님의 연구 내용을 공유합니다.


KV_1100x600
시작하며

AI 기술의 발달과 함께 음성 합성(Text-to-Speech, TTS) 기술 역시 빠르게 발달했습니다. 앞서 VocGAN 관련 게시글에서 살펴봤듯이 합성음의 품질 자체는 실제 사람의 목소리와 구분이 힘들 정도로 상당한 수준에 올랐습니다.(지난 블로그 포스팅 참고) 그러나 매우 다양한 종류의 문장에 대한 합성음을 실제 사람의 음성과 비교해 들어 보면 여전히 뭔가 기계적이고 단조로운 느낌입니다. 이런 기계적인 합성음에 조금 더 생명을 불어넣어 주는 것이 바로 ‘운율’입니다. 운율은 음성에서 음의 높낮이, 빠르기, 강약 등으로 표현되는 음성적 형식을 뜻합니다.

 

최근 몇 년 간 음성 합성 기술이 급격하게 발전함에 따라 이전에 뉴럴 보코더 관련 글에서 살펴본 바와 같이 고음질의 음성 합성이 가능해졌고, 그 다음 단계로 운율의 자유로운 컨트롤에 대한 필요성이 점점 대두되고 있습니다. 이에 따라 국내외 연구 기관들에서도 관련 연구가 점차로 증가하는 추세입니다.

 

 엔씨는 음성 합성의 운율 제어 연구 목표를 아래와 같은 큰 틀에서 바라보고 있습니다.

01
[그림 1] 다양한 발화 스타일의 음성 합성

[그림 1]에서 낭독체는 뉴스를 진행하는 아나운서 또는 아파트 안내방송 등에서 쉽게 접할 수 있는 비교적 일정한 형태를 지닌 운율 표현을 의미합니다. 대화체는 기쁨, 슬픔, 놀람 등의 기본적인 감정 표현을 포함해 일상생활에서 대화할 때 표현되는 다양한 억양(Intonation)을 의미합니다. 중계체는 스포츠 해설가들의 발성 스타일로 환호하거나 탄식하는 등 대화체보다 훨씬 극적인 감정이 포함된 발성 스타일입니다.

 

MMORPG 게임에는 여러 가지 독특한 성격을 갖는 게임 캐릭터들과 그들의 목소리를 통해 전달되는 풍부하고 다이내믹한 감정 표현들이 있는 만큼, 궁극적으로 합성 기술이 그것을 생성해 낼 수 있도록 연구하고 있습니다. 엔씨에서는 음성 합성의 최종 목표로 샤우팅, 절망, 극도의 흥분과 같은 극적인 감정 표현이 다수 등장하는 스포츠 중계체 스타일의 음성 합성까지 모두 염두에 두고 연구를 진행하고 있습니다.

AI 합성음에는 무엇이 더 필요할까?

앞서 소개해 드린 낭독체와 대화체, 중계체를 구분 짓는 요소는 운율의 다양성이라고 할 수 있습니다. 낭독체는 음의 높낮이가 대체로 일정하고 빠르기나 강약도 크게 변하지 않습니다. 반면, 일상생활에서 사용하는 대화체는 상황에 따라 음의 높낮이나 빠르기, 강약 등이 급격히 변화함으로써 상황에 따라 같은 음성이라도 다른 의미를 지니게 됩니다.

 

운율은 낭독체 합성음의 단조로움을 뛰어넘어 더 생동감 있는 음성을 생성할 수 있는 중요한 포인트입니다. 따라서 이 같은 운율을 모델링하기 위해 많은 연구가 이루어지고 있습니다. 운율을 별도로 모델링하지 않은 (Tacotron2[2], DCTTS[3] 등과 같은) TTS 모델들은 운율의 변동성이 크지 않은 낭독체 스타일의 합성음을 생성하기에 적합하지만, 운율의 변동성이 큰 대화체나 중계체 같은 스타일의 학습 데이터로 모델을 학습시킨다면 평균적인 운율로만 발화할 수 있습니다. 예를 들어 야구 중계 스타일의 음성 데이터에 캐스터의 환호나 탄식 같은 다양한 운율이 포함되어 있더라도 운율 모델링 없이 학습된 TTS 시스템은 캐스터의 평균적인 운율로만 발화하는 TTS 시스템이 될 수밖에 없습니다.

 

이렇듯 운율은 자연스러운 음성을 합성하기에 아주 중요한 요소이지만, 동시에 정의하기 어렵고 정확히 라벨링하기 어려운 요소입니다. 예를 들어 기쁜 감정의 목소리와 슬픈 감정의 목소리가 있을 때 우리는 “기쁠 때는 목소리 톤이 더 높고 더 빠르게 말한다”와 같이 대략적인 차이를 말할 수 있지만, 어느 부분에서 어느 정도로 높게 말하고 빠르게 말하는지를 정확하게 라벨링할 수 없듯 말입니다. 그렇기 때문에 운율을 모델링하기 위해 이루어진 최근의 TTS 모델 연구들은 대체로 비지도 학습 (Unsupervised learning)을 이용해 라벨링 없이 데이터에 의존하여 이런 운율을 모델링하고 있습니다[4-7]. 그중에서 대표적인 Global Style Token(GST)을 이용한 TTS 모델(GST-TTS)[7]을 소개해 드리겠습니다.

GST-TTS: 이 토큰에 운율을 다 담을 수 있을까?

[그림 2] GST-TTS의 학습과 추론(생성) 과정

GST-TTS는 음성의 스타일 정보를 스타일 토큰(GST)들의 합성곱으로 표현하는 방식입니다. [그림 2]의 (a)는 4개의 스타일 토큰을 가지는 GST-TTS의 학습 과정을 나타낸 것입니다. 4개의 스타일 토큰은 그림에서 GST #1~4로 표현되어 있는데요. 딥러닝 비지도 학습을 통해 4개의 스타일 토큰에는 학습 데이터 세트에 존재하는 가장 두드러지는 4개의 음성적 특징들이 담기게 됩니다. 예를 들어 다양한 음의 높낮이를 가지는 중계체의 학습 데이터 세트로 GST-TTS를 학습시킨다면 비지도 학습에 의해 GST-TTS 모델은 음의 높낮이가 중요한 스타일 특징이라고 판단해 (예를 들어) 1번 스타일 토큰에 음의 높낮이에 대한 특징을 담게 됩니다.

 

[그림 2]의 (b)는 GST-TTS의 추론 단계입니다. 추론 단계에는 두 가지 방법이 있습니다. 첫 번째는 모델에게 “우리는 이런 스타일의 음성을 생성하고 싶어”라며 가이드 음성(Reference audio)을 주면, 가이드 음성의 스타일 정보를 4개 토큰의 합성곱으로 나타낸 스타일 임베딩(Style embedding)으로 추출하는 방법입니다. 두 번째는 4개 토큰의 합성곱을 직접 조작해 스타일 임베딩을 형성하는 방식입니다. 예를 들어 4개의 토큰 중에 1번 스타일 토큰의 스타일만 반영하고 싶다면 1번 스타일 토큰의 가중치(Weight)를 1로 설정한 뒤 이를 스타일 임베딩으로 활용할 수 있습니다.

 

이렇듯 나누어진 토큰들을 이용했다는 점에서 GST-TTS는 이전의 방식들보다 특히 해석력(Interpretability)과 조절 능력(Controllability)에서 강점이 있습니다. 각 토큰의 가중치를 자유자재로 조절하면서 각 토큰이 어떤 스타일을 표현하고 있는지 해석할 수 있으며, 그 스타일의 정도도 조절할 수 있는 것이지요.

 

그러나 비지도 학습을 기반으로 하는 GST-TTS에는 명확한 한계점이 존재합니다. 첫 번째로 스타일 토큰에 어떤 스타일이 학습될지 알 수 없습니다. 즉, 학습이 다 이루어진 후에 토큰을 모두 들어 보면서 각 토큰에 어떤 스타일이 학습되었는지 일일이 확인해야 합니다. 또한, 예를 들어 발화 속도를 조절하고 싶다고 하더라도 발화 속도를 나타내는 토큰이 없을 수도 있습니다. 두 번째로 각 토큰이 명확하게 하나의 스타일을 나타내도록 학습시키기 쉽지 않습니다. 예를 들어, 음의 높낮이는 유지하면서 발화 속도만 변화시키고 싶어도 토큰 하나에 정확히 발화 속도의 특징만 담기도록 학습시키기는 어렵습니다.

비지도 학습의 한계를 극복하기 위한 연구

이런 GST의 비지도 학습에 따른 한계점을 극복하고 합성음 운율 조절을 더 효과적으로 해내기 위해 모델에 대략적인 가이드라인을 제시해 어떤 운율 요소들을 배워야 할지 도와주는 식의 학습 방법을 고민했습니다. 연구의 주요 목표는 두 가지였습니다.

 

1) 발화 속도와 같은 특정 운율 요소를 조절할 때 다른 음의 높낮이나 세기 같은 운율 요소들을 유지하면서 원하는 운율 요소만을 조절할 수 있을 것.

2) 원하는 운율 요소를 안정적으로 조절할 수 있을 것. 즉, 학습 데이터 세트에 의존적이지 않으며, 운율이 다양하지 않은 학습 데이터 세트에서도 안정적으로 운율 조절이 가능할 것.

 

이에 먼저 비교적 명확하게 라벨링할 수 있는 ‘발화 속도(Speaking rate)’에 초점을 맞추었습니다. 발화 속도는 발화자가 어떤 문장을 발화할 때 그 문장을 얼마나 빠르게 (혹은 느리게) 발화했는지를 나타내는 수치로 아래와 같이 정의할 수 있습니다.[8]

03

저희는 ‘이런 발화 속도를 라벨로써 직접 모델의 조건(condition)으로 제공하고 모델을 학습시키면 어떻게 될까?’라는 질문에서 연구를 시작했습니다. 연구에 사용된 TTS 모델로는 가볍고 효율적인 TTS 모델인 Deep Convolutional Text-to-Speech (DCTTS) 모델을 사용했습니다. 낭독체와 중계체 두 가지 학습 데이터 세트를 대상으로 실험했으며, 학습 시 각 학습 데이터 세트의 발화 속도를 계산해 TTS 모델의 직접 조건으로 주었으며, 생성 시에는 원하는 정도의 발화 속도를 조건으로 주어 음성을 생성했습니다.

 

이러한 방식은 간단하지만 효과적으로 발화 속도 조절이 가능합니다. 그러나 낭독체 화자(여성 화자)의 경우와 달리, 중계체 화자(남성 화자)의 경우 발화 속도를 느리게 할수록 음의 높낮이가 함께 증가하는 현상을 관찰했습니다. 이런 현상의 원인을 분석하고자 학습 데이터 세트의 발화 속도와 음의 높낮이의 관계성을 분석해 보았습니다.

[그림 3] 학습 데이터 세트의 발화 속도와 음의 높낮이 사이의 관계성

[그림 3]은 각 음성 샘플의 발화 속도와 평균 음의 높낮이(F0) 간의 상관관계를 나타낸 그래프입니다. 이 그래프에서 볼 수 있듯이 낭독체 화자는 학습 데이터 세트에서 발화 속도에 따라 음의 높낮이 변화가 크지 않았던 반면에, 중계체 화자는 발화 속도에 따라 음의 높낮이 변화가 상당히 큰 것을 관찰할 수 있었습니다. 저희는 이러한 학습 데이터 세트의 특징 때문에 발화 속도를 조건으로 제공했을 때 모델이 발화 속도뿐만 아니라 음의 높낮이에 대한 정보도 함께 담겨 있는 것으로 해석한다고 판단했습니다. 이런 현상을 해결하기 위해 GST와 발화 속도를 함께 이용하는 모델을 제안했습니다. GST는 비지도 학습으로 표현할 스타일을 결정하기 때문에 추가적인 라벨로 발화 속도가 주어지면 발화 속도를 제외한 다른 운율 특징들을 학습하게 될 것으로 예상했습니다. 저희가 제안하는 GST와 발화 속도를 조건으로 갖는 모델은 [그림 4]와 같습니다.

05
[그림 4] GST와 발화 속도를 함께 이용해 발화 속도를 제어하는 TTS 모델

학습 시 음성 데이터에 관한 정보는 Audio Encoder를 통해 추출되고, 음성에 담겨 있는 텍스트에 관한 정보는 Text Encoder를 통해 추출됩니다. (TTS 시스템의 자세한 내용은 이전 블로그 글을 참고해 주세요.) GST layer는 앞서 설명 드린 것과 같이 비지도 학습을 토대로 음성의 스타일 정보를 추출한 뒤에 모델에게 조건으로 주어지고, 음성의 평균적인 발화 속도는 직접적인 모델의 조건값으로 주어집니다. 생성 시에는 생성하고자 하는 텍스트, 발화 속도 그리고 GST의 (가이드 음성을 통해 추출하거나 토큰의 가중치를 조절함으로써 얻은) 스타일 정보를 입력해 스타일은 유지하면서 원하는 속도의 음성을 생성할 수 있습니다. 아래는 더 발전된 기술로 발화 속도를 조절한 예시 음성들입니다.

더 자세한 내용과 음성 샘플들은 논문 [1]데모 사이트에서 확인할 수 있습니다.

응용 사례 및 활용 가능성

TTS의 발화 속도 조절 기능이 필요한 곳은 많습니다. 예를 들어 뉴스 속보나 스포츠 경기 요약 같은 경우에는 발화 속도를 다소 빠르게 하는 것이 어울리고, 특정 문장을 강조하거나 책을 읽어 줄 때는 다소 느린 발화 속도가 어울립니다. 특히 합성음이 영상과 함께 사용될 때는 영상 길이에 따른 합성음 길이 조절이 필수입니다.

 

실제로 Speech AI Lab의 TTS 시스템은 이미 사내 부서에 제공되어 게임 개발 제작, 게임 콘텐츠 설명 영상, 버프툰 홍보 영상 등에 사용되고 있습니다. 합성음의 자연스러움과 음질이 향상됨에 따라 다양한 요청이 증가하고 있는 상태인데요. 그에 따라 합성음의 발화 스타일 조절에 대한 요구도 증가하고 있습니다.

“문장을 여기서 끊어 읽을 수 있을까요?”

“합성음 톤을 올릴 수는 없을까요?”

“이 상황에서는 좀 더 빨리 말했으면 좋겠는데. 속도 조절이 가능한가요?”

아무래도 기존 TTS 시스템은 TTS 모델 훈련에 최적화된 음성 데이터베이스의 녹음 음성 파일들의 평균 발화 스타일로만 합성음을 생성하는 만큼 사용 용도에 알맞은 발화 스타일 조절에 대한 요구는 당연할 것입니다.

 

합성음의 발화 스타일 조절을 위한 첫 단계로 이번 발화 속도 조절 기술이 실생활에서 TTS 시스템의 활용도를 더 높여 줄 것으로 기대하고 있습니다.

마무리하며

이번 포스트에서는 엔씨의 운율 제어를 위한 노력 중 하나인 발화 속도 조절에 관한 연구를 소개해 드렸습니다. 기존의 비지도 학습을 기반으로 하는 GST 모델의 한계점을 극복하고자 평균 발화 속도라는 새로운 팩터를 도입해 GST와 함께 적용함으로써 다른 운율 요소들을 유지한 채 발화 속도만을 조절할 수 있었습니다.

 

그러나 아직 갈 길이 멉니다. 처음에 말씀드렸다시피 운율을 정확하게 라벨링하는 것은 불가능하기에, 평균 발화 속도 역시 아주 정확한 라벨링 기법은 아닙니다. 따라서 발화 속도 조절의 정확성에서 아직 한계가 있습니다. 엔씨는 운율 제어의 정확도 개선 및 발화 속도 외의 다른 운율 요소들도 자연스럽게 컨트롤함으로써 더욱더 다이내믹한 음성을 합성하기 위해 앞으로도 끊임없이 연구를 이어갈 것입니다.

참고 자료

[1] Bae, Jae-Sung, et al. “Speaking Speed Control of End-to-End Speech Synthesis using Sentence-Level Conditioning.” arXiv preprint arXiv:2007.15281 (2020).

 

[2]  J. Shen, R. Pang, R. J. Weiss, M. Schuster, N. Jaitly, Z. Yang, Z. Chen, Y. Zhang, Y. Wang, R. Skerrv-Ryan, R. A. Saurous, Y. Agiomvrgiannakis, and Y. Wu, “Natural TTS Synthesis by Conditioning Wavenet on MEL Spectrogram Predictions,” in Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2018, pp. 4779–4783.

 

[3]  H. Tachibana, K. Uenoyama, and S. Aihara, “Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention,” in Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2018, pp. 4784–4788.

 

[4] R. Skerry-Ryan, E. Battenberg, Y. Xiao, Y. Wang, D. Stanton, J. Shor, R. Weiss, R. Clark, and R. Saurous, “Towards End-to-End Prosody Transfer for Expressive Speech Synthesis with Tacotron,” in Proc. of the 35th International Conference on Machine Learning, 2018, pp. 4693–4702.

 

[5] V. Klimkov, S. Ronanki, J. Rohnke, and T. Drugman, “Fine Grained Robust Prosody Transfer for Single-Speaker Neural Text-To-Speech,” in Proc. Interspeech, 2019, pp. 4440–4444.

 

[6] Y. Lee and T. Kim, “Robust and Fine-grained Prosody Control of End-to-end Speech Synthesis,” in Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2019, pp. 5911–5915.

 

[7]  Y. Wang, D. Stanton, Y. Zhang, R. Skerry-Ryan, E. Battenberg, J. Shor, Y. Xiao, F. Ren, Y. Jia, and R. A. Saurous, “Style tokens: Unsupervised style modeling, control and transfer in end-to-end speech synthesis,” in Proc. of the 35th International Conference on Machine Learning, vol. 80, 2018, pp. 5180–5189.

 

[8] N. Mirghafori, E. Foster, and N. Morgan, “Fast speakers in large vocabulary continuous speech recognition: analysis & antidotes,” in Fourth European Conference on Speech Communication and Technology, 1995.


배재성

 

AI Center, Speech AI Lab, Voice Conversion 팀원.

생기 있고 다양한 발화 스타일을 가지는 합성음으로 사람들에게 즐거움을 주고 싶습니다.

나아가 인류 기술이 한 걸음 더 발전하는 데 보탬이 되고 싶은 꿈이 있습니다.

주영선

 

AI Center, Speech AI Lab, Voice Conversion 팀장.

음성신호 연구자에게 미지의 분야였던 게임 회사에 입사하여

게임 분야에 활용할 수 있는 음성 변환 및 음성 합성 기술을 연구하고 있습니다.

hunyoung_2

조훈영

 

AI Center Speech AI Lab 실장.

현재 AI 기술은 사회 각 분야에서

흥미롭고 근본적인 변화를 만들고 있습니다.

음성이라는 매력적이고도 편리한 수단을 통해

사람과 사물이 다양한 형태로 교감하는

미래를 만들어 나가고자 합니다.

TOP