본문 바로가기
사이드 프로젝트

내 목소리를 학습한 음성 AI 모델 TTS 만들기, 깃허브, 코드, XTTS v2, supertonic, VibeVoice

by davidlds 2025. 12. 18.
반응형

내 목소리를 학습한 음성 AI 모델인 TTS를 만들어봤다.

요즘 TTS는 한국 모델들의 성능이 매우 좋다. (펄럭.)

그런데? 영어만. 한국어는? 비공개~ ^0^~

그래서 그냥 내가 한번 학습 코드를 만들어 봤다.

 

XTTS v2

XTTS v2는 꽤 오래된 모델이고 학습하는 코드가 널렸다.

한국어를 학습시키는 깃허브가 없어서 짜집기해서 만들어 봤다.

 

성격이 급하신 분들을 위해 먼저 코드부터 공유.

깃허브 링크는 여기.

 

GitHub - HiMyNameIsDavidKim/xtts_training_ko: XTTS v2 training (fine-tuning) on Korean, XTTS v2 한국어 학습 (파인튜닝)

XTTS v2 training (fine-tuning) on Korean, XTTS v2 한국어 학습 (파인튜닝) - HiMyNameIsDavidKim/xtts_training_ko

github.com

 

1. 데이터셋

AI 모델을 학습하려면 데이터셋이 필요하다.

이게 사실 엄청난 장벽에 가깝다.

이 프로젝트는 간단하게 내 목소리를 녹음만 하면 가능하다.

 

음성 쪽에 보편적인 데이터셋 구조가 있는데 (LJSpeech)

이 구조에 맞게 자동으로 구축되도록 코드를 짜놨다.

 

내 목소리를 녹음해서 시키는대로 맞는 위치에 저장만 하고 실행하면 된다.

혹시나 내 목소리가 마음에 안드는 셀프 헤이러들을 위해

유튜브에서 동영상을 받아 실행하는 것도 가능하게 해놨다.

(유튜버의 음성을 상업적으로 사용하는 것은 저작권에 위배되는 일이므로 주의)

 

# 음성 파일으로 데이터셋 구축
python build_dataset.py --existing_audio ./data/my_voice_audio.mp3

# 유튜브 영상으로 데이터셋 구축
python build_dataset.py --youtube_url '<YOUTUBE_VIDEO_URL>'

 

2. 학습

XTTS v2 모델을 내가만든 수제 DIY 한국어 데이터셋으로 파인튜닝 (fine-tuning)한다.

또한 텐서보드를 켜면 학습하는 과정을 볼 수 있다.

이 과정을 보고 하이퍼파라미터 (특히, lr)을 잘 조절하면 더 좋은 모델을 얻을 수 있다.

 

python train_gpt_xtts.py

tensorboard --logdir=./run/training

 

3. 데모

학습이 끝나면 어떠한 문장도 읽게 만들 수 있다.

 

python trained_demo.py

 

다른 기타 설명은 깃허브 README를 참고하면 된다.

깃허브 링크는 여기.

 

GitHub - HiMyNameIsDavidKim/xtts_training_ko: XTTS v2 training (fine-tuning) on Korean, XTTS v2 한국어 학습 (파인튜닝)

XTTS v2 training (fine-tuning) on Korean, XTTS v2 한국어 학습 (파인튜닝) - HiMyNameIsDavidKim/xtts_training_ko

github.com

 

 

 

그런데 이렇게 학습한 뒤 실제 목소리를 들어보면

그렇게 좋은 성능이 아닌 것을 알 수 있다.

 

XTTS v2를 최대한 잘 학습했으나 여전히 좀 어색한 감이 있다.

그래서 이 XTTS v2는 더이상 개발을 지원하지 않는다.

 

coqui/XTTS-v2 · Hugging Face

ⓍTTS ⓍTTS is a Voice generation model that lets you clone voices into different languages by using just a quick 6-second audio clip. There is no need for an excessive amount of training data that spans countless hours. This is the same or similar model

huggingface.co

 

그 이유는 zero-shot TTS들의 성능이 미쳐 돌아가기 때문이다.

그 대표적인 예시가 supertonic 모델이다.

 

Supertone/supertonic · Hugging Face

Supertonic — Lightning Fast, On-Device TTS Supertonic is a lightning-fast, on-device text-to-speech system designed for extreme performance with minimal computational overhead. Powered by ONNX Runtime, it runs entirely on your device—no cloud, no API c

huggingface.co

 

MS에서도 VibeVoice 라는 모델을 출시 했다.

 

microsoft/VibeVoice-Realtime-0.5B · Hugging Face

VibeVoice: A Frontier Open-Source Text-to-Speech Model VibeVoice-Realtime is a lightweight real‑time text-to-speech model supporting streaming text input and robust long-form speech generation. It can be used to build realtime TTS services, narrate live

huggingface.co

 

 

요즘에는 학습을 안해도 충분히 좋은 성능들을 보인다.

zero-shot TTS는 레퍼런스하는 짧은 음성 (30초 이내) 만 있어도 잘 돌아간다는 말이다.

학습 단계가 필요 없고 그냥 레퍼런스만 해주면 잘 되는 것.

그리고 zero-shot에 한국어가 가능한 모델들은 조금만 찾아보면 많이 나온다.

그러니 어쩌면 학습하는 방법을 아는 것보다 얘네를 쓰는 방법을 아는게 나을지도 ㅎㅁㅎ

아차차! 그런데 이제 한국어는 비공개지? 하하하~

 

끝.

 

반응형