본문 바로가기

CS/AI

sesame/csm-1b 오픈소스 공개, 환경 세팅 후 사용해보기

반응형

최근에 엄청난 대화 능력으로 주목받았던 Sesame AI에서 오픈소스로 모델을 풀었습니다.

 

 

Crossing the uncanny valley of conversational voice

At Sesame, our goal is to achieve “voice presence”—the magical quality that makes spoken interactions feel real, understood, and valued.

www.sesame.com

 

위 웹사이트에서 한 번 사용해보세요.

엄청 말을 잘합니다.

그냥 잘하는 게 아니고 사람 같은 억양으로 말하고 추임새 등을 섞어서 굉장히 자연스럽게 말을 잘합니다.

 

이걸 보고 저도 TTS 쪽이랑 머신 러닝에 관심이 생겨 공부 중인데요.

 

처음으로 이런 모델을 사용해보기 위해서 툴들을 설치해보고 오디오를 만들어보았습니다.

그래서 이 글은 실제 사용보다는 사용하기 위한 환경을 갖추는 글에 가깝습니다.

 


맨 처음엔 그냥 노트북에서 CPU로 돌려보려고 했습니다.

 

1B 모델이어서 RAM이 24GB인 제 컴퓨터로도 충분할 거라고 생각했어요.

근데 너무 오래 걸립니다.

 

그래서 CUDA 환경이 사용 가능한 Google Colab에서 진행하도록 하겠습니다. (여기도 램 사양은 비슷하지만)

 

 

colab.google

Colab is a hosted Jupyter Notebook service that requires no setup to use and provides free access to computing resources, including GPUs and TPUs. Colab is especially well suited to machine learning, data science, and education.

colab.google

 

 

코랩 노트북 환경을 만들고,

깃헙 아이디를 로그인해준 후에 

 

!git clone git@github.com:SesameAILabs/csm.git
!cd csm
!python3 -m venv .venv
!source .venv/bin/activate
!pip install -r requirements.txt

# Disable lazy compilation in Mimi
!export NO_TORCH_COMPILE=1

# You will need access to CSM-1B and Llama-3.2-1B
!huggingface-cli login

 

README에 하라는 대로 해주면 됩니다.

 

허깅페이스에서 Llama는 사용 권한을 받아야 사용할 수 있어서,

조금 기다리셔야 합니다 (금방 허용해주긴 합니다)

 

이제 README.md에 있는 코드에서 텍스트만 변경해서 사용해보겠습니다.

from generator import load_csm_1b
import torchaudio
import torch

if torch.backends.mps.is_available():
    device = "mps"
elif torch.cuda.is_available():
    device = "cuda"
else:
    device = "cpu"

generator = load_csm_1b(device=device)

audio = generator.generate(
    text="Hello! This is my first try of sesame. This is Jimmin",
    speaker=0,
    context=[],
    max_audio_length_ms=10_000,
)

torchaudio.save("audio.wav", audio.unsqueeze(0).cpu(), generator.sample_rate)

 

결과물

 

 

(공포주의)

??

 

이게 뭐지,,,

 

Llama 모델 쓰는 것도 그렇고 텍스트 그대로 만들어 주는 건 아닌가봐요.

 


 

이 글을 쓰는 동안 또 누가 깃헙에 예시 파일을 올려주셔서 그걸 한 번 실행해보았습니다.

 

실행은 코랩 GPU 환경에서도 몇 분 정도 걸렸습니다.

 

 

여러 번 돌려서 괜찮게 나온 걸로 고른 건데

이것마저도 사실 남자 목소리로 나와야 할 게 여자 목소리로 나오기도 하고 문제는 있었습니다.


오래 걸리기도 하고 사용해보니까 결과물도 사실 정말 불만족스러웠습니다.

웹사이트에서는 어떻게 그렇게 잘 됐던 거지??

 

아무래도 경량화 모델이기도 하고, 컴퓨터가 느리니까 이런 문제가 생기는 것 같은데

그래도 너무 상태가 안 좋지 않나,,,

역시 그 좋은 걸 공짜로 풀진 않네요. 세상에 공짜는 없다.

 

일단은 맥락이 주어졌을 때 가장 성능이 뛰어나다고 하니

프롬프트도 좀 추가하고 튜닝이라도 해봐야겠습니다.