TTS( text-to-speech ) 라이브러리인 MeloTTS를 사용하여 한국어 음성을 합성해봤습니다. 깃허브 주소는 https://github.com/myshell-ai/MeloTTS 입니다.
2024. 7. 14 최초작성
Linux와 macOS에서 사용가능한 방법입니다. 본 포스트에서는 Ubuntu 22.04에서 진행한 결과입니다.
가급적이면 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
$ pip3 install -e .
$ python3 -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 파일이 아래처럼 생성됩니다. 플레이해보면 코드안에 있는 "안녕하세요! 오늘은 날씨가 정말 좋네요." 말이 재생됩니다.
두번째로 실행하여 다운로드 없이 실행해봤지만 실시간으로 사용하기에는 무리가 있어보입니다.
참고
[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 > Python - 오디오' 카테고리의 다른 글
wav 파일을 지정한 샘플링 레이트로 변환하기 (0) | 2024.03.16 |
---|---|
WAV, MP3 파일을 일정 길이(단위 초)의 WAV 파일로 분할 (0) | 2024.03.16 |