vvrite - On-device AI Transcription macOS App
음성을 전사해서 텍스트 필드에 바로 붙여넣는 macOS 메뉴 바 앱. 모든 것이 온디바이스에서 실행.
핵심 컨셉
- 온디바이스 — 모든 것이 로컬에서 실행, 오디오가 Mac을 떠나지 않음
- 글로벌 핫키 — 어느 앱에서든 트리거
- 자동 붙여넣기 — 전사된 텍스트가 활성 필드에 바로 입력
사용법
1. 핫키 누름 (기본: Option + Space)
2. 말하기 — 화면에 녹음 오버레이 표시
3. 핫키 다시 누름 → 녹음 종료
4. 로컬에서 전사 → 활성 텍스트 필드에 붙여넣기
주요 기능
| 기능 | 설명 |
|---|
| On-device transcription | Qwen3-ASR + mlx-audio, 클라우드 API 불필요 |
| Global hotkey | 어느 앱에서든 트리거, 설정에서 변경 가능 |
| Menu bar app | 상태 바에 조용히 상주 |
| Recording overlay | 오디오 레벨 바 + 타이머 시각적 피드백 |
| ESC to cancel | 녹음 중 Escape로 전사 없이 취소 |
| Auto-paste | 전사된 텍스트가 활성 필드에 자동 입력 |
| Guided onboarding | 첫 실행 시 권한 + 모델 다운로드 안내 |
단축키
| 동작 | 단축키 |
|---|
| 녹음 시작/중지 | Option + Space (설정 가능) |
| 녹음 취소 | Escape |
| 설정 열기 | 메뉴 바 아이콘 클릭 → Settings |
요구사항
| 항목 | 요구사항 |
|---|
| OS | macOS 13+ on Apple Silicon (M1/M2/M3/M4) |
| 디스크 | ~2 GB (ASR 모델용) |
| 권한 | 마이크, 접근성 (글로벌 핫키용) |
| 소스 실행 시 | ffmpeg |
기술 스택
| 컴포넌트 | 기술 |
|---|
| UI | PyObjC (AppKit, Quartz) |
| ASR Model | Qwen3-ASR-1.7B-8bit |
| Inference | mlx-audio on Apple Silicon GPU |
| Audio | sounddevice + ffmpeg |
| Packaging | PyInstaller |
설치
소스에서 실행
# 클론
git clone https://github.com/shaircast/vvrite.git
cd vvrite
# 의존성 설치
pip install -r requirements.txt
brew install ffmpeg
# 실행
python -m vvrite
DMG 빌드
pip install -r requirements.txt
./scripts/build.sh
open dist/vvrite.dmg
./scripts/build.sh는 PyInstaller 빌드, 코드 사이닝, 공증, 스테이플링, DMG 생성 수행. Apple Developer 서명 ID와 notarytool 프로필 필요.
첫 실행 온보딩
- 마이크 + 접근성 권한 허용
- 선호 핫키 설정
- ASR 모델 다운로드 (~1.7 GB)
라이선스
- MIT
- ffmpeg: GPL v3
- Qwen3-ASR-1.7B-8bit: Apache 2.0
Sources