Skip to content

Repository files navigation

voice-to-notes

범용 음성 전사·정리 도구다. 개인용 Hermes voice-transcription과 코드·설정·저장 경로를 공유하지 않는다.

현재 상태: 0.1.0-alpha. 실제 사건·고객 자료에 적용하기 전에 결과를 사람이 검토해야 한다.

⚠️ 기밀 자료 주의: 의뢰인 회의 등 기밀 녹취는 local 모드를 사용하세요. api 모드는 전사문 전문을 외부 LLM으로 자동 전송하고, manual 모드도 생성한 전사문을 ChatGPT·Claude·Gemini 등에 붙여 넣으면 그 서비스로 전송합니다. 원본 음성만 외부 전송되지 않는다는 사실은 전사문의 기밀성을 보장하지 않습니다.

먼저, 방식 고르기

방식 전사·요약 위치 외부 전송 알맞은 경우
local 내 컴퓨터의 Whisper + LM Studio 등 로컬 LLM 없음 기밀 회의·의뢰인 자료
manual 전사는 로컬, 요약은 사용자가 선택한 채팅 서비스에 붙여 넣기 붙여 넣은 전사문 API 키 없이 일반 대화형 AI를 쓸 때
api 전사는 로컬, 요약은 API 호출 전사문 전문 자동 처리와 API 키 사용이 가능한 때

manual은 API 키가 필요 없을 뿐 오프라인 모드가 아닙니다. 외부 전송의 허용 여부와 해당 서비스의 데이터 처리 정책은 사용자가 확인해야 합니다.

제공 기능

  • 긴 오디오를 15분 내부 청크로 나누어 로컬 Whisper large-v3-turbo로 전사
  • 완료 청크를 보존하여 중단 후 재실행 시 이어서 처리
  • manual, 상용 api, local 세 가지 요약 모드
  • 기본 .txt, 선택 .md·.json 출력
  • 한국어 제목과 별도 영문 제목, 날짜, [내부]·[고객]·[통화]·[기일]·[조사]·[기타] 분류
  • 원본 음성은 외부 LLM에 전송하지 않고, API 모드에서도 전사 텍스트만 전송

설치 요구사항

  • Python 3.10 이상
  • FFmpeg: 약 80~150MB
  • OpenAI Whisper 실행 환경: 약 1~2GB(패키지와 PyTorch 포함, 환경별 차이 큼)
  • large-v3-turbo 모델: 약 1.6GB
  • 선택: LM Studio와 로컬 LLM(모델별 수 GB~수십 GB)
  • 선택: 상용 API 키. OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY 중 사용하는 공급자 하나

macOS 예시:

git clone https://github.com/dillettante/voice-to-notes.git
cd voice-to-notes
brew install ffmpeg openai-whisper
python3 -m pip install -e .
voice-to-notes --help

모델은 첫 전사 때 자동 다운로드된다. 다른 Whisper 모델을 쓰려면 설정의 transcription.model을 변경할 수 있다.

빠른 시작: manual

voice-to-notes --config config.example.json prepare recording.m4a

설치된 명령 대신 python -m voice_to_notes로도 동일하게 실행할 수 있다.

  1. 생성된 *-manual-prompt.txt에는 전사문 전체가 들어 있습니다. 내용을 ChatGPT, Claude 또는 Gemini에 붙여 넣으면 전사문이 해당 서비스로 전송됩니다.
  2. 응답은 설명이나 Markdown 코드블록 없이 JSON 객체 하나만 달라고 요청합니다. 응답 전체를 response.json으로 UTF-8 저장합니다.
  3. 다음 명령으로 JSON을 검증하고 최종 메모를 만듭니다.
voice-to-notes --config config.example.json render \
  output/파일명-metadata.json response.json

*-notes.txt와 검증된 *-summary.json이 생성된다. LLM이 자유 형식 문서를 만드는 것이 아니라 이 도구의 JSON 계약을 거쳐 동일한 결과 형식으로 렌더링된다.

이 도구는 현재 CLI 중심 제품입니다. 전사·검증·최종 파일 생성까지 하려면 터미널이 필요하며, ChatGPT·Claude의 파일 업로드만으로 같은 로컬 처리 흐름이 완결되지는 않습니다.

상용 API 모드

config.api.example.json에서 공급자와 모델을 선택하고 해당 API 키를 환경변수로 설정한다.

export OPENAI_API_KEY="..."
voice-to-notes --config config.api.example.json run recording.m4a

Anthropic은 ANTHROPIC_API_KEY, Gemini는 GEMINI_API_KEY를 사용한다. 비용은 녹음 길이가 아니라 전사문 입력 토큰과 출력 토큰에 따라 발생한다. 자동 호출 전 max_input_chars 제한을 적용한다.

로컬 LLM 모드

LM Studio의 로컬 서버를 실행하고 모델 하나를 로드한 뒤:

voice-to-notes --config config.local.example.json run recording.m4a

설정에서 모델을 빈 문자열로 두면 /v1/models의 현재 로드 모델을 자동 선택한다.

기존 전사문으로 기능 시험

Whisper를 다시 돌리지 않고 전체 후처리 흐름을 확인할 수 있다.

voice-to-notes --config config.example.json prepare placeholder.m4a \
  --transcript-file transcript.txt

현재 범위

CLI의 파일 단위 처리를 우선 구현했다. 폴더 감시, GUI 설치기, 모바일 공유 어댑터, 화자 분리는 후속 범위다. 개인용 Apple Voice Memos·Hermes·Obsidian 흐름은 이 제품에 포함하지 않는다.

테스트

python3 -m unittest discover -s tests -v

배포 파일을 만들려면 개발 도구를 설치한 뒤 빌드한다.

python3 -m pip install -e '.[dev]'
python3 -m build

라이선스: MIT. 배포 절차는 RELEASING.md 참조.

저장소 문서

About

Whisper 기반 한국어 음성 전사·구조화 회의록 도구

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages