에루샤
erusya
Back-end Developer
Web Geek
Anime Otaku
에루샤 프로필 이미지
에세이

GPT-SoVITS: TTS 관련 음성변환 기술 알아보기

서론

음성 합성과 변환 기술은 인공지능(AI)의 발전과 함께 빠르게 진화하고 있으며, 그중 GPT-SoVITS는 최신 딥러닝 기술을 활용하여 더욱 정교한 음성 변환(Voice Conversion)과 텍스트-투-스피치(Text-to-Speech, TTS)를 구현하는 시스템이다.

본문 이미지

본 에세이에서는 GPT-SoVITS의 개념, 주요 특징, 그리고 다양한 활용 가능성에 대해 기술을 처음 접목한 내 입장에서 이를 간단하게 분석해보려 한다.

그간 TTS는 개인의 영역이 아닌 기업의 영역이라 생각했고 주어진 TTS만 쓰는 입장에서 이를 직접 개인이 적은 샘플링 파일로 구현가능하다는데, 당연히 궁금하지 않을 수 없는 부분이라고 생각한다.


GPT-SoVITS의 개념

GPT-SoVITS는 제로샷(Zero-shot) 음성 변환 및 TTS 모델로, 소량의 음성 데이터만으로 특정 화자의 목소리를 학습하고 이를 기반으로 자연스러운 음성을 합성하는 기술을 제공한다.

기존의 음성 합성 모델과 달리, 긴 학습 시간이 필요하지 않으며, 최소 5초 분량의 음성 샘플만으로 음성 특성을 학습(Zero-shot 음성 합성)할 수 있다.
이를 통해 사용자는 원하는 화자의 목소리를 빠르고 효과적으로 재현할 수 있다.
더불어 이렇게 학습된 모델을 파인 튜닝(Fine-Tuning)해 더욱 모델의 정확도를 올릴 수 있는 기능도 가지고 있는 기계 학습 모델이다.


GPT-SoVITS의 주요 특징

제로샷 & 퓨샷 음성 합성

GPT-SoVITS는 제로샷 TTS 기능을 통해 사전 학습된 모델을 기반으로 화자의 음성을 즉각적으로 재현할 수 있으며, 퓨샷 TTS 기능을 이용하면 1분 이상의 음성 데이터로 미세 조정(Finetuning)을 수행하여 더욱 자연스러운 결과를 얻을 수 있다.

다국어 지원

본 시스템은 한국어, 영어, 일본어, 중국어(광둥어 포함) 등 다양한 언어를 지원하며, 다국어 화자의 음성 특징을 유지한 채로 변환이 가능하다. 이를 통해 다국적 콘텐츠 제작 및 글로벌 서비스에서 효율적으로 활용될 수 있다.

웹 기반 UI 및 자동화 기능

GPT-SoVITS는 사용자의 접근성을 높이기 위해 직관적인 웹 UI를 제공하며, 음성 및 반주 분리, 자동 데이터셋 생성, 음성 인식(ASR) 등을 포함한 자동화 기능을 갖추고 있다. 이를 통해 사용자는 복잡한 설정 없이도 손쉽게 AI 기반 음성 변환을 실행할 수 있다.


기존 연구와 발전 과정

GPT-SoVITS는 최신 음성 합성 및 음성 변환 연구를 기반으로 개발되었다. 그 근간이 되는 연구는 다음과 같다.

VITS (2021)

기존의 두 단계 TTS 시스템보다 성능이 향상된 End-to-End 음성 합성 모델로 Flow 모델을 도입하여 발화자의 특징을 제거하고, 적대적 학습(Adversarial Training) 방식을 적용하여 음질을 개선했다.

본문 이미지

Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
Several recent end-to-end text-to-speech (TTS) models enabling single-stage training and parallel sampling have been proposed, but their sample quality does not match that of two-stage TTS systems. In this work, we present a parallel end-to-end TTS method that generates more natural sounding audio than current two-stage models. Our method adopts variational inference augmented with normalizing flows and an adversarial training process, which improves the expressive power of generative modeling. We also propose a stochastic duration predictor to synthesize speech with diverse rhythms from input text. With the uncertainty modeling over latent variables and the stochastic duration predictor, our method expresses the natural one-to-many relationship in which a text input can be spoken in multiple ways with different pitches and rhythms. A subjective human evaluation (mean opinion score, or MOS) on the LJ Speech, a single speaker dataset, shows that our method outperforms the best publicly available TTS systems and achieves a MOS comparable to ground truth.
https://arxiv.org/abs/2106.06103
GitHub - jaywalnut310/vits: VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
GitHub - jaywalnut310/vits: VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech - jaywalnut310/vits
https://github.com/jaywalnut310/vits

VITS2 (2023)

기존 VITS의 Flow 모델을 Transformer Flow로 대체하여 자연스러움을 개선하고, 음소 변환(Phoneme Conversion) 의존성을 줄였다.

GitHub - daniilrobnikov/vits2: VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design
GitHub - daniilrobnikov/vits2: VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design
VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design - daniilrobnikov/vits2
https://github.com/daniilrobnikov/vits2

Bert-VITS2 (2023)

VITS2의 텍스트 인코더를 다국어 지원이 가능한 Multilingual BERT로 대체하여 다양한 언어에서 더 자연스러운 음성을 합성할 수 있도록 개선했다.

GitHub - fishaudio/Bert-VITS2: vits2 backbone with multilingual-bert
GitHub - fishaudio/Bert-VITS2: vits2 backbone with multilingual-bert
vits2 backbone with multilingual-bert. Contribute to fishaudio/Bert-VITS2 development by creating an account on GitHub.
https://github.com/fishaudio/Bert-VITS2

SoVITS (2023)

기존 VITS 모델에서 텍스트 인코더를 SoftVC의 Content Encoder로 대체하여, Text-to-Speech(TTS)뿐만 아니라 Speech-to-Speech(S2S) 변환도 가능하게 했다.

GitHub - svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion
GitHub - svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion
SoftVC VITS Singing Voice Conversion. Contribute to svc-develop-team/so-vits-svc development by creating an account on GitHub.
https://github.com/svc-develop-team/so-vits-svc


이러한 연구를 기반으로 GPT-SoVITS는 VITS의 고품질 음성 합성 기능과 SoVITS의 제로샷 음성 변환 기능을 결합하여 더욱 발전된 모델을 제공하게 된 것이다.


GPT-SoVITS의 아키텍처

구성요소

GPT-SoVITS는 최신 딥러닝 기반 음성 합성 모델로서, 다음과 같은 주요 구성 요소로 이루어져 있다.
1. cnhubert: 입력된 음성 신호를 특징 벡터로 변환.
2. t2s_encoder: 텍스트 입력과 참조 텍스트, 특징 벡터를 기반으로 음향 토큰(Acoustic Tokens) 생성.
3. t2s_decoder: 생성된 음향 토큰을 활용하여 추가적인 음향 토큰을 생성하는 seq2seq 모델.
4. vits: 최종적으로 음향 토큰을 변환하여 실제 음성 파형을 생성.

프로세스

입력 데이터는 다음과 같은 프로세스를 거친다:

1. text_seq: 합성할 텍스트 입력.
2. ref_seq: 참조 오디오 파일의 텍스트.
3. ref_audio: 참조 오디오 파일의 파형.

음소 변환

이 데이터들은 기본적으로 음소 변환(Phoneme Conversion) 과정을 거치며, 이를 통해 각 언어별로 적절한 음소 시퀀스를 생성한다.
GPT-SoVITS는 텍스트를 음성으로 변환하기 전, 입력 텍스트를 음소(Phoneme)로 변환하는 과정을 거친다.
이는 언어별로 다른 방식으로 처리된다.

일본어의 경우에는 pyopenjtalk g2p(gapheme-to-phoneme) 변환기를 사용하여 아래와 같은 예제로 변환된다.

"ax株式会社ではAIの実用化のための技術を開発しています。"
→ "e i e cl k U s u k a b u sh I k i g a i sh a d e w a e e a i n o j i ts u y o o k a n o t a m e n o g i j u ts u o k a i h a ts u sh I t e i m a s U ."Copy

일본어의 경우에는 일반적인 g2p 변환과 달리 구두점(punctutation)이 포함되어 변환된다.

영어의 경우에는 g2p_en 라이브러리를 활용하여 아래와 같이 변환된다.

"Hello world. We are testing speech synthesis.""HH AH0 L OW1 W ER1 L D . W IY1 AA1 R T EH1 S T IH0 NG S P IY1 CH S IH1 N TH AH0 S AH0 S ."Copy

변환 과정에서 CMUdic 사전을 활용하고 사전에 없는 단어는 신경망 기반 변환을 사용하여 변환한다고 한다.

한국어의 경우에는 음소변환 명시된 음소변환 모델이없고 한국어 데이터셋을 기반으로하는 ASR 모델만 사용하는것 같다.
그래서 한국어의 경우에는 TTS 결과의 억양이 좀 부자연스럽다고 한다.


GPT-SoVITS의 활용 가능성

콘텐츠 제작 및 미디어 산업

이런 음성 합성 기술은 더빙, 오디오북, 팟캐스트, 가상 아나운서 제작 등 다양한 콘텐츠 산업에서 활용될 수 있다.
특히, GPT-SoVITS는 빠른 음성 생성이 가능하기 때문에, 다수의 캐릭터나 성우가 필요한 프로젝트에서도 유용하게 사용될 수 있다.
아마 후시녹음이나 추가녹음을 해야하는 경우 기존 데이터셋이 충분히 있기때문에 어느정도 이런 부분에 대한 보완용도로써 꽤나 좋은 기술이라고 생각이든다.

보이스 아바타 및 메타버스

가상 현실(VR) 및 메타버스 환경에서 AI 기반 보이스 아바타 제작이 가능하며, 사용자는 자신의 목소리를 디지털 아바타에 적용하여 실시간으로 활용할 수 있다.
특히 이런류의 TTS는 일본어로 버츄얼 캐릭터를 만드는 경우가 흔히 있는데, 이런 경우 매우 효율적으로 고유의 목소리를 가진 보이스 모델을 만들 수 있다는 것은 꽤나 매력적이라고 생각한다.

접근성 및 보조 기술

청각 장애인을 위한 오디오 변환 시스템, 텍스트 기반 음성 안내 시스템, 또는 장애인을 위한 맞춤형 음성 제공 서비스에 활용될 수 있다.
또한, 실시간 번역 시스템과 결합하여 다국적 환경에서도 활용이 가능하다.

인공지능 기반 음성 비서

GPT-SoVITS를 활용하여 개인화된 AI 음성 비서를 만들 수 있으며, 특정 사용자 음성을 학습하여 자연스러운 상호작용이 가능한 시스템을 구축할 수 있다.
아마 개인이 자원을 사용해서 직접 보이스 모델을 구현해 TTS를 제작해 이용할 수 있다는것 자체에 큰 의미를 둘 수 있다고 본다.


결론

GPT-SoVITS는 음성 변환과 합성 기술을 한 단계 발전시키며, 다국어 지원, 제로샷 학습, 직관적인 UI 등의 기능을 통해 광범위한 활용 가능성을 제공한다.
향후 더 정교한 음질 개선, 학습 속도 향상, 실시간 음성 변환 기능 추가 등의 발전이 이루어진다면, 본 기술은 다양한 산업군에서 핵심적인 역할을 수행할 것이다.

현재 깃허브에 제공되는 실행가능한 모델 UI는 윈도우에 최적화되어있어서 Mac용 라이브러리나 코드는 제공해주지만 CPU 자원만 가속해 사용할 수 있다고한다.
현재 상황에서는 윈도우 환경에서면 GPU 자원을 이용한 모델 정의가 된다고하니 맥 유저는 좀 슬프다...

본문 이미지가슴이 웅장해지는 멤버들, 존경스럽다

기술덕후는 무시못한다는 말도있을정도로 실제로 위 기술을 발표한 중국인 연구자분들이나 여러 참여자들이 서브컬쳐계에 크게 관심이 있어하는 분들로 아마 자신이 좋아하는 캐릭터의 음성을 제작하고 만들어 공유하고 싶은 열정이 대단하지 않았나 싶다.

이러하듯 지속적인 연구와 개발을 통해 GPT-SoVITS가 인공지능 음성 합성 분야에서 더욱 강력한 기술로 자리 잡기를 기대하는 바이다.


레퍼런스

GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a good TTS model! (few shot voice cloning)
GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a good TTS model! (few shot voice cloning)
1 min voice data can also be used to train a good TTS model! (few shot voice cloning) - RVC-Boss/GPT-SoVITS
https://github.com/RVC-Boss/GPT-SoVITS
Konan/GPT-SoVITS
Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1350万的开发者选择 Gitee。
https://gitee.com/ycpai_teddy/GPT-SoVITS
SaMoye: Zero-shot Singing Voice Conversion Model Based on Feature Disentanglement and Enhancement

https://arxiv.org/html/2407.07728v3
GPT-SoVITS: A Zero-Shot Speech Synthesis Model with Customizable Fine-Tuning
GPT-SoVITS: A Zero-Shot Speech Synthesis Model with Customizable Fine-Tuning
This is an introduction to「GPT-SoVITS」, a machine learning model that can be used with ailia SDK. You can easily use this model to create…
https://medium.com/axinc-ai/gpt-sovits-a-zero-shot-speech-synthesis-model-with-customizable-fine-tuning-e4c72cd75d87

#기계학습
0 개의 댓글
×