저는 지능시스템 졸업프로젝트와 교내 공학경진대회 출품작으로 '프로젝트 다솜'을 진행하고 있습니다. 저희 다솜은 어린 아이들에게 동화책을 읽어주는 TTS 서비스를 기획중입니다. 부모님의 목소리 등 원하는 사람의 목소리로 책을 실감나게 읽어주는 딥러닝 서비스를 만드는 것이 저희 다솜의 목표입니다. 그 중에서도 저는 음성에 감정을 입히는 Voice Conversion 파트를 담당하여 진행하고 있습니다.
Vocie Conversion
voice Conversion, 즉 음성합성 기술의 기본적 개념에 대해 알아보도록 하겠습니다. 음성합성 기술은 source speaker의 음성을 target speaker의 음성으로 변환하는 기술입니다. 음성에서 언어적인 내용 즉, contents는 변하지 않고, 오직 화자의 음성 특징만이 변화해야 합니다. 쉽게 말하자면 내 목소리를 다른 사람의 목소리로 바꾸거나, 기계적으로 읽은 TTS목소리에 감정을 넣은 목소리를 출력해주는 등의 기술이 이에 해당합니다. 명탐정 코난 애니메이션에서 코난이 사용하였던 나비넥타이가 이 voice conversion의 예입니다.
이러한 voice Conversion은 총 세 단계로 구성되어 있습니다.
1. Speech feature analysis
첫 번째는 Speech feature analysis입니다. 음성에서 화자의 특징 혹은 발화내용을 나타낼 수 있는 Feature를 추출하는 단계입니다. 신호처리를 활용하여 음성으로부터 특징을 추출한 후, Mel spectrogram으로 나타내거나, MFCC로 나타내는 등의 단계가 여기에 해당합니다.
2. Speech Synthesis
두 번째는 Speech Synthesis입니다. 딥러닝을 통해 얻어진 특징 스펙트럼을 다시 음성으로 변환하는 task가 이에 해당합니다. 본 프로젝트에서는 HiFi-GAN을 활용하여 음성으로 변환할 예정입니다.
3. Speech Feature Mapping
세 번째는 speech Feature Mapping단계입니다. 사실 이 단계가 우리가 흔히 아는 Voice Conversion을 진행하는 단계입니다. source화자의 특징 feature를 target 화자의 특징 feature로 변환합니다. speech feature mapping은 두 단계로 나뉩니다.
① 학습 단계 : 학습단계에서는 source 음성을 target 음성의 feature로 변환할 수 있도록 모델을 학습시키는 단계입니다.
② 추론 단계 : 추론 단계는 학습단계를 마친 모델을 실제 사용하는 단계입니다. 이미 개발된 speech feature analysis와 speech synthesis 사이에 넣어 Voice Conversion을 직접 진행하는 단계입니다.
Voice Conversion의 연구 분야
Voice Conversion의 연구 분야는 어떤 데이터를 사용하는가와 어떤 구조의 모델을 사용하는가 를 주제로 크게 두 파트로 나뉩니다. 먼저, 데이터의 종류에 따른 모델 구분부터 알아보겠습니다.
Non-parallel data
모델 학습에 사용하는 데이터의 종류에 따라 Non-parallel data 모델과 parallel 데이터 모델로 나눌 수 있습니다. 우선, Non-parallel 모델은 각 화자들이 말하는 내용이 같지 않은 데이터를 말합니다. 화자 A는 영어로 말하고, 화자 B는 한국어로 말하는 경우, 화자 A는 동화책을 읽고 화자 B는 뉴스를 읽는 음성인 경우등이 이에 해당합니다.
Parallel data
parallel data 모델은 non-parallel 데이터 모델과 반대입니다. 각 화자들이 같은 문장을 읽는 데이터를 가지고 있음을 말합니다.
parallel data model의 경우 음성을 각 단어에 맞게 1:1 로 비교하며 학습이 가능하여 Non-parallel data model보다 쉽게 학습이 가능하다고 합니다. 이전에는 parallel data를 사용하는 모델이 많았지만, 최근에는 non-parallel data를 사용하는 모델에 대한 연구가 계속되고 있습니다. Non-parallel data model의 경우 다양한 화자, 다양한 성별 등을 사용하여 음성 변환을 진행할 수 있다는 장점이 있습니다.
다음은 모델 구조에 따른 구분입니다.
Direct Conversion
Direct Conversion은 뜻 그대로 음성과 화자의 특징을 입력값으로 주변 바로 그에 맞는 음성이 출력되는 모델입니다. 화자의 특징을 condition으로 넣어주면 바로 그에 맞는 음성을 출력할 수 있다는 장점이 있습니다.
Feature Disentangle
Feature Disentangle은 음성에서 cotents와 화자의 특징을 분리합니다. 분리한 벡터들을 각각 모델에 입력값으로 넣어 음성을 생성한다는 특징이 있습니다. 위 DIrect Conversion과는 다르게 contents와 특징벡터를 분리하기 때문에, 음성의 리듬만 변환하거나, 음성만 변환하는 등 다양한 형태로 변환된 음성 생성이 가능하다는 장점이 있습니다.
이를 통해 저희 프로젝트 다솜은 Non-parallel data를 사용하고, Feature DIsentangle인 AutoVC 모델을 메인 모델로 사용할 계획입니다. 다음 프로젝트 일지는 AutoVC 논문 리뷰를 진행하도록 하겠습니다.
참고 자료
'공학경진대회 준비' 카테고리의 다른 글
[공경진] An Improved StarGAN for Emotional Voice Conversion:Enhancing Voice Quality and Data Augmentation 논문 리뷰 ② (0) | 2023.07.27 |
---|---|
[공경진 준비] Anaconda GPU 사용하기 (0) | 2023.07.13 |
[공경진] 과거 프로젝트 문제점 파악하기 (0) | 2023.07.04 |
[공경진] 음성에 감정 넣기 프로젝트 일지① : Anaconda 설치 (0) | 2023.07.04 |