로컬 음성 인식·합성

최종 업데이트

SAM Audio로 녹음에서 목소리와 소리 분리하기

원하는 소리를 설명해 입력하고 대상과 나머지 오디오를 분리해요.

Meta의 SAM Audio는 복잡한 녹음에서 텍스트 설명, 영상 단서, 시간 구간으로 지정한 소리를 분리하는 모델이에요. 공식 예제는 CUDA1 GPU2에서 실행하고 사전학습 체크포인트3 접근을 요청한 뒤 로그인하도록 안내해요. 음악 보컬 분리 전용 모델이라기보다 말소리·음악·효과음을 포함한 오디오에서 목표 음원을 찾는 도구예요.

실행 조건과 핵심 내용
  • 텍스트, 시간 구간, 영상 단서로 목표 소리를 설명해요.
  • 공식 예제는 Python 3.11 이상과 CUDA GPU를 요구해요.
  • 사전학습 체크포인트 접근을 별도로 신청해야 해요.

설명한 소리와 나머지를 별도 오디오로 나눠요

SAM Audio는 음원 분리 모델이에요. 회의 녹음에서 특정 화자의 말소리, 배경 음악, 경적처럼 원하는 소리를 자연어 설명으로 지정하거나 시간 구간·영상 단서를 사용해 분리할 수 있어요. 입력 믹스와 지정한 목표를 바탕으로 대상 신호와 나머지 신호를 출력합니다. Meta SAM Audio 소개 · 공식 저장소

마이크 옆의 노트북에 음성 파형이 표시된 화면
분리할 대상 소리를 짧은 설명으로 정해요.

CUDA 환경과 체크포인트 접근을 준비해요

Python 3.11 이상과 CUDA 호환 GPU를 준비하고 공식 저장소를 설치하세요. 먼저 Hugging Face의 SAM Audio 모델 카드에서 체크포인트 접근을 신청해 승인받아야 합니다. 저장소를 복제한 뒤 meeting.wav를 저장소 루트에 두고 Hugging Face CLI4로 로그인하세요.

클론한 공식 저장소에서 패키지 설치
git clone https://github.com/facebookresearch/sam-audio.git
cd sam-audio
python -m pip install .
체크포인트 로그인과 입력 파일 준비
python -m pip install "huggingface_hub[cli]"
hf auth login
# Enter the token in the interactive prompt
cp /path/to/meeting.wav ./meeting.wav

텍스트로 분리할 소리를 구체적으로 지정해요

아래 코드를 separate.py로 저장해 실행하면 요청한 말소리가 target.wav, 나머지 소리가 residual.wav로 저장됩니다. meeting.wav는 저장소 루트에 두고, 출력은 processor가 지정한 샘플레이트로 기록해요.

텍스트 프롬프트 기반 분리 예제
from sam_audio import SAMAudio, SAMAudioProcessor
import torchaudio
import torch

checkpoint = "facebook/sam-audio-large"
model = SAMAudio.from_pretrained(checkpoint).eval().cuda()
processor = SAMAudioProcessor.from_pretrained(checkpoint)
batch = processor(audios=["meeting.wav"], descriptions=["speech"]).to("cuda")
with torch.inference_mode():
    result = model.separate(batch, predict_spans=False, reranking_candidates=1)
sample_rate = processor.audio_sampling_rate
torchaudio.save("target.wav", result.target[0].cpu().unsqueeze(0), sample_rate)
torchaudio.save("residual.wav", result.residual[0].cpu().unsqueeze(0), sample_rate)
분리 스크립트 실행
python separate.py

대상 신호와 잔여 신호를 각각 점검해요

분리된 대상에 원래 의도한 화자나 효과음만 남는지, 잔여 트랙에 필요한 배경 대화가 빠지지 않았는지 비교해요. 결과는 원본 녹음의 품질과 프롬프트5에 따라 달라져요. 필요하면 설명을 one person's speech처럼 더 좁히거나, 대상이 들리는 시간 구간을 지정하는 공식 span 방식으로 다시 실행하세요.

헤드폰과 마이크, 전사 작업 화면이 놓인 책상
대상 소리와 나머지 배경의 결과를 각각 들어봐요.

보컬 제거와 일반 음원 분리를 구분해요

SAM Audio는 말소리, 음악 악기, 효과음과 같은 목표를 자연어·영상·시간 구간으로 지정하는 일반 오디오 분리 도구예요. 스테레오 곡의 보컬 제거가 목표라면 음악 믹스에서 singing voice를 지정해 결과를 직접 확인할 수 있지만, 전용 보컬/반주 모델의 출력과 같은 품질이나 워크플로라고 가정하지 마세요. 원본과 분리 결과의 왜곡, 리버브 흔적, 누락된 악기를 들어봐야 해요.

연구용 체크포인트와 권한 조건을 확인해요

체크포인트 승인은 모델 파일 접근 권한을 주지만, 녹음 속 목소리를 분리하거나 공유할 권리까지 정하지는 않아요. 회의·상담 녹음은 참석자에게 알리고 조직의 보관 정책에 따라 처리하세요.

녹음기와 메모, 음성 인식 결과를 듣는 헤드폰
구간이나 영상 단서를 써서 원하는 음원을 좁혀요.

용어 각주

  1. CUDA — NVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다.

    본문으로 돌아가기
  2. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  3. 체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.

    본문으로 돌아가기
  4. CLI — Command-Line Interface의 약자입니다. 터미널에 명령어를 입력해 프로그램을 조작하는 방식입니다.

    본문으로 돌아가기
  5. 프롬프트 — 모델에 보내는 입력문입니다. 생성 모델에서는 만들 결과를 설명하는 문장이 되어 출력의 구성과 내용을 크게 좌우합니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
Meta의 SAM Audio는 복잡한 녹음에서 텍스트 설명, 영상 단서, 시간 구간으로 지정한 소리를 분리하는 모델이에요. 공식 예제는 CUDA GPU에서 실행하고 사전학습 체크포인트 접근을 요청한 뒤 로그인하도록 안내해요. 음악 보컬 분리 전용 모델이라기보다 말소리·음악·효과음을 포함한 오디오에서 목표 음원을 찾는 도구예요.
선택하지 않는 편이 좋은 경우는 언제인가요?
SAM Audio는 말소리, 음악 악기, 효과음과 같은 목표를 자연어·영상·시간 구간으로 지정하는 일반 오디오 분리 도구예요. 스테레오 곡의 보컬 제거가 목표라면 음악 믹스에서 `singing voice`를 지정해 결과를 직접 확인할 수 있지만, 전용 보컬/반주 모델의 출력과 같은 품질이나 워크플로라고 가정하지 마세요. 원본과 분리 결과의 왜곡, 리버브 흔적, 누락된 악기를 들어봐야 해요.