Murmur
로컬에서 무료로 사용할 수 있는 회의/면접 녹음 전사 및 AI 스마트 클리닝 워크플로우 (LLM 비용은 사용 서비스에 따라 다름). Feishu Miaoji나 Tongyi Tingwu와 같은 서비스를 이제는 잊으세요. 30분 분량의 녹음을 Markdown 또는 Word 파일로 바로 얻을 수 있으며, AI agent에게 한마디만 하면 전체 프로세스를 완료할 수 있습니다.
License: MIT
Platform
Agent ready
중국어 · English
이것은 무엇인가요
임의의 회의/면접/수업/팟캐스트 녹음 파일을 자신의 컴퓨터에서 읽을 수 있는 Markdown 또는 Word 문서로 변환합니다:
- 로컬 전사(Local Transcription): Whisper 모델과 선택한 종속성만 준비되면 ASR이 오프라인으로 실행되므로, 녹음을 업로드할 필요가 없습니다. AI 클리닝의 오프라인 여부는 사용 LLM에 따라 달라집니다.
- 충분히 빠름: M2/M3 칩에서 30분 분량의 녹음은 약 10~15분 만에 완료됩니다. Windows 또는 Intel Mac CPU에서도 실행 가능합니다.
- 충분히 정확함: OpenAI Whisper large-v3-turbo와 중국어 일반 ASR 오타 수정 기능을 기반으로 합니다.
- AI agent 네이티브: Claude Code / Codex / GitHub Copilot / Cursor에게 한마디만 하면 엔드투엔드(end-to-end) 전체 프로세스를 실행할 수 있습니다.
- 기본 선택 가능: 처음 사용할 때 출력 형식(md / docx)과 기본 오프라인 ASR 모델을 동시에 선택하고, 이후에는 언제든지 변경할 수 있습니다.
Feishu Miaoji / Tongyi Tingwu와 비교
| Feishu Miaoji | Tongyi Tingwu | Murmur |
|---|
| 단일 비용 | 약 ¥0.5/분 | 약 ¥0.3/분 | 로컬 ASR 무료; LLM 비용 별도 청구 |
| ... | | | |
사용법: AI agent 내에서 호출하기
Murmur는 agent skill입니다. 가장 빠른 설치 방법은 다음과 같습니다: 아래 문장을 복사하여 agent 대화창에 붙여넣으세요. 그러면 agent가 자동으로 어느 디렉토리에 설치해야 할지 판단합니다:
내 로컬 환경에 이 skill을 설치해 줘: https://github.com/xiaopengde/murmur
agent는 사용자가 Claude Code / Copilot / Cursor / Codex 중 무엇을 사용하는지 자동으로 인식하여 해당 skills 디렉토리에 클론하고,
일반 대화 목록
| 원하는 작업 | agent에게 말할 내용 |
|---|
| 녹음 파일 변환 | "Murmur를 사용해서 xxx.m4a로 변환해 줘" |
| ... | |
| agent가 해당 명령어로 자동 번역하여 실행합니다. | |
agent 없이, 순수 명령어만으로도 가능
AI agent를 사용하고 싶지 않고 직접 수동으로 실행하려면:
macOS:
git clone https://github.com/xiaopengde/murmur.git && cd murmur
bash scripts/install-mac.sh
python3 scripts/transcribe.py 당신의 녹음파일.m4a
Windows(관리자 PowerShell):
git clone https://github.com/xiaopengde/murmur.git ; cd murmur
powershell -ExecutionPolicy Bypass -File scripts\install-windows.ps1
python scripts\transcribe.py 당신의 녹음파일.m4a
최초 전사(transcription)를 하기 전에, 먼저 python scripts/transcribe.py --onboarding을 실행하여 후보군을 확인한 후, 원하는 선택에 따라 python scripts/transcribe.py --init-defaults --format <md|docx> --set-default-model <model>을 실행하여 설정을 저장하세요 (Windows도 동일하게 적용). onboarding이 완료되지 않은 상태에서 직접 전사하면 종료됩니다. --format / --model은 우회할 수 없습니다.
전사가 완료되면 전사 초안.txt와 자막.srt를 얻게 됩니다. docs/prompts/clean-transcript.md의 내용과 전사 초안.txt를 함께 임의의 LLM(ChatGPT / Claude / 국내 대형 모델 모두 가능)에 입력하면, 정리된 Markdown 문서를 얻을 수 있습니다. 만약 기본 docx 형식을 설정했다면, 다시 python scripts/md2docx.py 逐字稿-清洗版.md를 실행하여 Word 파일로 변환하세요.
전체 명령어 참고:
python scripts/transcribe.py 녹음파일.m4a
python scripts/transcribe.py 녹음파일.m4a --format md
python scripts/transcribe.py 녹음파일.m4a --lang en
...
저장소 구조
murmur/
├── README.md ← 현재 보고 있는 파일
├── SKILL.md ← agent 진입점 (agent가 자동으로 읽음)
...
작동 원리
당신의 .m4a / .mp3 / .mp4
│
│ ffmpeg
...
개인 정보 보호 및 오프라인 경계
- 로컬 ASR: ffmpeg 전처리 및 Whisper 전사는 본체에서 완료됩니다. 종속성 설치, 모델 다운로드 또는 교체 시에는 인터넷 연결이 필요할 수 있습니다. 종속성과 선택된 모델이 캐시되면 ASR은 오프라인으로 실행될 수 있습니다.
- 클라우드 LLM 정제: ChatGPT / Claude / Gemini 등 클라우드 서비스에 초안이나 일부를 제출하면, 해당 텍스트가 서버로 전송되며 이는 해당 데이터 처리 정책을 따릅니다. 로컬 ASR이 곧 이후의 정제가 로컬에서 이루어진다는 것을 의미하지는 않습니다.
- 로컬 LLM 정제: 사용자가 직접 본체에서 실행하는 LLM을 사용하여 동일한 프롬프트를 처리할 수 있습니다. 모델과 종속성이 준비되어 있고, 클라이언트/agent가 클라우드에 호출하거나 텍스트를 동기화하지 않는 경우에만 정제가 오프라인으로 가능하며 텍스트도 본체에 남게 됩니다. Murmur는 로컬 LLM 배포 기능을 내장하고 있지 않습니다.
clean.py는 로컬에서 프롬프트만 조립할 뿐, LLM을 호출하지 않습니다. 만약 클라우드 agent가 초안, 자막 또는 정제된 원고를 읽게 된다면, 내용이 해당 서버로 전송될 가능성이 있습니다. 엄격하게 로컬 환경에서는 로컬 명령줄과 로컬 정제 환경을 사용해야 하며, ASR 초안만 보존할 수도 있습니다.
환경 요구 사항
| 최소 사양 | 권장 사양 |
|---|
| macOS | macOS 12 이상 Apple Silicon | M2/M3/M4 + 16GB RAM |
| ... | | |
자주 묻는 질문 (FAQ)
Q: 모델 크기는 얼마나 되나요? 다운로드가 느리면 어떻게 해야 하나요?
A: 기본 large-v3-turbo는 약 1.5GB이며, large-v3를 사용하면 약 2.9GB입니다. 중국 본토에서 처음 다운로드할 때 속도가 느리다면, transcribe.py가 시간대/언어/시스템 지역을 자동으로 판단합니다. 만약 본토 환경으로 감지되면, 검증된 ModelScope에서 우선적으로 모델을 다운로드하고 로컬에 캐싱합니다. 이미 검증된 ModelScope 매핑이 없는 경우, 자식 프로세스에 HF_ENDPOINT=https://hf-mirror.com (HuggingFace 미러)와 UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple (uv 의존성도 칭화(Tsinghua) 소스를 사용하도록 설정)를 주입합니다.
수동으로 모델 소스를 지정할 수도 있습니다:
python scripts/transcribe.py 녹음.m4a --model-source modelscope
python scripts/transcribe.py 녹음.m4a --model-source hf
현재 검증된 본토 우선 모델:
- Apple Silicon /
mlx-whisper: large-v3-turbo → ModelScope mlx-community/whisper-large-v3-turbo-4bit (약 464MB, 다운로드 후 자동으로 weights.safetensors와 호환되도록 처리)
- Windows / Linux / Intel Mac /
whisper-ctranslate2: large-v3-turbo → ModelScope mobiuslabsgmbh/faster-whisper-large-v3-turbo (약 1.62GB, CTranslate2 형식; 여전히 최초 실제 기기에서 스모크 테스트를 권장합니다)
최초 모델 캐시가 없는 경우, 진행 상황이 먼저 📥 모델 다운로드/준비 중...으로 표시됩니다. 모델 캐시 준비 완료 또는 다운로드가 완료된 후에야 ⏳ 전사 추론 중...으로 전환됩니다.
⚠️ ModelScope 사용 시 전역 VPN 비활성화 권장: ModelScope는 국내 CDN이므로, 본토에서 직접 연결하는 것이 가장 빠릅니다. 전역 VPN/프록시를 사용하면 해외로 우회했다가 돌아오기 때문에 오히려 더 느립니다. 만약 HuggingFace 경로를 사용하는 경우에는 반대입니다. 그때 VPN을 켜야 빠릅니다.
매번 --cn 옵션을 추가하고 싶지 않다면, python scripts/transcribe.py --set-default-cn on을 실행하여 기본 설정을 영구화할 수 있습니다. 또는 직접 bash scripts/install-mac.sh --cn을 실행하면 설치 스크립트가 자동으로 선호 설정을 기록해 줍니다.
Q: 더 작거나 빠른 모델로 변경할 수 있나요?
A: 가능합니다. --model은 tiny / base / small / medium / large-v2 / large-v3 / large-v3-turbo의 약어(short name)를 받으며, 엔진에 따라 자동으로 매핑됩니다 (mlx-whisper는 커뮤니티 양자화 버전을 사용하고, whisper-ctranslate2는 공식 이름을 사용합니다). 전체 HF 레포지토리 이름도 받을 수 있습니다. 단발성 설정은 --model medium이며, 영구 설정은 --set-default-model medium, 초기화는 --set-default-model ""입니다.
Q: 영어 / 일본어 / 다른 언어로 전사할 수 있나요?
A: 가능합니다. python scripts/transcribe.py 녹음.m4a --lang en을 사용하며, Whisper가 지원하는 전체 99개 언어를 지원하고 기본값은 중국어(zh)입니다.
Q: 화자를 식별할 수 있나요?
A: mlx-whisper / whisper-ctranslate2 모두 화자 분리(diarization) 기능이 없습니다. Murmur의 전략은 LLM이 클리닝 단계에서 문맥을 추론하도록 하는 것입니다 (면접/대화 시나리오에서는 매우 정확합니다). 다수가 혼란스러운 장면에는 **화자 1/2/3**와 같은 자리 표시자(placeholder)를 사용하면 됩니다. 만약 화자 분리에 대한 강력한 요구사항이 있다면, 이슈 트래커에서 논의해 주십시오.
Q: 녹음 시간이 1시간을 초과하면 문제가 생기나요?
A: 그렇지 않습니다만, 구간별로 나누는 것을 권장합니다. 로컬 Whisper는 긴 오디오에서 간혹 환각 루프(hallucination loop)가 발생할 수 있으며, 본 도구에서는 기본적으로 --condition-on-previous-text False를 활성화하여 이를 방지했지만, 더 안정적인 방법은 분할하는 것입니다.
Q: 상업적으로 이용할 수 있나요?
A: MIT License이며, 가능합니다. Whisper 모델 자체도 MIT 오픈 소스이므로 상업적 제한이 없습니다.
완벽한 문제 해결 방법은 docs/troubleshooting.md를 참조하세요.
라이선스
MIT © 2026 xiaopengde
기반 의존성:
간략 설명
Murmur는 로컬에서 실행되는 무료 ASR(자동 음성 인식) 기능과 LLM을 이용한 정리 작업을 결합하여 오디오 → 마크다운/docx 워크플로우를 제공하며, Otter.ai나 Fireflies.ai와 같은 SaaS 녹취 서비스를 대체합니다. 이 도구는 에이전트 중심으로 설계되었기 때문에 AI 코딩 에이전트의 스킬 디렉터리(Claude Code / Codex / GitHub Copilot / Cursor)에 넣기만 하면 단일 자연어 요청으로 엔드투엔드 실행됩니다.
빠른 시작 (에이전트 중심): 다음 줄을 AI 에이전트에 복사하세요:
Please install this skill locally for me: https://github.com/xiaopengde/murmur
에이전트는 사용자가 Claude Code / Copilot / Cursor / Codex 중 어느 환경에 있는지 감지하고 Murmur를 적절한 스킬 디렉터리에 클론합니다. 그런 다음 "Use Murmur to transcribe ~/Desktop/meeting.m4a into a doc"라고 말하면, env doctor가 실행되고 누락된 의존성이 설치되며, 기본 출력 형식(md/docx)과 오프라인 ASR 모델을 선택하도록 요청한 후, Whisper large-v3-turbo를 사용하여 녹취하고(Apple Silicon에서는 mlx 사용, 그 외 환경에서는 whisper-ctranslate2 사용), LLM을 통해 출력을 읽기 쉬운 문서로 정리합니다.
ASR은 의존성과 선택된 Whisper 모델이 캐시되면 오프라인으로 실행될 수 있습니다. 클라우드 LLM 정제 작업은 녹취 텍스트를 제공업체에 전송하므로 비용이 발생할 수 있습니다. 완전히 오프라인 정제를 위해서는 별도로 설정된 로컬 LLM과 텍스트를 클라우드 서비스로 보내거나 동기화하지 않는 클라이언트/에이전트가 필요하며, Murmur는 로컬 LLM 배포 기능을 포함하고 있지 않습니다.
수동 사용법: bash scripts/install-mac.sh (Mac) / scripts/install-windows.ps1 (Win)를 실행한 후, python scripts/transcribe.py --onboarding을 진행합니다. 이후 --init-defaults --format <md|docx> --set-default-model <model>로 선택 사항을 저장하고, 마지막으로 python scripts/transcribe.py recording.m4a`를 실행합니다.
상세 문서는 위에 중국어로 제공됩니다. PR(Pull Request)은 언제든지 환영합니다.