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