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
Linux와 macOS, Windows에서 가능한 방법입니다. 최종 문서 작성시 테스트는 Windows에서 진행했습니다.
가급적이면 miniconda나 anaconda 환경에서 진행하세요. conda 환경 만드는 방법은 아래 링크를 참고하세요.
Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)
https://webnautes.tistory.com/1842
다음 명령들을 차례로 실행해줍니다. 위 두 줄은 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://webnautes.tistory.com/1850
Ubuntu 22.04에 CUDA 사용할 수 있도록 PyTorch 설치하는 방법
https://webnautes.tistory.com/1845
코드를 수정하여 진행합니다. 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가 사용하는 모델이 한국어를 말하는 모델이라서 한국 사람이 또박또박 영어를 말하는 듯하게 영어 문장을 발음합니다. 확인해보니 네이버의 클로바 더빙도 똑같더라구요.
pyQt5를 사용하여 GUI를 제작하여 텍스트를 읽어주는 테스트 프로그램을 만들고 있습니다.
meloTTS +pyQT5 테스트
https://webnautes.tistory.com/2407
참고
[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
'Python > TTS' 카테고리의 다른 글
meloTTS +pyQT5 테스트 (0) | 2024.11.16 |
---|---|
음성인식, Google Cloud Speech-to-Text API 사용해보기 (0) | 2023.10.17 |
pyttsx를 이용하여 python에서 text to speech (2) | 2016.05.24 |
안드로이드 TTS 예제 프로그램 (4) | 2015.12.03 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!