n8n과 Whisper로 완성하는 나만의 '로컬 AI 회의 요약 시스템' 구축 가이드

n8n과 Whisper로 완성하는 나만의 '로컬 AI 회의 요약 시스템' 구축 가이드

요약 본 가이드는 n8n과 로컬 AI 모델(Ollama, Whisper)을 결합하여 보안 걱정 없는 회의 요약 자동화 시스템을 구축하는 방법을 다룹니다. MacWhisper Pro의 워크플로우 연동부터 화자 분리(Diarization), 그리고 Obsidian의 3가지 운영 모드를 활용한 지식 체계화까지의 전 과정을 상세히 설명합니다.

회의 녹음파일을 n8n을 활용한 자동 회의록 작성 (출처: AI 생성)


1. 프라이버시와 효율을 동시에: 왜 로컬 AI 자동화인가?

이제 AI 활용은 단순한 채팅 인터페이스를 넘어, 실질적인 '워크플로우'의 중심으로 이동해야 합니다.

클라우드 AI를 사용할 때 가장 큰 병목은 역시 보안이죠. 소중한 회의 데이터의 외부 유출은 기업에게 치명적입니다.

로컬 AI 자동화는 프라이버시를 단순한 기능이 아닌 시스템의 토대로 삼습니다. 모든 데이터 처리가 내부에서 완결되니까요. 또한, 구독료나 토큰 비용 없는 무제한 사용은 매우 큰 경제적 가치를 가집니다. 비용 걱정 없이 인프라를 확장해 보세요.

이제 하드웨어 성능만으로 나만의 강력한 '복합 AI 시스템(Compound AI Systems)'을 구축하는 여정을 시작해 보겠습니다.


2. 시스템의 심장: Docker와 n8n 설치하기

n8n은 단순한 도구를 넘어, 로컬 모델들을 유기적으로 연결하는 'AI 오케스트레이터'입니다. Docker를 이용하면 독립된 환경에서 n8n을 무료로 자가 호스팅(Self-hosted)할 수 있어 비용 효율이 극대화됩니다.

  1. Docker 실행: Docker Desktop을 설치하고 실행하여 로컬 인프라를 준비합니다.
  2. n8n 이미지 실행: 터미널에서 n8n.io 이미지를 내려받고 실행합니다. 이때 로컬 파일 시스템에 접근할 수 있도록 볼륨 매핑(예: /data/audio, /data/summaries)을 설정해야 합니다.
  3. 환경 변수 설정: n8n v2부터는 보안을 위해 로컬 파일 접근이 기본적으로 제한됩니다. **N8N_RESTRICT_FILE_ACCESS_TO** 변수를 설정하여 데이터가 저장될 경로를 명시해야 합니다.
  4. 로컬 통신 주소: n8n 컨테이너가 Docker 외부의 Ollama 서버와 통신하려면 localhost 대신 **host.docker.internal** 주소를 사용해야 합니다.

3. 로컬 LLM의 구동: Ollama와 Gemma 모델 연결

Ollama는 터미널 명령어 하나로 LLM의 인퍼런스(Inference) 성능을 끌어내는 가장 강력한 엔진입니다. 우리는 요약 작업에 최적화된 구글의 Gemma 2B 모델을 활용할 것입니다.

  • n8n 설정: 'Basic LLM Chain' 노드를 추가하고 Ollama 서브 노드를 연결합니다.
  • 인증 정보: Ollama 자격 증명 설정 시 Base URL에 http://host.docker.internal:11434를 입력하고, API Key는 공란으로 비워두세요.
  • Expression 활용: n8n의 식별자 편집기(Expression Editor)에서 chatInput 변수를 드래그하여 맞춤형 프롬프트에 동적으로 삽입합니다. "참가자 간의 합의 사항을 중심으로 요약해 줘"와 같은 구체적인 지시가 가능합니다.

4. 완벽한 텍스트 변환: Whisper 모델 선택 가이드

회의 음성을 텍스트로 변환할 때는 하드웨어 사양에 따른 전략적 선택이 필요합니다. WhisperX와 같이 '강제 정렬(Forced Alignment)'을 지원하는 모델을 써야 Obsidian의 타임스탬프 기능을 100% 활용할 수 있습니다.

       
모델 변형 주요 강점 권장 하드웨어 비고
faster-whisper 효율성 및 양자화 CPU / 보급형 GPU CTranslate2 엔진 기반, INT8/FP16 양자화 지원
insanely-fast 압도적 처리량 고성능 NVIDIA GPU FlashAttention-2 및 GPU 병렬 배치 처리 최적화
WhisperX 파이프라인 확장성 GPU (VRAM 8GB+) wav2vec2 기반 강제 정렬로 정확한 단어 단위 타임스탬프

5. "누가 말했나요?": 화자 분리(Diarization) 기술 적용

Whisper는 설계 특성상 화자 간의 차이를 의도적으로 무시합니다. 따라서 완성도 높은 회의록을 위해서는 Picovoice Falcon이나 Pyannote 같은 별도의 화자 식별 툴킷이 필요합니다.

이 과정의 핵심은 Score(중첩 비율) 기반 알고리즘입니다. Whisper가 생성한 텍스트 세그먼트의 시간대와 Falcon이 식별한 화자 태그의 시간대를 비교하여, 가장 높은 일치 점수를 가진 화자를 텍스트에 매칭합니다. 여기에 AI 지원 명명(Auto Identify) 기능을 추가하면 LLM이 맥락을 파악해 'SPEAKER 01'을 실명으로 자동 변환하여 더욱 직관적인 결과물을 제공합니다.


6. 생산성의 완성: Obsidian 연동 및 지식 체계화

이 시스템의 진정한 가치는 n8n이 가공한 데이터를 Obsidian에 어떻게 적재하느냐에 있습니다. 특히 MacWhisper Pro에서 내보낸 .whisper 파일(압축된 JSON 및 오디오 포함)을 모니터링하여 자동으로 프로세스를 시작하도록 트리거를 설정하세요.

3가지 운영 모드 (Modes of Operation)

파일명에 포함된 마커에 따라 n8n 오케스트레이터가 자동으로 로직을 변경합니다.

  • **!** (Priority Mode): 마커 뒤에 실명을 적으면(예: meeting!홍길동) 해당 참가자의 발언을 요약 시 최우선 순위로 반영합니다.
  • **#** (Evergreen Mode): 통찰 중심의 '에버그린 노트'를 생성합니다. 회의의 지엽적인 내용보다 핵심 개념과 장기적 가치를 지닌 아이디어를 추출합니다.
  • **+** (Focused Mode): 특정 주제에 대한 딥다이브 분석을 수행합니다. 복잡한 기술적 논의를 구조화하여 학습용 노트를 만듭니다.

지식 관리 자동화 팁

  • 오디오 타임스탬프 링크: [[audio.m4a#t=MM:SS|(audio)]] 형식을 사용하여 요약본에서 즉시 해당 발언 지점을 청취할 수 있습니다. 이는 WhisperX의 정밀한 타임스탬프 덕분에 가능합니다.
  • Dataview & CSS: Dataview 인라인 필드를 활용해 'Hot Takes'나 핵심 인용구를 관리하고, 커스텀 CSS 스니펫으로 필드를 숨겨 깔끔한 UI를 유지하세요.
  • 액션 아이템 자동화: LLM이 추출한 액션 아이템은 QuickAddKanban 플러그인용 add-to-kanban.js 스크립트를 통해 자동으로 칸반 보드에 할당되도록 설정할 수 있습니다.

7. 자주 묻는 질문 (FAQ)

Q: GPU VRAM 사양이 어떻게 되나요? A: distil-large-v3 모델을 INT8 양자화로 구동할 경우 약 5GB VRAM으로도 충분합니다. 보급형 GPU에서도 쾌적한 속도를 기대할 수 있습니다.

Q: n8n에서 로컬 파일을 읽거나 쓸 수 없습니다. A: Docker 실행 시 compose.yml에서 N8N_RESTRICT_FILE_ACCESS_TO 환경 변수를 통해 허용된 경로를 지정했는지 확인하세요. 또한 Obsidian 보관함 경로가 Docker 볼륨으로 정확히 매핑되어야 합니다.

Q: 화자 분리의 정확도를 높이는 방법은? A: 고품질 오디오 추출이 가장 중요합니다. 하드웨어 여유가 있다면 Pyannote와 WhisperX를 결합한 파이프라인을 구축하여 오버랩 비율(Overlap Ratio) 계산의 정밀도를 높이는 것을 추천합니다.

내 PC에 구축하는 '회의록 자동화' 전체 흐름 (AI 생성+PPT)


참고자료