팟캐스트 트랜스크립션
로컬 Whisper AI를 사용하여 팟캐스트 에피소드의 트랜스크립트를 생성합니다. 모든 처리는 기기에서 이루어집니다.
개요
팟캐스트 에피소드를 아카이빙한 후, Social Archiver는 컴퓨터에서 로컬로 실행되는 OpenAI의 Whisper 음성 인식 모델을 사용하여 전체 트랜스크립트를 생성할 수 있습니다.
왜 로컬 처리인가요?
이 기능은 두 가지 고려 사항을 염두에 두고 설계되었습니다:
프라이버시: 오디오가 기기를 떠나지 않습니다. 모든 트랜스크립션은 오픈 소스 도구를 사용하여 로컬에서 이루어지므로 민감한 콘텐츠에 대한 완전한 프라이버시가 보장됩니다.
API 비용 없음: 오디오 분당 요금을 부과하는 클라우드 기반 트랜스크립션 서비스와 달리, 로컬 Whisper는 설치 후 완전히 무료로 사용할 수 있습니다.
단점은 추가 도구를 설치해야 하고 트랜스크립션 속도가 컴퓨터 성능에 따라 달라진다는 것입니다.
요구사항
다음 음성 인식 도구 중 하나가 설치되어 있어야 합니다:
| 도구 | CLI 포함 | 속도 | 모델 자동 다운로드 |
|---|---|---|---|
| faster-whisper | 아니오 (wrapper 필요) | 가장 빠름 | ✓ 자동 |
| openai-whisper | 예 | 보통 | ✓ 자동 |
| whisper.cpp | 예 | 빠름 | ✗ 수동 |
추천
- Apple Silicon Mac (M1/M2/M3/M4): whisper.cpp 권장 (Metal GPU 가속으로 최고 성능)
- Windows: openai-whisper 권장 (CLI 포함, 추가 설정 불필요)
- Linux: faster-whisper 권장 (최고의 CPU 성능, 모델 자동 다운로드)
옵션 1: faster-whisper (권장)
CTranslate2 기반 구현체입니다. openai-whisper보다 최대 4배 빠르고 메모리 사용량이 적습니다. 첫 사용 시 모델이 자동으로 다운로드됩니다.
- 저장소: github.com/SYSTRAN/faster-whisper
- 모델:
~/.cache/huggingface/에 자동 다운로드
CLI Wrapper 필요
faster-whisper는 내장 CLI가 없는 Python 라이브러리입니다. CLI wrapper 스크립트를 설치해야 합니다.
Windows 사용자
Windows에서는 openai-whisper 사용을 권장합니다 (아래 옵션 2 참조). CLI가 기본 포함되어 있어 추가 설정이 필요 없습니다. 그래도 Windows에서 faster-whisper를 사용하고 싶다면 아래 Windows 전용 안내를 따르세요.
macOS / Linux 설치
단계 1: 라이브러리 설치
pip install faster-whisper# macOS Homebrew는 시스템 pip 설치를 차단합니다 (PEP 668)
# 대신 전용 가상환경을 생성하세요:
# venv 생성 및 faster-whisper 설치
python3 -m venv ~/.local/share/faster-whisper-venv
~/.local/share/faster-whisper-venv/bin/pip install faster-whisper단계 2: CLI wrapper 설치
wrapper 스크립트를 다운로드하여 PATH에 저장합니다:
# bin 디렉토리 생성 (없는 경우)
mkdir -p ~/.local/bin
# wrapper 스크립트 다운로드
curl -o ~/.local/bin/faster-whisper \
https://raw.githubusercontent.com/hyungyunlim/obsidian-social-archiver-releases/main/faster-whisper-cli.py
# 실행 권한 부여
chmod +x ~/.local/bin/faster-whispermacOS 사용자: shebang 수정 필요
venv에 faster-whisper를 설치했다면 (단계 1), 스크립트의 shebang을 venv Python으로 수정해야 합니다:
# 스크립트의 첫 번째 줄 교체
sed -i '' '1s|.*|#!/Users/'$USER'/.local/share/faster-whisper-venv/bin/python|' ~/.local/bin/faster-whisper단계 3: PATH에 추가 (아직 안 되어 있다면)
# 쉘 설정 파일에 추가 (~/.zshrc 또는 ~/.bashrc)
export PATH="$HOME/.local/bin:$PATH"
# 쉘 새로고침
source ~/.zshrc # 또는 ~/.bashrc설치 확인:
faster-whisper --versionWindows 설치
단계 1: 라이브러리 설치
pip install faster-whisper단계 2: CLI wrapper 설치
PowerShell을 열고 실행하세요:
# Python Scripts 폴더에 wrapper 스크립트 다운로드
# 먼저 Python Scripts 경로 확인
python -c "import sys; print(sys.prefix + '\\Scripts')"
# wrapper 다운로드 (경로를 필요에 맞게 수정)
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/hyungyunlim/obsidian-social-archiver-releases/main/faster-whisper-cli.py" -OutFile "$env:LOCALAPPDATA\Programs\Python\Python311\Scripts\faster-whisper.py"단계 3: batch wrapper 생성
같은 Scripts 폴더에 faster-whisper.bat 파일을 생성합니다:
@echo off
python "%~dp0faster-whisper.py" %*또는 PowerShell 명령어로 생성:
$scriptsPath = python -c "import sys; print(sys.prefix + '\\Scripts')"
Set-Content -Path "$scriptsPath\faster-whisper.bat" -Value '@echo off`r`npython "%~dp0faster-whisper.py" %*'설치 확인:
faster-whisper --version옵션 2: openai-whisper
OpenAI의 원본 Python 구현체입니다. 설치가 쉽고 바로 작동합니다. 첫 사용 시 모델이 자동으로 다운로드됩니다.
- 저장소: github.com/openai/whisper
- 모델:
~/.cache/whisper/에 자동 다운로드
설치:
# Python 3.8+ 필요
pip install openai-whisper
# 또는 pipx 사용 (격리 권장)
pipx install openai-whisper설치 확인:
whisper --help옵션 3: whisper.cpp
고성능 C++ 구현체입니다. Metal GPU 가속을 통해 Apple Silicon Mac에서 최상의 성능을 제공합니다.
수동 모델 다운로드 필요
whisper.cpp는 사용 전에 GGML 모델 파일을 수동으로 다운로드해야 합니다.
설치:
# macOS (Homebrew 사용)
brew install whisper-cpp
# 또는 소스에서 빌드
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
cmake -B build && cmake --build build --config Release모델 다운로드:
# 모델 디렉토리 생성
mkdir -p ~/whisper-models
# small 모델 다운로드 (권장, 465MB)
curl -L -o ~/whisper-models/ggml-small.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin
# 다른 모델 옵션:
# ggml-tiny.bin (74MB), ggml-base.bin (142MB)
# ggml-medium.bin (1.5GB), ggml-large-v3.bin (2.9GB)플러그인은 다음 위치에서 모델을 검색합니다:
~/whisper-models/~/.cache/whisper-cpp/~/whisper.cpp/models/
설치 확인:
whisper-cli --help플러그인 설정
설정 → Social Archiver → Transcription Settings에서 트랜스크립션을 구성합니다:
| 설정 | 설명 |
|---|---|
| Enable Whisper transcription | 트랜스크립션 기능 켜기/끄기 |
| Preferred Whisper variant | 사용할 Whisper 구현체 선택 |
| Preferred model | 모델 크기 선택 (tiny ~ large) |
| Default language | 자동 감지 또는 언어 지정 |
| Custom Whisper path | 자동 바이너리 감지 재정의 |
Variant 선택하기
여러 Whisper variant가 설치되어 있다면 사용할 것을 선택할 수 있습니다:
- Auto-detect: Apple Silicon Mac에서는 whisper.cpp 우선, 그 외 시스템에서는 faster-whisper 우선
- faster-whisper: 가장 쉬운 설정, 모델 자동 다운로드, 뛰어난 CPU 성능
- openai-whisper: 원본 구현체, 쉬운 설정, 모델 자동 다운로드
- whisper.cpp: Apple Silicon Mac에 최적 (Metal GPU 가속), 수동 모델 다운로드 필요
모델은 공유되지 않음
각 variant는 다른 모델 포맷을 사용합니다. 한 variant용으로 다운로드한 모델은 다른 variant에서 사용할 수 없습니다:
| Variant | 모델 포맷 | 저장 위치 |
|---|---|---|
| faster-whisper | CTranslate2 | ~/.cache/huggingface/ |
| openai-whisper | PyTorch (.pt) | ~/.cache/whisper/ |
| whisper.cpp | GGML (.bin) | 수동 지정 |
작동 방식
- 팟캐스트 아카이브: 먼저 팟캐스트를 구독하거나 오디오가 있는 에피소드를 아카이브
- 타임라인에서 열기: 타임라인 뷰에서 아카이브된 에피소드 확인
- 트랜스크라이브 버튼 클릭: 팟캐스트 카드의 마이크 아이콘 클릭
- 처리 대기: 트랜스크립션 진행 상황이 버튼에 표시됨
- 트랜스크립트 보기: 오디오 플레이어 아래에 펼칠 수 있는 트랜스크립트 표시
트랜스크립트 기능
인터랙티브 타임스탬프
트랜스크립트의 타임스탬프를 클릭하면 오디오의 해당 지점으로 이동합니다. 재생 중에는 현재 세그먼트가 하이라이트됩니다.
검색 (데스크톱)
검색창을 사용하여 트랜스크립트에서 특정 단어나 구문을 찾을 수 있습니다.
접기/펼치기
트랜스크립트는 공간 절약을 위해 접힌 상태로 시작합니다. 클릭하여 전체 내용을 펼쳐 볼 수 있습니다.
트랜스크립트 저장 위치
트랜스크립트는 마크다운 파일의 ## Transcript 섹션에 직접 저장됩니다:
## Transcript
[00:00] 팟캐스트에 오신 것을 환영합니다...
[00:15] 오늘은 다음에 대해 이야기합니다...메타데이터는 YAML frontmatter에 저장됩니다:
transcriptionModel: small
transcriptionLanguage: ko
transcriptionDuration: 1847.5
transcriptionTime: 2024-12-12T05:30:00.000Z모델 선택
필요에 따라 모델을 선택하세요:
| 모델 | 크기 | 속도 | 정확도 | 용도 |
|---|---|---|---|---|
| tiny | 74MB | ~32x | 낮음 | 빠른 미리보기 |
| base | 142MB | ~16x | 보통 | 짧은 클립 |
| small | 466MB | ~6x | 좋음 | 기본값, 균형 |
| medium | 1.5GB | ~2x | 높음 | 중요한 콘텐츠 |
| large | 2.9GB | ~1x | 최고 | 최대 정확도 |
속도는 오디오 길이에 상대적입니다 (예: ~6x는 10분 오디오가 ~1.5분에 트랜스크립션됨).
권장 사항
small 모델로 시작하세요. 대부분의 팟캐스트에서 속도와 정확도의 좋은 균형을 제공합니다.
문제 해결
트랜스크라이브 버튼이 나타나지 않음
원인: 시스템 PATH에서 Whisper 도구를 찾을 수 없음
해결 방법:
whisper --version또는faster-whisper --version으로 설치 확인- 도구 설치 후 Obsidian 재시작
- 도구가 시스템 PATH에 있는지 확인
트랜스크립션 실패 또는 시간 초과
일반적인 원인:
- 선택한 모델에 대한 메모리 부족
- 손상된 오디오 파일
- 매우 긴 오디오 (2시간 이상)
해결 방법:
- 더 작은 모델 시도 (예:
tiny또는base) - 오디오 파일이 올바르게 재생되는지 확인
- 사용 가능한 디스크 공간과 메모리 확인
트랜스크립션 품질 저하
일반적인 원인:
- 오디오의 배경 소음
- 여러 화자가 동시에 말함
- 비표준 억양 또는 기술 용어
해결 방법:
- 더 큰 모델 사용 (
medium또는large) - 자동 감지가 실패하면 설정에서 언어 지정
느린 트랜스크립션
트랜스크립션 속도는 다음에 따라 달라집니다:
- CPU/GPU 성능
- 선택한 모델 크기
- 오디오 길이
성능 팁
- Apple Silicon Mac: 최상의 성능을 위해
whisper.cpp사용 - NVIDIA GPU: CUDA 지원과 함께
faster-whisper사용 - CPU만: 합리적인 속도를 위해
tiny또는base모델 사용
언어 지원
Whisper는 자동 감지와 함께 99개 이상의 언어를 지원합니다. 영어가 아닌 콘텐츠에서 최상의 결과를 위해:
- 먼저 자동 감지가 언어를 식별하도록 함
- 감지가 실패하면 플러그인 설정에서 수동으로 언어 지정
프라이버시 및 저장
로컬 처리만
모든 트랜스크립션은 기기에서 로컬로 이루어집니다. 오디오 파일은 어떤 서버에도 업로드되지 않습니다. 트랜스크립트는 Obsidian vault에만 저장됩니다.
디스크 공간
트랜스크립트는 텍스트 전용이며 매우 작습니다 (긴 팟캐스트도 일반적으로 100KB 미만). vault 크기에 큰 영향을 미치지 않습니다.