-
Handy는 완전 오프라인으로 작동하는 무료 오픈소스 음성-텍스트 변환 데스크톱 앱으로, 개인 정보 보호 중심의 설계를 갖춤
-
Tauri(Rust + React/TypeScript) 기반으로 제작되어, 단축키를 눌러 말하면 음성이 바로 텍스트 필드에 입력되는 구조
-
Whisper와 Parakeet V3 모델을 지원하며, GPU 가속 또는 CPU 기반으로 로컬에서 음성 인식을 수행
- Windows, macOS, Linux에서 모두 작동하며, 확장성과 포크 용이성을 중시한 구조로 개발자 기여를 장려
- 클라우드 전송 없이 로컬에서 처리되는 프라이버시 중심 음성 입력 도구로, 접근성과 커스터마이징 가능성이 높음
개요
- Handy는 무료·오픈소스·확장 가능한 음성 인식 애플리케이션으로, 인터넷 연결 없이 완전 오프라인으로 작동
-
Tauri 프레임워크를 기반으로 하며, Rust 백엔드와 React/TypeScript 프론트엔드를 결합
- 사용자는 단축키를 눌러 말하고, 손을 떼면 Whisper 또는 Parakeet V3 모델이 음성을 텍스트로 변환해 현재 앱에 붙여넣음
- 모든 음성 데이터는 로컬에서 처리되어 개인 정보 유출 위험이 없음
Handy의 철학
-
무료: 접근성 도구는 누구나 사용할 수 있어야 함
-
오픈소스: 누구나 기능을 확장하고 개선 가능
-
프라이버시 보장: 음성 데이터가 클라우드로 전송되지 않음
-
단순성: 한 가지 목적, 즉 음성을 텍스트로 변환하는 기능에 집중
- 목표는 “가장 완벽한” 앱이 아니라, “가장 포크하기 쉬운” 앱을 만드는 것임
작동 방식
- 사용자는 단축키로 녹음을 시작·중지하거나 푸시-투-토크 모드를 사용할 수 있음
-
Silero VAD로 무음 구간을 필터링하고, Whisper 또는 Parakeet V3 모델로 음성을 변환
- Whisper 모델: Small, Medium, Turbo, Large 버전 제공, GPU 가속 지원
- Parakeet V3: CPU 최적화, 자동 언어 감지 기능 포함
- 변환된 텍스트는 사용 중인 애플리케이션의 입력창에 자동 삽입
-
Windows, macOS, Linux 모두 지원
아키텍처
-
프론트엔드: React + TypeScript + Tailwind CSS
-
백엔드: Rust 기반, 오디오 처리 및 머신러닝 추론 담당
-
핵심 라이브러리
-
whisper-rs: Whisper 모델 로컬 음성 인식
-
transcription-rs: Parakeet 모델 CPU 인식
-
cpal: 오디오 입출력
-
vad-rs: 음성 활동 감지
-
rdev: 전역 단축키 및 시스템 이벤트 처리
-
rubato: 오디오 리샘플링
-
디버그 모드: Cmd+Shift+D(macOS) 또는 Ctrl+Shift+D(Windows/Linux)로 접근 가능
알려진 문제 및 제한 사항
-
Whisper 모델 충돌: 일부 Windows/Linux 환경에서 모델이 충돌하는 문제 존재
-
Wayland 지원 제한: Linux Wayland 환경에서는 wtype 또는 dotool 설치 필요
-
텍스트 입력 도구
- X11: xdotool
- Wayland: wtype 또는 dotool
- 도구 미설치 시 enigo로 대체되나 호환성 제한 있음
-
Linux 오버레이 비활성화 기본 설정: 포커스 충돌 방지를 위해 기본적으로 꺼져 있음
시스템 요구사항
-
Whisper 모델용
- macOS: M 시리즈 또는 Intel Mac
- Windows/Linux: Intel, AMD, NVIDIA GPU (Ubuntu 22.04/24.04 권장)
-
Parakeet V3 모델용
- CPU 전용, Intel Skylake(6세대) 이상 권장
- 중간급 하드웨어에서 실시간 대비 약 5배 속도
- 자동 언어 감지 기능 포함
개발 로드맵
-
진행 중 기능
- 디버그 로그 파일 추가
- macOS 단축키 개선 (Globe 키 지원, 전역 단축키 처리 재작성)
-
선택적 분석 기능: 익명 사용 데이터 수집, 명시적 동의 기반
- 설정 시스템 리팩터링 및 추상화 개선
-
Tauri 명령 구조 정리 및 타입 안정성 향상
문제 해결 및 수동 모델 설치
- 네트워크 제한 환경에서는 모델을 수동 다운로드 및 설치 가능
- 앱 데이터 디렉터리 내 models 폴더 생성 후 모델 파일 배치
- Whisper 모델: .bin 파일 직접 복사
- Parakeet 모델: .tar.gz 압축 해제 후 지정 폴더명 유지
- 설치 후 앱 재시작 시 모델 자동 인식
기여 방법
- GitHub 이슈 확인 후 포크 및 브랜치 생성
- 대상 플랫폼에서 충분히 테스트 후 Pull Request 제출
- 이메일(contact@handy.computer) 또는 Discord를 통한 커뮤니티 참여 가능
- 목표는 단순하고 잘 구조화된 코드베이스를 통해 커뮤니티가 발전시킬 수 있는 기반 제공
관련 프로젝트 및 라이선스
-
Handy CLI: Python 기반 커맨드라인 버전
-
handy.computer: 공식 웹사이트 및 데모 제공
-
MIT 라이선스로 배포
-
Whisper(OpenAI) , Silero, Tauri 등 오픈소스 프로젝트에 기반
인용 문구
- “Handy는 완벽하기 때문이 아니라, 당신이 완벽하게 만들 수 있기 때문에 음성 인식 도구 탐색을 끝낼 수 있다.”