2P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • Handy완전 오프라인으로 작동하는 무료 오픈소스 음성-텍스트 변환 데스크톱 앱으로, 개인 정보 보호 중심의 설계를 갖춤
  • Tauri(Rust + React/TypeScript) 기반으로 제작되어, 단축키를 눌러 말하면 음성이 바로 텍스트 필드에 입력되는 구조
  • WhisperParakeet 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는 완벽하기 때문이 아니라, 당신이 완벽하게 만들 수 있기 때문에 음성 인식 도구 탐색을 끝낼 수 있다.”
Hacker News 의견들
  • 여러 STT 앱을 써봤지만 결국 VoiceInk(로컬, 일회 결제)에 정착했음
    Parakeet V3와 함께 쓰면 거의 즉시 반응하고 정확도도 충분함
    나는 CLI 에이전트에게 말을 걸고 “내 말을 어떻게 이해했는지 말해줘”라고 요청하는 루틴을 자주 씀
    이렇게 하면 이해 확인도 되고 일종의 명세서 역할도 함
    최근에는 Handy + Parakeet v3 조합도 써봤는데 아주 잘 작동해서 며칠간 이걸로 써볼 예정임
    Cmd‑Shift‑D로 “debug” UI를 켜면 후처리(post‑processing)나 공백 추가 같은 추가 옵션도 볼 수 있음
    • 이런 모델 중 하나가 프로그래밍에 특화되어 있으면 좋겠음
      “cd ~/projects”나 “git push --force” 같은 명령을 말로 하고 싶음
  • 나는 근긴장이상증(dystonia) 이 있어서 팔이 굳을 때 키보드를 칠 수 없음
    그래서 SuperWhisper 같은 TTS 앱이 큰 도움이 되었음
    Handy도 비슷한 경험을 주길 기대함
    다만 다음 단계로 발전하려면 단순히 음성을 텍스트로 옮기는 걸 넘어서 맥락 기반 확장이 필요하다고 생각함
    예를 들어 IDE 안에서 코드를 말하면 실제 코드가 생성되는 식으로 말임
    결국 TTS와 컴퓨터 사용을 결합하는 방향임
    • 나는 ultraplan이라는 CLI 툴을 만들었음
      로컬 Whisper로 음성을 기록하고 스크린샷, 클립보드 내용 등을 타임라인 형태로 저장
      이후 Claude Code 같은 에이전트가 이 타임라인을 읽고 작업을 이어감
      “marco”라고 말하면 스크린샷을 찍는 등 핸즈프리 제어도 가능함
      원하면 깃허브에 정리해서 올릴 수 있음
    • 네 말에 공감함. 그래서 Handy를 오픈소스로 공개했음
      작은 로컬 모델(moondream, qwen 등)을 이용해 컴퓨터 맥락을 파악하려는 실험도 있음
      예전에 손가락이 부러졌을 때 단축키를 Handy에 매핑해서 간단한 맥락 제어를 구현해봤음
    • “음성으로 코딩하기”는 LLM 이전부터 연구가 많았음
      예를 들어 Using Voice to Code Faster than Keyboard 같은 2013년 사례가 있음
      최근 연구로는 이 논문도 있음
    • 말한 기능은 이미 가능함
      STT 출력을 LLM에 입력하면 의도를 파악해 명령 세트를 생성할 수 있음
      CLI에서는 음성 명령을 바로 쉘 명령으로 바꾸는 게 쉬움
      GUI에서는 화면 상태를 알아야 해서 조금 복잡함
      macOS의 MacWhisper는 받아쓴 텍스트를 OpenAI 호환 엔드포인트로 보낼 수 있음
  • 여러 음성 전사 앱을 써본 간단한 후기임
    Superwhisper는 유료지만 평생 구독 옵션이 있고 기능이 많음. 단일 개발자가 유지 중이라 가끔 버그가 있음
    Hex는 가장 가볍고 깔끔한 무료 옵션임
    Fluid Voice는 말하는 동안 실시간으로 텍스트를 보여주는 독특한 기능이 있음
    Handy는 핑크색 UI가 귀엽고 히스토리 창이 마음에 듦. 클립보드 복원 설정이 약간 특이함
    여러 앱을 번갈아 설치하니 충돌이 좀 있었음
    Nvidia가 Parakeet을 오픈소스로 공개한 덕분에 모두 속도가 매우 빠름
    나는 실시간 전사 스트리밍 기능을 선호함. 낮은 품질이라도 즉시 보고, 나중에 고품질 버전으로 교체되는 방식이 좋음
  • 몇 주간 STT 앱을 찾다가 Handy를 발견했음
    대부분 유료거나 구독형이라 직접 만들까 고민했는데, Handy는 빠르고 단순하며 방해되지 않음
    게다가 꾸준히 업데이트되어 정말 만족스러움
    후처리(post‑processing) 기능도 멋질 것 같음
  • Wispr Flow를 쓰고 있는데, 전환하려면 자주 틀리는 단어(회사명, 사람 이름, 라이브러리명 등)를 위한 사용자 사전 기능이 필요함
    • “Custom Words”라는 기능이 있어서 그걸 말하는 것 같음. 아직 제대로 테스트는 못 해봄
    • 관련 PR이 곧 병합될 예정이라 미리 빌드해서 써볼 수도 있음
    • 일부 모델은 단어별 확신도(confidence) 를 표시함
      수동으로 단어를 추가하는 것도 좋지만, 불확실한 단어를 표시해주면 보완하기 쉬울 것 같음
  • 주의할 점이 있음
    기본 단축키가 Ctrl+Space인데, 키를 떼는 순간 전사가 삽입됨
    이때 Ctrl이 여전히 눌려 있으면 전사된 텍스트가 Ctrl 문자로 처리
    테스트 환경은 Linux x64, X11, Emacs였음
  • Parakeet v3와 함께 Handy를 쓰는데 정말 훌륭함
    Monologue, Superwhisper, Aqua도 써봤지만 Handy는 로컬 실행되고 구독료도 없음
    강력히 추천함
  • OpenWhispr와 비교해본 사람이 있는지 궁금함
    설명상 비슷해 보임. Handy는 2025년 6월 첫 릴리스, OpenWhispr는 한 달 뒤 출시
    Handy는 GitHub 별 11k, OpenWhispr는 730개 정도임
    • 둘 다 써봤는데 Handy는 macOS 앱으로 바로 설치할 수 있어서 훨씬 간단했음
      당시 OpenWhispr에는 Parakeet 모델이 없었고 UI도 매끄럽지 않았음
      Handy는 미니멀한 UI 덕분에 사용이 직관적임
      고급 기능은 부족하지만 두 달째 쓰는 중이고 다른 STT 앱을 찾을 생각이 없음
  • MacBook M1 Air에서 Handy가 매우 빠르고 macOS 기본 STT보다 정확함
    설정도 적당히 단순해서 쓰기 편함
    “discharging the model” 옵션이 뭔지 궁금했는데, RAM이나 CPU에는 영향이 없는 듯함
    • 모델을 RAM에 상주시켜 빠르게 접근하도록 하는 기능임
      방전(discharge)하면 메모리에서 내려가서 시작 속도가 느려짐
  • Parakeet V3 모델이 정말 훌륭함