Korean Institute of Information Technology
[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 20, No. 1, pp.181-189
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 31 Jan 2022
Received 29 Oct 2021 Revised 17 Dec 2021 Accepted 20 Dec 2021
DOI: https://doi.org/10.14801/jkiit.2022.20.1.181

한국어 노래 음성 합성을 위한 웹 서비스 개발 및 연구

박지은* ; 김지희**
*동국대학교 컴퓨터공학과 학부생
**동국대학교 인공지능학과 교수(교신저자)
Korean Singing-Voice Synthesis Web Services
Jieun Park* ; Jihie Kim**

Correspondence to: Jihie Kim Department of Artificial Intelligence, Dongguk University, South Korea, Tel.: +82-2-2260-4973, Email: jihie.kim@dgu.edu

초록

최근 영상 컨텐츠 제작이 활발해지며 영상의 자막을 원하는 목소리로 설명하는 더빙, 나레이션 뿐만 아니라 커버 송 제작과 같은 음성 합성에 대한 요구가 많아졌다. 본 논문에서는 다양한 종류의 서비스를 다양한 음성 옵션에서 경험할 수 있는 플랫폼 제작을 제시하였다. 현재 개념 증명 단계로 Glow-TTS(Generative Flow for Text-to-Speech), HIFI-GAN(Generative Adversarial Networks for efficient and High Fidelity speech synthesis)을 이용하여 MLP-Singer(Parallel Korean Singing Voice Synthesis)와 HIFI-GAN을 이용하여 노래 음성 합성 기능을 제작하였다. 그리고 도커 컨테이너 상에서 프론트엔드, 백엔드, 웹서버를 구축하였다. 해당 서비스는 웹 사이트 형태로 제공되며 요청이 들어오면 음성 합성 결과를 출력하고 음성 파일 다운로드를 통해 사용할 수 있게 제공된다. 본 연구에서는 음성 합성 플랫폼을 제작하기 위한 전체적인 시스템 구조와 구현 방법 제시 및 구현된 시스템의 성능 평가를 통해 구현 가능함을 보였으며, 추가적으로 보완하여 서비스 할 수 있는 방법을 제공한다.

Abstract

Recently, video content production has become more active, and there have been many demands for voice synthesis, such as cover song production, as well as dubbing and narration, which explain subtitles of video with desired voices. In this paper, a platform that allows users to experience various types of services in various voice options is presented. In the Proof of Concept that we developed, the Text To Speech was produced using Generative Flow for Text-to-Speech (Glow-TTS) and Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis (HIFI-GAN) and the Singing Voice Synthesis was generated with a parallel Korean singing voice synthesis system (MLP-Singer) and HIFI-GAN. Frontend, backend, and web server were built on the docker container. The service is provided as a website, and when the server gets a request, the voice synthesis result can be printed and used through voice file download. In this study, the overall system structure and implementation method for producing a voice synthesis platform were presented, and a method for additional supplementation and service was provided.

Keywords:

text to speech, singing voice synthesis, glow-tts, hifi-gan, mlp-singer, web service

Ⅰ. 서 론

최근 영상 컨텐츠 시장이 커짐에 따라 영상 나레이션, 더빙 뿐만 아니라 목소리 변조, 커버 송 제작 등 여러 형태의 음성 합성에 대한 수요가 많이 증가하고 있다. 하지만 아직 다양한 형태의 요구를 충족 시킬 수 있는 플랫폼이 부족하다. 따라서 음성 합성 및 생성 서비스를 다양한 목소리로 웹 서비스를 통하여 제공하여 쉽게 활용할 수 있다면 해당 사용자들의 요구를 충족시킬 수 있을 것이다. 이를 위하여 본 연구에서는 해당 기능을 제공하는 플랫폼을 제작하여 제시한다. 제작하는 서비스는 크게 텍스트 음성 변환, 노래 음성 합성 두 가지 이다. 본 논문에서는 개념 증명 단계로 입력받은 문장에 대한 결과를 음성 파일로 제공하는 기능, 미디 파일과 가사 텍스트 파일을 입력으로 받아 생성한 노래를 wav 파일로 제공하는 기능을 제작하였다.

현재 음성 합성 플랫폼으로는 네이버 Papago[1], oddcast[2]의 텍스트 음성 변환 서비스 등이 있다. 해당 서비스들은 텍스트를 입력하면 원하는 음성으로 변환하는 기능을 제공한다. 해당 서비스들을 이용할 경우 보다 쉽게 음성을 변환하고 들어볼 수 있으나 음성을 다운로드하여 사용자가 원하는 목적에 쉽게 활용할 수 있도록 하는 기능은 제공하고 있지 않다.

그리고 노래 음성 합성과 관련해서는 한국어로 해당 서비스를 제공하는 상용화된 플랫폼은 아직 없고, midi2voice[3]라는 미디 파일과 영어로 된 가사 파일을 입력하면 노래를 생성하는 프로그램이 현재 존재한다. 영어와 한국어의 글자와 발음 체계가 다르기에 한국어 노래 합성 서비스 제공을 위해 해당 프로그램을 사용하기에는 무리가 있다. 그리고 한국어로 노래를 생성하는 부분에 대한 연구가 계속 진행되고 있는 것을 확인하였고, 해당 인공지능 모델을 이용하여 노래를 생성하는 기능을 제작하기로 하였다.

서비스 제공을 위한 소프트웨어로 백엔드의 경우 모델을 통해 결과를 빠른 시간안에 제공하기 위하여 경량화된 프레임워크인 플라스크를 사용한다. 따라서 API를 통해 음성 요청이 들어오면 해당하는 음성 합성 모델을 로드하여 파이토치 프레임워크를 이용해 합성을 진행 후 사용자에게 제공한다.

프론트엔드의 경우 웹팩과 바벨 설정에 대한 부담이 적은 Next.js를 이용하여 서버사이드 렌더링을 통해 페이지를 제공한다. 또한 통합적 상태 관리를 위해 redux를, 활성 상태와 백엔드 API 호출 상태를 확인하기 위해 redux devtools를 사용한다.

본 연구의 기여는 음성 합성 플랫폼을 구현하기 위하여 전체적인 시스템 구조도를 제공한다. 또한 텍스트 음성 변환, 노래 음성 합성 두 가지 모델을 이용하여 음성 합성을 진행하는 방법과, 이를 웹 서비스로 제공하기 위해 프론트엔드와 백엔드의 구현방법에 대하여 제시한다. 더빙, 커버송등 제작이 가능한 한국어용 음성 합성 플랫폼 제시 및 구현된 시스템의 성능 평가를 통하여, 해당 플랫폼의 실현 가능성을 확인 할 수 있으며 추가적으로 보완하여 서비스를 할 수 있는 방법을 제공한다.


Ⅱ. 기존의 관련 연구

기존에 텍스트 음성 변환 플랫폼으로는 네이버의 Papago, oddcast 의 TTS 서비스 등이 있다. 해당 서비스들은 텍스트를 입력하면 원하는 음성으로 변환하는 기능을 제공한다. 해당 서비스들을 이용할 경우 보다 쉽게 음성을 변환하고 들어볼 수 있으나 음성을 다운로드하여 사용자가 원하는 목적에 쉽게 활용할 수 있도록 하는 기능은 제공하고 있지 않다.

노래 음성 합성의 경우 수퍼톤, 스마일게이트 AI등의 회사에서 연구 중이나 한국어로 해당 서비스를 제공하는 상용화된 플랫폼은 아직 없다. 영어나 일본어의 경우 midi2voice라는 미디 파일과 영어로 된 가사 파일을 입력하면 노래를 생성하는 프로그램이 있다. 다른 언어들과 한국어는 글자 뿐만아니라 발음 체계도 다르기에 한국어 지원에 해당 프로그램을 이용하기에는 어려움이 있다. 한국어 노래 합성과 관련된 연구는 활발하게 진행되고 있는데 발음 개선을 위해 적대적 훈련 체계와 음성 강화 마스크를 제안한 모델[4], 경계 평형 GAN 목표에 대해 훈련된 자기 회귀 모델[5]도 있었으며 다층 퍼셉트론만으로 구성된 모델[6]도 있었다.

또한 더빙, 커버 송등을 여러 요구들을 한번에 충족시키기 위해서는 텍스트 음성 변환, 노래 음성 합성 두 서비스가 하나의 플랫폼에서 제공되면 좋겠지만 아직 그러한 서비스를 제공하는 플랫폼은 없기에 두 가지 서비스를 모두 제공할 수 있는 플랫폼을 제작하였다.


Ⅲ. 구 조

3.1 시스템 구조도

그림 1은 해당 웹 서비스를 제작하기 위해 사용한 기술들을 표현한 시스템 아키텍처이다. GCP(Google Cloud Platform)의 인스턴스 상에서 도커를 이용하여 개발 환경 이미지를 컨테이너화 시켜 서버를 구축한다. 우선 백엔드 상에서 웹 어플리케이션은 플라스크를 사용하고, 미들웨어로 Gunicorn을 이용하여 플라스크가 여러 요청을 동시에 처리할 수 있도록 환경을 구성한다. 구글 코랩을 통해 서비스에 필요한 모델 학습을 진행한 후 해당 모델을 Google Cloud Storage의 버켓에 저장하여 서버에서 모델을 불러올 수 있도록 한다. 데이터베이스는 GCP에서 제공하는 Mysql 인스턴스를 사용하고, 해당 데이터베이스에 모델이 있는 버켓 경로를 저장하여 요청 시 해당 경로를 통해 데이터를 주고 받을 수 있도록 구성한다. 프론트엔드 부분은 http 요청을 통해 클라이언트에 컨텐츠들을 제공해주도록 하며, 리엑트 환경에서의 Next.js와 redux를 사용하여 서버사이드 렌더링과 상태관리를 구현한다.

Fig. 1.

Overall architecture of service

3.2 음성 합성 모델

텍스트 음성 변환과 노래 음성 합성 모두 음성 합성을 위한 모델 학습이 필요하다. 두 모델 모두 데이터 수집, 데이터 전처리, 음성 합성 모델을 이용하는 과정으로 진행한다. 여기에서 텍스트 음성 변환은 평문 발화, 노래 음성 합성은 노래 생성이라는 목표 각각에 알맞는 데이터와 모델을 이용하여 학습을 진행한다. 서비스를 제공하기 위해 문장을 입력받으면 멜 스펙토그램을 생성하는 모델, 멜 스펙토그램을 최종 목소리로 출력하는 모델 총 2개가 필요하다. 먼저 멜 스펙토그램을 생성하는 모델은 텍스트를 분석하여 발음과 말투 구축에 관여한다. 그리고 최종 목소리를 출력하는 모델은 출력 오디오의 노이즈를 줄여주고 학습 데이터셋의 화자와 유사한 음색을 가지도록 보완한다.

3.2.1 텍스트 음성 변환

텍스트 음성 변환은 문장을 입력 받으면 원하는 목소리로 변환하여 음성 파일로 제공하는 서비스이다. 여기에서는 문장으로부터 멜 스펙토그램을 생성하기위해 Glow-TTS[7] 모델을 이용한다. 이 모델은 텍스트와 음성의 잠재적 표현 사이에 가장 가능성이 높은 정렬을 스스로 검색해 입력된 텍스트 순서에 따라 발화를 차례대로 정렬한다.

이 모델은 텍스트와 음성의 잠재적 표현 사이에 가장 가능성이 높은 정렬을 스스로 검색해 입력된 텍스트 순서에 따라 발화를 차례대로 정렬한다. 이를 통해 더 빠르게 음성을 합성하며, 서로 다른 억양을 갖춘 목소리를 생성할 수 있다. 따로 정렬 모델을 구축하지 않고도 음성을 합성하는 모델이 추후 사용자의 목소리를 입력 받아 사용자 최적화된 모델을 구축하기에도 적합하다는 생각이 들어 이 모델을 선택하였다.

그림 2는 Glow-TTS 모델 구조가 자세하게 나와 있다. 해당 모델에서는 훈련을 위해 텍스트와 해당 텍스트의 음성을 입력으로 받는다. 인코더는 FastSpeech[8]의 인코더와 같은 구조이며 트랜스포머의 인코더에서 인접한 위치의 정보 사이의 연관성을 잘 반영하기 위하여 순방향 신경망을 1*1 합성곱으로 교체한다. 이후 텍스트 순서에 맞게 발화를 정렬하기 위해 Monotonic Alignment Search 알고리즘을 이용하여 발화 관련 변수들의 정렬을 수행한다. 기간 예측기는 바로 전에 생성된 정렬을 평가하기 위해 사용된다. 디코더에서 정렬된 변수들을 변환하여 최종적으로 멜 스펙토그램을 만든다.

Fig. 2.

Overview of Glow-TTS

이후, 멜 스펙토그램으로부터 최종 음성을 출력하는 모델로 HIFI-GAN[9]을 이용한다. HIFI-GAN은 음성 합성 속도와 메모리 효율을 높이기 위하여 음성 오디오의 주기적 신호를 구별해 내는 방식을 이용하여 기존 제안된 모델보다 좋은 품질의 음성을 빠르게 생성해 내기에 해당 모델을 이용하였다.

그림 3에는 HIFI-GAN 모델 구조가 자세하게 나와있다. 해당 모델은 멜 스펙토그램을 입력으로 받는다. 생성기에서는 먼저 역방향 합성곱 신경망를 이용해 업샘플링을 진행한다. 그 후 multi-receptive field fusion(MRF) 모듈을 이용하여 다양한 길이의 패턴을 병렬로 관측하고 최종적으로 파형을 생성해 낸다. 판별기에서는 다양한 주기적 패턴을 식별하고 처리하기 위하여 여러 부 판별자로 구성된 다중 기간 판별자(Multi-period discriminator)를 이용한다.

Fig. 3.

Overview of HIFI-GAN

이것은 동일한 간격으로 구성된 샘플들을 입력으로 받는다. 이를 위해서 1차원으로 구성된 오디오를 2차원 데이터로 바꾼다. 그 후 2차원 합성곱을 해당 데이터에 적용하여 주기적인 샘플들을 독립적으로 처리한다. 이후 가중치 정규화를 적용하고, 계산된 그래디언트를 전달하여 훈련을 진행한다.

3.2.2 노래 음성 합성

노래 음성 합성은 원하는 음악의 미디 파일과 가사를 입력 받으면 지정된 목소리로 노래를 생성하는 서비스이다. 여기에서는 입력으로부터 멜 스펙토그램을 생성하기위해 MLP-Singer 모델을 이용하였다. MLP-Singer는 Vision literature for attention-free image classification에서 소개된 MLP-Mixer[10] 모델을 기반으로 하며, 합성 속도, 오디오 품질에서 GAN 모델을 기반으로 한 다른 모델들에 비해 좋은 결과를 내었다. 따라서 이 모델을 이용하여 언어, 시간, 멜로디 정보를 음향적 특징에 매핑하여 멜 스펙토그램을 만든다.

그림 4에는 MLP Singer 모델이 자세히 나와있다. 해당 모델에서는 훈련을 위해 가사와 음의 높낮이 시퀀스, 해당 가사로 부른 노래를 입력으로 받는다. 이후 텍스트와 음은 시간 순서대로 정렬되어 있다고 가정하고 각각에 대해 임베딩을 진행한다. 완전 연결 계층(feed forward layer)을 이용해 입력의 특징을 잘 찾을 수 있는 잠재 공간에 투영을 한다.

Fig. 4.

Overview of MLP-Singer

그 다음 진행할 Mixer Block에는 텍스트와 피치 정보를 확산시키는 Channel Mixer와 확산된 정보를 받아서 특징을 추출하는 Token Mixer가 들어 있다. Channel Mixer에서 정보를 확장시키면 Token Mixer에서 인접한 위치의 정보들 간 관계를 고려하여 특징을 생성한다. 이후 Mixer Block의 출력을 멜 스펙토그램으로 만든다.

멜 스펙토그램으로부터 최종 음성을 출력하는 모델으로 TTS와 마찬가지로 HIFI-GAN을 이용한다.

3.3 Backend

백엔드 에서는 모델을 통해 결과를 빠른 시간 안에 제공하기 위하여 경량화된 웹 프레임워크인 플라스크를 사용한다. Rest API를 이용하여 프론트엔드와 통신을 하며 사용자로부터 요청이 들어오면 선택한 목소리에 해당하는 음성 합성 모델을 불러와 음성 합성을 진행한다. 또, 추후 학습 데이터 보완과 다양한 컨텐츠에 활용이 가능하도록 입력한 텍스트를 데이터베이스인 Mysql에 저장한다.

3.3.1 REST API

REST는 Representational State Transfer의 약자로 자원의 표현에 의한 상태 전달을 의미한다. 자원의 상태에는 POST, GET, PUT, DELETE 총 4개가 있으며 해당 상태가 의도하는 바를 쉽게 파악할 수 있으며 서버와 클라이언트의 역할을 명확하게 분리할 수 있다는 장점이 있다. 따라서 서버는 REST API를 이용하여 다양한 기기, 브라우저와 통신이 가능하다. 따라서 본 논문에는 프론트엔드와의 소통을 위하여 Rest API를 이용한다. 먼저, 텍스트 음성 변환에서 사용자로부터 문장을 입력받고 만든 음성을 출력하기 위해 POST 방법을 이용한다. 그리고, SVS에서는 사용자가 원하는 곡을 선택하면 미리 생성해 둔 노래를 바로 출력하기 위하여 GET 방법을 사용한다. 마지막으로 API 문서화 및 테스트를 위하여 Swagger를 이용한다.

3.3.2 데이터베이스

텍스트 음성 변환에서 입력받은 문장을 저장하기 위해, 노래 음성 합성에서 모델을 통해 생성된 노래의 저장 경로를 저장하기 위해 Mysql을 이용한다. 플라스크에서 데이터 베이스를 연결하고 통신할 때 ORM방식을 이용한다. ORM은 Object Relational Mapping으로 객체지향의 클래스와 관계형 데이터베이스의 테이블을 자동으로 연결해준다. 따라서 SQL문 쿼리가 아닌 직관적인 코드를 이용하여 데이터를 조작할 수 있다. 그리고 해당 객체들을 재활용할 수 있으며, 매핑 정보가 명확하다는 점에서 재사용 및 유지보수가 편리하다는 장점이 있다.

3.3.3 Web server, Middleware

본 논문의 웹 서비스에서는 웹 서버로 Nginx를, 미들웨어로 Gunicorn을 이용하였다. 먼저 Nginx는 경량 웹 서버이다. Event-driven 방식을 이용하여 여러 요청을 이벤트 처리자를 통해 비동기 방식으로 처리하여 적은 자원으로도 더 빠르게 서비스 할 수 있다. 그리고 Gunicorn은 python WSGI로 웹서버로부터 요청을 받으면 WSGI를 통해 해당 요청을 어플리케이션으로 전달한다. 플라스크 역시 해당 역할을 수행할 수 있으나 단일 쓰레드로 동작하여 요청이 많아질 경우 처리 능력이 저하된다는 단점이 있다. 이를 보완하기 위하여 멀티 쓰레드가 지원되는 Gunicorn을 이용하여 요청이 많아지더라도 효율적으로 처리할 수 있도록 한다.

3.4 프론트엔드

프론트엔드의 경우 Next.js를 이용하여 서버 사이드 렌더링을 통한 페이지를 제공한다. 따라서 기존 모든 스크립트가 실행되기 전 빈 화면을 보여주는 클라이언트 사이드 렌더링과 다르게 정적 html을 서버에서 빌드하여 제공하고 필요한 경우 스크립트를 실행하여 빌드한다. 또한 통합적 state관리를 위해 Redux를, Action 상태와 백엔드 API 호출 상태를 확인하기 위해 Redux devtools를 사용한다.

3.4.1 Server Side Rendering

사용자가 요청해서 받은 내용을 화면에 표시하는 방법에는 클라이언트 사이드 렌더링, 서버 사이드 렌더링 두가지가 있다. 여기서 React는 기본적으로 클라이언트 사이드 렌더링을 지원한다. 이는 요청이 들어오면 백엔드로 요청이 가고 데이터를 불러오는 시간 동안 로딩이 진행되며 이 시간 동안 빈 화면이 보이게 된다. 그러나 서버 사이드 렌더링은 서버에서 미리 준비해둔 화면을 보여주게 되며 데이터를 불러올 때까지의 로딩 시간 동안 기능을 사용할 수는 없으나 화면이 보이기에 로딩이 빠르다고 느낄 수 있게 한다. 우리는 서버 사이드 렌더링 기능을 지원하는 Next.js를 이용하여 웹 사이트에 접속하면 바로 컨텐츠를 볼 수 있게 한다.


Ⅳ. 실험 결과

4.1 데이터셋

텍스트 음성 변환 에서는 성우 목소리로 구성된 KSS 데이터[11]셋과, 태연 목소리 데이터셋을 각각 이용하였다. KSS 데이터셋은 12000문장의 여성 목소리로 구성되어 있다. 그리고 태연 데이터 셋은 3000 문장 분량의 태연 목소리로 구성되어 있다. 두 데이터셋 모두 샘플링 속도를 22000으로 조정한 후 이용하였다. 노래 음성 합성에서는 Children’s Song Dataset(CSD)[12]를 이용하였다. 이 데이터 셋은 여성 목소리로 녹음된 50가지의 영어, 한국어 동요로 구성되어 있으며 각 노래에 대한 미디 파일과 가사 파일 두가지가 제공된다. 이 데이터 셋 또한 샘플링 속도를 22000으로 조정 후 이용하였다. 훈련은 Google Colab에서 Nvidia P100을 이용하여 진행하였다.

4.2 텍스트 음성 변환 실험 결과

먼저 그림 5에서 12000 문장의 여성 목소리 데이터 셋인 KSS 데이터셋으로 학습을 진행 하였을때 Glow-TTS의 경우 Loss가 –1.3, HIFI-GAN의 경우 loss가 0.08까지 줄어든 것을 확인할 수 있다. 그리고 그림 5에서 3000문장의 태연 데이터셋으로 학습을 진행하였을 때는 Glow-TTS의 경우 Loss가 -1, HIFI-GAN의 경우 loss가 0.17까지 줄어든 것을 확인할 수 있고 데이터 셋의 양과 품질 문제로 KSS 보다는 크게 줄지 않았다.

Fig. 5.

Training results of text to speech with, (a) Loss of Glow-TTS with KSS dataset, (b) Glow-TTS with Taeyeon dataset, (c) Loss of HIFI-GAN with Taeyeon dataset, (d) Loss of HIFI-GAN with KSS dataset

마지막으로 그림 6은 테스트를 하면서 음성과 텍스트를 매핑한 결과이다. x축은 Decoder에서 생성하게 될 음이고 y축은 Encoder에서 입력되는 글자이다.

Fig. 6.

Mapping result for model trained with Taeyeon dataset

음성 생성을 위해서는 각 글자에 대해 눈에 띄게 연결되는 서로 다른 음들이 존재해야 한다. 매핑 결과를 보면 각 글자에 대해 서로 다른 음들이 연결 된 것을 확인 할 수 있으며, 따라서 음이 잘 정렬 되었다고 볼 수 있다.

4.3 노래 음성 합성 실험 결과

먼저 MLP-Singer의 경우 이미 사전학습 된 모델에 태연 목소리 데이터만 이용하였을 경우 데이터 셋의 개수와 품질 문제로 목소리 생성이 제대로 진행되지 않아 태연 데이터셋에 CSD 데이터셋까지 모두 포함하여 학습을 진행하였다. 그리고 HIFI-GAN의 경우 태연 노래 데이터셋과 태연 목소리 데이터셋을 모두 이용하여 태연 목소리를 22만회 학습을 진행하였다. 그림 7에서 볼 수 있듯이, 에러가 줄었으나 추가로 성능향상은 많은 시간의 학습이 필요할 것으로 또한 데이터 셋 품질도 성능에 큰 영향을 미쳤다.

Fig. 7.

Mel-spectrogram error while training HIFI-GAN in SVS

먼저 MLP-Singer의 경우 이미 사전학습 된 모델에 태연 목소리 데이터만 이용하였을 경우 데이터 셋의 개수와 품질 문제로 목소리 생성이 제대로 진행되지 않아 태연 데이터셋에 CSD 데이터셋까지 모두 포함하여 학습을 진행하였다. 그리고 HIFI-GAN의 경우 태연 노래 데이터셋과 태연 목소리 데이터셋을 모두 이용하여 태연 목소리를 22만회 학습을 진행하였다. 그림 7에서 볼 수 있듯이, 에러가 줄었으나 추가로 성능향상은 많은 시간의 학습이 필요할 것으로 또한 데이터 셋 품질도 성능에 큰 영향을 미쳤다.

4.4 최종 결과

다음은 개념 증명 단계에서 제작한 웹 서비스 화면이다. 첫 번째 화면은 텍스트 음성 변환 페이지이다. 그림 8은 노래 음성 합성 페이지이다. 개념 증명 단계에서는 미디 파일과 가사 파일을 미리 입력해두었고, 생성한 노래를 선택하여 들어 볼 수 있고 다운로드 할 수 있다. 그림 9에 입력 창에 원하는 문장을 입력하고 제출 버튼을 누르면 플레이어를 통하여 목소리를 들어볼 수 있으며 다운로드 할 수 있다.

Fig. 8.

Text to speech page

Fig. 9.

Singing voice synthesis page

기존의 프로그램과 비교하여 차별점은 텍스트 음성 변환에서는 한국어로도 다양한 목소리를 제공할 수 있다는 점, 노래 음성 합성에서는 기존에는 없었던 한국어 노래에 대하여도 노래 음성 합성 서비스를 제공한다는 점이 있다.


Ⅴ. 결 론

본 논문에서는 음성 합성 모델을 이용하여 텍스트 음성 변환와 노래 음성 합성기능을 제공하는 웹 서비스를 신규 한국어 노래 음성 합성 플랫폼으로 제시한다. 텍스트 음성 변환의 경우 데이터 개수가 많은 KSS 데이터셋은 굉장히 좋은 결과를 도출하였으며, 노래 음성 합성의 경우 사전 학습 모델을 이용하였음에도 불구하고 잡음이 섞인 부분이 있었으나, 사람이 들을 수 있는 적절한 노래의 합성을 생성한다. 실험을 통하여 충분히 많은 데이터셋만 가지고 있다면 실제로 서비스 가능한 훌륭한 결과를 제공할 수 있는 것을 확인하였고, 노래 음성 합성 모델도 충분히 많은 데이터셋을 가지고 오랜 시간 동안 학습을 진행할 수 있다면 좋은 결과를 만들어 낼 수 있을 것이다.

또한 추후에는 사용자에게 더 다양한 목소리 옵션을 선택할 수 있게 하고, 여러 기능들을 이용하여 음성을 합성하고 편집할 수 있도록 하는 기능을 더 추가한다면 좋은 서비스가 될 것이라 기대한다.

Acknowledgments

본 연구는 과학기술정보통신부 및 정보통신기획평가원의 SW중심대학지원사업의 연구결과로 수행되었음(2016-0-00017). 또한 과학기술정보통신부 및 정보통신기획평가원의 대학ICT연구센터육성지원사업의 연구결과로 수행되었음(IITP-2021-2020-0-01789).

References

  • Papago, https://papago.naver.com/, . [accessed: Oct. 25, 2021]
  • OddCast, https://ttsdemo.com/, . [accessed: Oct. 25, 2021]
  • Midi2voice, https://github.com/mathigatti/midi2voice, . [accessed: Oct. 25, 2021]
  • J. Lee, H. Choi, C. Jeon, J. Koo, and K. Lee, "Adversarially trained end-to-end korean singing voice synthesis system", Proc. Interspeech, Graz, Austria, pp. 2588-2592, Sep. 2019. [https://doi.org/10.21437/Interspeech.2019-1722]
  • S. Choi, W. Kim, S. Park, S. Yong, and J. Nam, "Korean singing voice synthesis based on auto-regressive boundary equilibrium gan", IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Barcelona, Spain, pp. 7234-7238, May 2020. [https://doi.org/10.1109/ICASSP40776.2020.9053950]
  • J. Tae, H. Kim, and Y. Lee, "MLP Singer: Towards Rapid Parallel Korean Singing Voice Synthesis", arXiv:2016.07886, , Jun. 2021. [https://doi.org/10.1109/MLSP52302.2021.9596184]
  • J. Kim, S. Kim, J. Kong, and S. Yoon, "Glow-TTS: A Generative Flow for Text-to-Speech via Monotonic Alignment Search", Advances in Neural Information Processing Systems, Vancouver, Canada, pp. 8067–8077, May 2020.
  • Y. Ren, Y. Ruan, X. Tan, T. Qin, S. Zhao, Z. Zhao, and T. Liu, "Fastspeech : Fast, robust and controllable text to speech. Advances in Neural Information Processing Systems", 33rd Conference on Neural Information Processing Systems, Vancouver, Canada, pp. 3165-3174, May 2019.
  • J. Kong, J. Kim, and J. Bae., "HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis", Advances in Neural Information Processing Systems, Vancouver, Canada, pp. 17022–17033, May 2020.
  • T. llya, H. Neil, K. Alexander, B. Lucas, Z. Xiaohua, U. Thomas, Y. Jessica, S. Andreas, K. Daniel, U. Jakob, L. Mario, and D. Alexey, "MLP-Mixer: An all-MLP Architecture for Vision", arXiv:2105.01601, , May 2021.
  • K. Park, KSS Dataset: Korean Single speaker Speech Dataset, https://kaggle.com/bryanpark/korean-single-speaker-speech-dataset, . [accessed: Oct. 25, 2021]
  • S. Choi, W. Kim, S. Park, S. Yong, and J. Nam, "Children’s song dataset for singing voice research", in International Society for Music Information Retrieval Conference (ISMIR). International Society for Music Information Retrieval, Montréal, Canada, Oct. 2020.
저자소개
박 지 은 (Jieun Park)

2019년 ~ 현재 : 동국대학교 컴퓨터공학과 학부생

관심분야 : 머신러닝, 백엔드

김 지 희 (Jihie Kim)

1988년 : 서울대학교 계산통계학과 학사

1990년 : 서울대학교 계산통계학과 석사

1996년 : University of Southern California 컴퓨터공학 박사

1996년 ~ 2013년 : University of Southern California의 Information Sciences Institute 수석연구원 및 Computer Science학과 교수

2013년 ~ 2014년 : KT 미래기술연구소장 (상무)

2014년 ~ 2019년 : 삼성전자 AI센터 랩장 (상무)

2019년 ~ 현재 : 동국대학교 인공지능학과 교수

관심분야 : 머신러닝, 자연어처리

Fig. 1.

Fig. 1.
Overall architecture of service

Fig. 2.

Fig. 2.
Overview of Glow-TTS

Fig. 3.

Fig. 3.
Overview of HIFI-GAN

Fig. 4.

Fig. 4.
Overview of MLP-Singer

Fig. 5.

Fig. 5.
Training results of text to speech with, (a) Loss of Glow-TTS with KSS dataset, (b) Glow-TTS with Taeyeon dataset, (c) Loss of HIFI-GAN with Taeyeon dataset, (d) Loss of HIFI-GAN with KSS dataset

Fig. 6.

Fig. 6.
Mapping result for model trained with Taeyeon dataset

Fig. 7.

Fig. 7.
Mel-spectrogram error while training HIFI-GAN in SVS

Fig. 8.

Fig. 8.
Text to speech page

Fig. 9.

Fig. 9.
Singing voice synthesis page