본문 바로가기
소프트웨어

[OpenVoice] MyShellAI OpenVoice Linux (Ubuntu)에 설치, 활용하기

by TaeGyeong Lee 2024. 9. 29.

개요 

인공지능 모델 운영사 MyShell.ai에서 배포하는 TTS 프레임워크 OpenVoice v2 사용법을 소개합니다. 모델을 설치하고 사용할 환경은 Ubuntu 22.04.3 LTS 입니다. 

 

준비 : anaconda 설치 

아래 블로그 글을 참고하세요. anaconda를 이미 설치하셨으면 다음 단계로 넘어가 주세요. 

 

Ubuntu 22.04에 Anaconda 설치 및 가상환경 세팅

1. 글을 작성하게 된 계기 새로운 프로젝트를 할 때마다 Anaconda를 설치해서 환경 세팅을 하는 경우가 많다. 매번 구글링해서 설치하곤 하는데 정리해서 새로운 환경에서 시작할 때 참고하고자 한

jongsky.tistory.com

이후 단계는 anaconda 가 정상적으로 wsl 에 설치되었음을 가정합니다. 

 

가상환경 설정 및 활성화 

conda create -n openvoice python=3.9
conda activate openvoice

 

OpenVoice 다운로드 및 적용 

git clone https://github.com/myshell-ai/OpenVoice.git
cd OpenVoice
pip install -e .

 

필요한 패키지 다운로드

unzip 및 ffmpeg가 설치안되어 있다면 설치해 주세요.

sudo apt install unzip
sudo apt install ffmpeg

 

OpenVoice V1을 사용하고자 하는 경우  

체크포인트 다운로드, 압축 풀기

아래와 같이 unzip 라이브러리가 이 없는 경우 설치해 주세요. 추후 테스트 시 필요한 ffmpeg 라이브러리도 설치해 주세요.

wget https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_1226.zip
unzip checkpoints_1226.zip
rm checkpoints_1226.zip

아래 소스 코드를 참고해서 테스트 해주세요.

 

OpenVoice/demo_part1.ipynb at main · myshell-ai/OpenVoice

Instant voice cloning by MIT and MyShell. Contribute to myshell-ai/OpenVoice development by creating an account on GitHub.

github.com

 

OpenVoice V2을 사용하고자 하는 경우  

체크포인트 다운로드, 압축 풀기 

wget https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_v2_0417.zip
unzip checkpoints_v2_0417.zip
rm checkpoints_v2_0417.zip

추가로 MeloTTS를 설치해 주세요.

pip install git+https://github.com/myshell-ai/MeloTTS.git
python -m unidic download

아래 소스코드로 테스트 가능합니다. 

 

OpenVoice/demo_part3.ipynb at main · myshell-ai/OpenVoice

Instant voice cloning by MIT and MyShell. Contribute to myshell-ai/OpenVoice development by creating an account on GitHub.

github.com

 

참고 : demo_part3.ipynb 실행 시 발생하는 keyError LookupError .. 해결

예제 demo_part3.ipynb 마지막 블럭 실행 시 에러가 발생합니다. 

tests 객체 내 EN* 항목을 모두 주석 처리 후 다시 실행시켜 주세요. 

from melo.api import TTS

texts = {
    # 'EN_NEWEST': "Did you ever hear a folk tale about a giant turtle?",  # The newest English base speaker model
    # 'EN': "Did you ever hear a folk tale about a giant turtle?",
    'ES': "El resplandor del sol acaricia las olas, pintando el cielo con una paleta deslumbrante.",
    'FR': "La lueur dorée du soleil caresse les vagues, peignant le ciel d'une palette éblouissante.",
    'ZH': "在这次vacation中,我们计划去Paris欣赏埃菲尔铁塔和卢浮宫的美景。",
    'JP': "彼は毎朝ジョギングをして体を健康に保っています。",
    'KR': "안녕하세요! 오늘은 날씨가 정말 좋네요.",
}

 

참고 : demo_part3.ipynb 커널 충돌 오류 발생 시 (CUDA 사용)

주의 
demo_part3.ipynb 는 CUDA 사용을 전제합니다. 

vad 값을 True로 바꾸어 주세요.

target_se, audio_name = se_extractor.get_se(reference_speaker, tone_color_converter, vad=True)

 

참고 : demo_part3.ipynb cpu만 사용하기 

openvoice/se_extractor.py 22줄을 주석처리하고 아래와 같이 한 줄을 추가해 주세요. 

 if model is None:
        # model = WhisperModel(model_size, device="cuda", compute_type="float16")
        model = WhisperModel(model_size, device="cpu", compute_type="float32")

 

 

참고 : vscode ipynb 파일 실행하기 

vscode 에서 ipynb 테스트 파일을 실행할 때, 아래와 같이 에러가 발생할 수 있습니다. (커널을 openvoice로 설정했음에도 )

ipykernel 을 설치해야 합니다. vscode를 완전히 종료 후 다시 열어보세요. 

 

그런 다음 다시 명령을 실행해 보세요. 자동으로 ipykernel 패키지를 설치할 것인지 묻습니다. 설치해주세요.

 

설치가 완료되면 정상적으로 실행됨을 확인할 수 있습니다. 

 

참고 자료 

 

myshell-ai/OpenVoiceV2 · Hugging Face

OpenVoice V2 In April 2024, we release OpenVoice V2, which includes all features in V1 and has: Better Audio Quality. OpenVoice V2 adopts a different training strategy that delivers better audio quality. Native Multi-lingual Support. English, Spanish, Fren

huggingface.co

 

Start Locally

Start Locally

pytorch.org

 

GitHub - myshell-ai/OpenVoice: Instant voice cloning by MIT and MyShell.

Instant voice cloning by MIT and MyShell. Contribute to myshell-ai/OpenVoice development by creating an account on GitHub.

github.com

 

Error executing a demo_part3.ipynb in Jupiter · Issue #186 · myshell-ai/OpenVoice

I get this error when I execute demo_part3.ipynb in Jupiter. My GPU is a GTX 1060 6GB VM. ValueError Traceback (most recent call last) Cell In[3], line 2 1 reference_speaker = 'resources/example_re...

github.com