TTS 라이브러리 MeloTTS로 한국어 음성 합성해보기

TTS( text-to-speech ) 라이브러리인 MeloTTS를 사용하여 한국어 음성을 합성해봤습니다.  깃허브 주소는 https://github.com/myshell-ai/MeloTTS 입니다. 

.

.

2024. 7. 14  최초작성

2024. 11. 9  윈도우에서 실행시 python3 대신 python을 사용해야함. 디폴트 설치로는 파이토치가 CPU를 위해 설치됨

2024. 11. 10 cuda 사용하도록 pytorch 설치하여 테스트 진행

2024. 11. 14

2026. 2. 20

.

.

Linux와 macOS, Windows에서 가능한 방법입니다.   최종 문서 작성시 테스트는 Ubuntu에서 진행했습니다.

.

가급적이면 miniconda나 anaconda 환경에서 진행하세요. conda 환경 만드는 방법은 아래 링크를 참고하세요.

Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)

https://webnautes00.blogspot.com/2025/12/visual-studio-code-miniconda-python.html

.

다음 명령들을 차례로 실행해줍니다. 위 두 줄은 conda 환경을 사용할 경우에 필요한 명령어입니다.

.

$ conda create -n melotts python=3.10

$ conda activate melotts

$ git clone https://github.com/myshell-ai/MeloTTS.git

$ cd MeloTTS

$ pip install -e .

$ python -m unidic download

.

이제 예제코드를 실행해봅니다. 

출처 https://huggingface.co/myshell-ai/MeloTTS-Korean 

.

from melo.api import TTS

# Speed is adjustable
speed = 1.0
device = ‘cpu’ # or cuda:0

text = “안녕하세요! 오늘은 날씨가 정말 좋네요.”
model = TTS(language=’KR’, device=device)
speaker_ids = model.hps.data.spk2id

output_path = ‘kr.wav’
model.tts_to_file(text, speaker_ids[‘KR’], output_path, speed=speed)

.

모델 및 필요한 파일이 다운로드 된 후(처음에만 다운로드됩니다.), kr.wav 파일이 아래처럼 생성됩니다. 플레이해보면 코드안에 있는 “안녕하세요! 오늘은 날씨가 정말 좋네요.” 말이 재생됩니다.  

.

두번째로 실행하면 추가 다운로드 없이 실행되지만  실시간으로 사용하기에는 무리가 있어보입니다.

.

CUDA가 가능하도록 Pytorch를 설치후 진행해봅니다. 설치 방법은 아래 포스트를 참고하세요. 현재 Python 가상 환경에 CUDA  사용가능하게 Pytorch를 설치해주면 됩니다.

.

Windows에 CUDA 사용할 수 있도록 PyTorch 설치하는 방법

https://webnautes00.blogspot.com/2025/12/windows-cuda-pytorch.html

.

Ubuntu에 CUDA 사용할 수 있도록 PyTorch  설치하는 방법

https://webnautes00.blogspot.com/2025/12/ubuntu-cuda-pytorch.html

.

.

코드를 수정하여 진행합니다. device 항목에 cpu 대신에 cuda:0을 사용하도록 합니다. 

from melo.api import TTS

# Speed is adjustable
speed = 1.2
device = ‘cuda:0’

text = “안녕하세요! 오늘은 날씨가 정말 좋네요.”
model = TTS(language=’KR’, device=device)
speaker_ids = model.hps.data.spk2id

output_path = ‘kr.wav’
model.tts_to_file(text, speaker_ids[‘KR’], output_path, speed=speed)

.

CUDA를 사용하도록 한 후, 실행 속도가 많이 개선 됩니다.

.

text 변수에 영어 문장을 추가해주면 현재 TTS가 사용하는 모델이  한국어를 말하는 모델이라서 한국 사람이 또박또박 영어를 말하는 듯하게 영어 문장을 발음합니다. 확인해보니 네이버의 클로바 더빙도 똑같더라구요. 

.

.

참고

[1] ​​https://github.com/myshell-ai/MeloTTS/blob/main/docs/install.md#linux-and-macos-install

[2] https://github.com/myshell-ai/MeloTTS/issues/126

댓글 남기기