Ghost Pepper – macOS용 로컬 음성-텍스트 변환 앱
(github.com/matthartman)- macOS에서 Control 키를 누르고 말하면 자동으로 텍스트로 변환 후 붙여넣기하는 로컬 음성 인식 앱
- 모든 음성 인식과 텍스트 정리 과정이 로컬에서만 수행되어, 클라우드 전송 없이 개인정보 보호 보장
- WhisperKit과 LLM.swift 기반으로, Hugging Face 모델을 자동 다운로드해 캐시 저장
- 스마트 정리 기능으로 불필요한 말 제거 및 자기 수정 표현 보정, 메뉴 막대 앱 형태로 백그라운드 실행
- MIT 라이선스 오픈소스로 공개되어 있으며, Apple Silicon macOS 14 이상에서 동작
개요
- Ghost Pepper는 macOS용 완전 로컬 음성-텍스트 변환 앱으로, Control 키를 누르고 말한 뒤 놓으면 자동으로 텍스트로 변환 후 붙여넣기 기능 제공
- 클라우드 API를 사용하지 않으며, 모든 데이터와 모델이 로컬에서만 처리됨
- Apple Silicon(M1 이상) 기반 macOS 14.0 이상에서 동작
- 메뉴 막대 앱 형태로 실행되며, 로그인 시 자동 실행 가능
- MIT 라이선스로 공개된 오픈소스 프로젝트
주요 기능
- Control 키를 누르고 말하기 → 키를 놓으면 자동으로 텍스트 변환 및 붙여넣기
- 로컬 실행 구조로, 음성 인식과 후처리 모델이 모두 Mac 내부에서 동작
- 스마트 정리 기능으로 불필요한 말(uh, um 등)을 제거하고 자기 수정 표현을 자동 보정
- 메뉴 막대 전용 인터페이스로 Dock 아이콘 없이 백그라운드에서 작동
- 사용자 설정 지원: 정리 프롬프트 수정, 마이크 선택, 기능 on/off 전환 가능
작동 방식
- 모든 모델은 오픈소스 기반이며, 최초 실행 시 자동 다운로드 후 로컬 캐시 저장
- 음성 인식은 WhisperKit, 텍스트 정리는 LLM.swift를 통해 수행
- 모델 파일은 Hugging Face에서 제공
-
음성 인식 모델
- Whisper tiny.en (~75MB): 가장 빠른 영어 전용 모델
- Whisper small.en (~466MB): 기본값, 높은 정확도의 영어 전용 모델
- Whisper small (multilingual): 다국어 지원
- Parakeet v3 (~1.4GB): 25개 언어 지원, FluidAudio 기반
-
텍스트 정리 모델
- Qwen 3.5 0.8B (~535MB): 기본값, 약 1~2초 내 처리
- Qwen 3.5 2B (~1.3GB): 빠른 처리 속도(약 4~5초)
- Qwen 3.5 4B (~2.8GB): 최고 품질(약 5~7초)
설치 및 실행
-
앱 설치
- GhostPepper.dmg 다운로드
- DMG 열기 후 Applications 폴더로 드래그
- 마이크 및 손쉬운 사용 권한 허용
- Control 키를 누르고 말하기로 사용 시작
-
소스 빌드
- 저장소 클론
-
GhostPepper.xcodeproj를 Xcode에서 열기 - Cmd+R로 빌드 및 실행
권한 요구
| 권한 | 목적 |
|---|---|
| Microphone | 음성 녹음 |
| Accessibility | 전역 단축키 및 자동 붙여넣기 수행 |
추가 정보
- 로그인 시 자동 실행이 기본 활성화되어 있으며, 설정에서 비활성화 가능
- 디스크에 로그 저장 없음 — 변환된 텍스트는 파일로 기록되지 않으며, 디버그 로그는 메모리 내에서만 유지 후 앱 종료 시 삭제
기술 구성 및 의존성
- WhisperKit: 음성 인식 엔진
- LLM.swift: 텍스트 정리용 로컬 LLM
- Hugging Face: 모델 호스팅
- Sparkle: macOS 앱 업데이트 관리
이름의 의미
- 모든 모델이 로컬에서만 실행되어 개인 데이터가 외부로 전송되지 않음
- Ghost Pepper(매운 고추) 라는 이름은 무료로 제공되는 강력한 기능을 상징
기업 및 관리형 기기 지원
- 앱은 손쉬운 사용(Accessibility) 권한이 필요하며, 일반적으로 관리자 권한이 요구됨
-
MDM 환경(Jamf, Kandji, Mosaic 등) 에서는 PPPC(Privacy Preferences Policy Control) 프로파일을 통해 사전 승인 가능
-
Bundle ID:
com.github.matthartman.ghostpepper -
Team ID:
BBVMGXR9AY -
Permission: Accessibility (
com.apple.security.accessibility)
-
Bundle ID:
Hacker News 의견들
-
이 앱 정말 멋짐. 하지만 볼 때마다 내 Pixel 6가 떠오름
2021년 모델인데, 오프라인에서도 음성을 텍스트로 변환하고 문맥에 따라 자동으로 수정함. 심지어 내가 계속 말하면 앞부분 문장까지 다시 고쳐줌.
Google이 Whisper나 Qwen보다 5년이나 앞서 이런 기술을 넣은 게 놀라움. 그런데 왜 지금은 더 강력한 플랫폼에서 1GB짜리 트랜스포머 모델이 필요한지 궁금함- 이건 WebSpeech API에서 쓰이는 동일한 모델임. 완전히 오프라인에서도 작동함
Google이 약 10년 전 이 모델 훈련을 지원했고, 지금도 꽤 훌륭함.
Webkit이나 Blink 기반 브라우저에 내장되어 있어서 여러 웹사이트가 단순 프론트엔드로 활용 중임.
하지만 모델 자체는 비공개 blob 형태라 Firefox에서는 지원되지 않음
MDN 문서 / Chrome 데모 - Microsoft OneNote도 2007년쯤 비슷한 기능이 있었음.
당시 팀에 있었는데, 유지보수 인력이 없어서 오프라인 모델을 버리고 온라인 전용으로 전환했음.
기술적 이유보다는 단순히 유지보수 인력 부족 때문이었음 - 정확도는 훨씬 낮음.
Android에서는 Futo, macOS에서는 MacWhisper를 쓰고 있음. 기본 Apple 모델보다 훨씬 나음 - macOS와 iOS도 내장된 받아쓰기 기능으로 가능함. Mac에서는 Globe 키 + D
- 내 Pixel 7은 오히려 인식률이 너무 낮아서 거의 못 씀.
대신 오픈소스 Whisper나 Parakeet 같은 로컬 STT 모델은 훨씬 강력함.
배경 소음이나 중얼거림에도 덜 흔들림.
나는 Voice AI 쪽에서 일하고 있어서 매일 이런 모델들을 쓰는데, 체감 차이가 정말 큼
- 이건 WebSpeech API에서 쓰이는 동일한 모델임. 완전히 오프라인에서도 작동함
-
앱 정말 잘 만들었음. 피드백을 주자면,
첫째, 자동으로 클립보드에 붙여넣기 기능이 꼭 필요함. 단축키를 누르지 않아도 되게 하거나 설정 가능하게 하면 좋겠음
둘째, 속도가 다른 솔루션보다 약간 느림. 이건 사용성에 큰 영향을 줌
셋째, 포맷 제어 기능이 있으면 좋겠음. 예를 들어 “new line”을 말했을 때 실제 줄바꿈으로 인식되면 좋겠음 -
이 스레드는 각자 macOS용 음성→텍스트 앱을 만든 사람들이 모인 지원 그룹 같음
- 내가 만든 모든 앱을 여기에 정리해둠.
최근 Ghost Pepper도 추가했고, 필요한 기능을 담은 skill.md를 만들어 직접 앱을 빌드할 수도 있음 - /r/macapps 서브레딧에서도 whisper dictation 앱이 너무 많음.
포화된 카테고리에서는 기존 앱과의 차별점을 명확히 설명해야 함
관련 글 - 나도 직접 하나 만들었는데, 나중에 KeyVox를 보고 제작자와 얘기하게 됨.
KeyVox GitHub - 나는 nixOS에서 Noctalia에 인디케이터를 붙여서 구현했음.
성능이 Wispr Flow와 거의 비슷하고, 완전히 로컬에서 돌아감 - 전형적인 Apple 스타일로, macOS 27이나 28쯤 되면 기본 기능으로 들어갈 거라 기대 중임
- 내가 만든 모든 앱을 여기에 정리해둠.
-
Linux 사용자로서 Hyprwhspr를 개발했음
최신 Cohere Transcribe 모델을 GPU로 돌리면 성능이 매우 좋음.
WhisperKit을 faster-whisper나 turbov3와 비교해봤는지 궁금함.
Apple이 곧 네이티브 STT를 내놓을 것 같아 기대 중임-
Handy와 비교하면 어떤지 궁금함.
왜 기존 프로젝트를 개선하지 않고 새로 만들었는지도 알고 싶음 - 나는 Whisper large-v3를 M2 Max에서 셀프호스팅으로 돌림.
정확도가 충분해서 클린업 모델은 필요 없었음.
다만 30초 이상 긴 오디오에서는 지연 시간이 느껴짐. WhisperKit이 긴 오디오를 어떻게 처리하는지 궁금함 - Omarchy에서 Hyprwhspr를 매일 쓰고 있음. 정말 훌륭함
- 나도 비슷한 걸 만들려던 참이었는데 덕분에 안 만들어도 됨.
혹시 풋 페달 PTT(Push-To-Talk) 기능 고려해본 적 있는지?
Apple에도 이미 STT가 있지만 모델 품질이 아직 아쉬움
-
Handy와 비교하면 어떤지 궁금함.
-
Speech-to-text는 내 개발 흐름의 핵심임.
LLM이나 코딩 에이전트에게 프롬프트를 말로 전달할 때 특히 유용함.
플랫폼별로 최고의 오픈소스 음성 입력 도구를 이 GitHub 저장소에 정리했음- 개발에서 받아쓰기를 어떻게 쓰는지 궁금함.
나는 분당 120단어를 타이핑하니까 말보다 훨씬 빠름.
접근성 외에, 이건 느린 타이퍼를 위한 건지 아니면 소파에 누워 코딩하려는 용도인지 진심으로 궁금함
- 개발에서 받아쓰기를 어떻게 쓰는지 궁금함.
-
Handy 같은 앱이 이미 존재하지 않음?
- 몇 가지 아쉬운 점이 있음.
- Linux에서는 FTP 계정과 curlftpfs, SVN/CVS로 비슷한 시스템을 쉽게 만들 수 있음
- USB 드라이브를 완전히 대체하지는 못함. 오프라인 발표용으로 여전히 USB를 들고 다님
- 수익 모델이 불분명함. 무료로 제공하면서 수익 창출이 가능할지 의문임
- Handy는 정말 잘 만든 툴임
- 같은 문제를 해결하는 여러 솔루션이 존재할 수 있음
- 네, speech-to-text는 이미 존재함
- 내 사용 사례에는 딱 맞음. 다른 앱 UI를 건드릴 필요가 없음
- 몇 가지 아쉬운 점이 있음.
-
공유 고마움. 로컬 속도와 프라이버시에 집중한 점이 마음에 듦
나는 비슷한 목표를 가진 Hex를 쓰고 있는데, 두 앱의 차이에 대한 생각이 궁금함 -
요즘 로컬 퍼스트 LLM이 작아질수록 앱 개발의 핵심 인프라가 될 것 같음
예전 Electron이 예쁜 앱을 쉽게 만들게 해준 것처럼, 이제는 약간의 RAM만 희생하면 됨- 맞음, 결국 모든 게 ClaudeVM처럼 될 것 같음
관련 블로그
- 맞음, 결국 모든 게 ClaudeVM처럼 될 것 같음
-
Whisper 관련 프로젝트가 많은데, 이게 예전 OpenAI 모델인지 아니면 업데이트된 버전인지 궁금함
나는 Parakeet v3를 쓰는데 작고 훌륭함. 그런데 왜 아직도 Whisper가 이렇게 많은지 의문임- Whisper는 여전히 안정적이고 신뢰성 높은 모델임.
새로운 모델보다 환각이 적고, AMD GPU에서도 쉽게 돌릴 수 있음.
Parakeet을 직접 포팅해봤지만 결국 Whisper로 돌아왔음 - 나도 Parakeet으로 바꿀까 고민 중임.
하지만 나는 폴란드어와 전문 용어를 많이 써서 Whisper v3가 더 잘 맞음 - Whisper는 다양한 언어를 지원하고, tiny부터 turbo까지 여러 버전이 있음.
그래서 시스템 환경에 맞게 조정 가능한 게 강점임 - 나도 macOS에서 Parakeet을 Voice Ink로 쓰고, 집에서는 Kokoro로 음성→텍스트를 돌림.
GrapheneOS 폰에서도 Parakeet 서버를 연동함
관련 글
- Whisper는 여전히 안정적이고 신뢰성 높은 모델임.
-
프로젝트가 정말 마음에 들고 내 워크플로우에 통합해보고 싶음.
다만 “$80M 투자받은 대형 AI랩과 비교하며 무료로 제공한다”는 문구는 조금 거슬림.
이건 반항적이라기보다 이미 기존 연구의 연장선에 있는 작업임.
“spicy”하다고 표현하기엔 다소 과장된 느낌임