<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="assets/banner-light.svg">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/banner-light.svg" alt="dictée" width="512">
</picture>
</p>
<p align="center">
<b><i>말하는 것이 훨씬 쉽습니다.</i></b>
</p>
<p align="center">
<b>Wayland에서 자유롭게 말하고 즉시 타이핑하세요.</b> (X11 호환) — 25개 이상의 언어, 5개의 번역 백엔드, 화자 분리(speaker diarization), 실시간 시각적 피드백을 갖춘 Linux용 100% 로컬 음성 받아쓰기 기능. 텍스트가 커서 위치에 바로 나타납니다.
</p>
<p align="center">
<a href="https://github.com/rcspam/dictee/releases"><img src="https://img.shields.io/github/v/release/rcspam/dictee?label=release&color=blue&include_prereleases" alt="최신 릴리스"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-green" alt="라이선스 GPL-3.0"></a>
<img src="https://img.shields.io/badge/backend-Rust-orange?logo=rust" alt="Rust">
<img src="https://img.shields.io/badge/frontend-PyQt6%20%2F%20Bash-yellow" alt="PyQt6 / Bash">
<img src="https://img.shields.io/badge/platform-Linux-lightgrey?logo=linux" alt="Linux">
<a href="https://github.com/rcspam/dictee/wiki"><img src="https://img.shields.io/badge/docs-wiki-blue" alt="Wiki"></a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/demo-dictee-1.3.2.gif" alt="dictee — push-to-talk demo: press F8, speak, text appears at the cursor" width="900">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/transcribe-diarize_1.3.png" alt="dictee-transcribe — file transcription with speaker diarization, audio player, and per-tab translation" width="900">
</p>
<p align="center">
<a href="#what-is-dictee">dictee란 무엇인가?</a> •
<a href="#system-requirements">시스템 요구 사항</a> •
<a href="#quick-start">빠른 시작</a> •
<a href="#features">기능</a> •
<a href="#installation">설치</a> •
<a href="#configuration">구성</a> •
<a href="#usage">사용법</a> •
<a href="#post-processing">후처리</a> •
<a href="#known-limitations">제한 사항</a> •
<a href="#roadmap">로드맵</a> •
<a href="https://github.com/rcspam/dictee/wiki">Wiki</a>
</p>
dictee란 무엇인가?
dictee는 Linux용 완전한 음성 받아쓰기 시스템입니다. 단축키를 누르고 말하면 텍스트가 활성화된 애플리케이션(어떤 애플리케이션이든, 어떤 창이든, 어떤 텍스트 필드든)에 직접 입력됩니다.
받아쓰기는 기본적으로 100% 로컬에서 수행됩니다. 클라우드 번역 백엔드를 명시적으로 선택하지 않는 한 오디오는 절대로 장치를 벗어나지 않습니다.
왜 dictee를 사용해야 하는가
-
기본적으로 100% 로컬 처리 — 클라우드 번역 백엔드를 명시적으로 활성화하지 않는 한 오디오는 장치를 벗어나지 않습니다. 고정된 ONNX 모델을 사용하며, 사용자 데이터로 학습되지 않습니다.
-
선택 가능한 4가지 ASR 백엔드 — Parakeet-TDT와 Canary는 네이티브 Rust 바이너리(ONNX Runtime, 낮은 GPU 지연 시간)로 실행되며, faster-whisper (99개 언어) 및 Vosk (경량 CPU)은 Python에서 실행됩니다. 언어, 지연 시간 또는 하드웨어에 따라 Unix 소켓을 통해 투명하게 전환할 수 있습니다. → 4 ASR 백엔드
-
선택 가능한 5가지 번역 백엔드 — 완전히 로컬인 것(Canary, LibreTranslate, Ollama)부터 클라우드 기반인 것(Google, Bing)까지 있으며, 각 옵션에 대한 명시적인 개인 정보 보호표가 제공됩니다. → 번역 백엔드
-
오디오 파일 길이 제한 없음 — v1.3에서 제공된 청크(chunked) 파이프라인(dictee-transcribe)은 8 GB GPU에서 54분짜리 기조연설을 122초 만에 화자 분리(diarizes)하며, 이는 직접 mel 로딩의 최대치가 10~15분인 경우입니다. 회의록 작성이나 장시간 인터뷰에 이상적입니다.
-
네이티브 Linux 통합 — KDE Plasma 6 플라스모이드(plasmoid) + PyQt6 시스템 트레이 (AppIndicator 폴백을 통해 GNOME, XFCE, Sway와 호환 가능).
시스템 요구 사항
| 백엔드 | 최소 RAM | CPU 모드 | GPU | 디스크 |
|---|
| Parakeet-TDT (기본값) | 4 GB | 예 — 발화당 약 0.8초 (최신 CPU 기준) | NVIDIA 4 GB+ VRAM (~5배 빠름) | 3 GB |
| ... | | | | |
테스트된 배포판: Ubuntu 22.04 / 24.04 · Debian 12 · Fedora 40 / 44 · openSUSE Tumbleweed · Arch Linux · KDE Neon.
데스크톱 환경: KDE Plasma 6 (네이티브 플라스모이드 위젯을 통한 전체 통합) · GNOME, Xfce, Cinnamon (시스템 트레이 전용 — GNOME의 경우 AppIndicator 확장 프로그램 필요).
빠른 시작
2분 이내에 제로 상태에서 받아쓰기까지 가는 세 단계:
1. 설치(Install)
curl -fsSL https://raw.githubusercontent.com/rcspam/dictee/master/install.sh | bash
실행 전에 감사(audit)하는 것을 선호하십니까? install.sh와 install.sh.sha256은 릴리스 에셋으로 게시됩니다 — 둘 다 다운로드하고, sha256sum -c install.sh.sha256으로 검증한 후, 스크립트를 읽고 실행하십시오.
2. 설정(Configure)
첫 실행 마법사(wizard)가 백엔드 선택, 모델 다운로드 및 키보드 단축키 바인딩 과정을 안내합니다. 언제든지 dictee --setup으로 재실행할 수 있습니다.
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/wizard_1.3.png" alt="첫 실행 설정 마법사" width="720">
</p>
3. 말하기(Speak)
단축키를 누르고(기본값 F9), 말하고, 놓습니다. 받아쓰기가 커서 위치에 나타납니다.
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/plasmoid-cheat.png" alt="플라스모이드 위젯 녹음" width="720">
</p>
상세 설치 경로(수동 .deb/.rpm, GPU 필수 조건, AUR, 소스 코드로부터)는 아래 Installation을 참조하거나 위키의 Installation 및 GPU-Setup 페이지를 확인하십시오.
기능 (Features)
4 ASR 백엔드 (ASR backends)
| 백엔드 (Backend) | 언어 (Languages) | 모델 크기 (Model size) | 초기 지연 시간 (Warm latency) | 참고 사항 (Notes) |
|---|
| Parakeet-TDT 0.6B v3 | 25 | ~2.5 GB | ~0.8s CPU · ~0.16s GPU | 기본값, 네이티브 구두점 (Default, native punctuation) |
| ... | | | | |
| 각 백엔드는 동일한 유닉스 소켓 프로토콜을 사용하는 systemd 사용자 서비스로 실행되므로, 전환이 투명합니다. → ASR-Backends wiki | | | | |
정확도 벤치마크 (Accuracy benchmarks)
dictee는 기본적으로 Parakeet-TDT 0.6B v3를 사용합니다. Open ASR Leaderboard에서, 이 모델은 Whisper-large-v3보다 훨씬 작고 빠르면서도 다국어 전사(multilingual transcription) 성능 면에서 우수합니다:
| 모델 (Model) | 크기 (Size) | 영어 WER (English WER) | FLEURS 다국어 평균 (FLEURS multilingual (avg)) | 상대 속도 (Relative speed) |
|---|
| Parakeet-TDT 0.6B v3 (dictee 기본값) | 600M | ~6.5 % | 12.0 % | ~10× Whisper-large-v3 |
| ... | | | | |
| Parakeet-TDT v3는 특히 프랑스어(French), 그리스어(Greek), 에스토니아어(Estonian) 및 몰타어(Maltese)에서 우수한 성능을 보입니다. 최대 언어 커버리지(99개 언어)가 필요하면 faster-whisper로, 내장 번역 기능이 필요하면 Canary-1B로 전환하십시오. | | | | |
출처: [NVIDIA Parakeet-TDT v3] · [Open ASR Leaderboard 2025].
5 번역 백엔드 (translation backends)
| 백엔드 | 개인정보 보호 | 속도 | 품질 | 언어 |
|---|
| Canary-1B | 🔒 로컬 | 내장됨 | 우수함 | 4 |
| ... | | | | |
- LibreTranslate는 Docker가 필요하며, dictee가 이를 자동으로 설치해주지는 않습니다.
이를 설치하려면 sudo apt install docker.io (Debian/Ubuntu), sudo dnf install moby-engine (Fedora) 또는 sudo pacman -S docker (Arch)를 사용하십시오. 그런 다음 dictee-setup의 번역 페이지를 다시 엽니다. 다른 모든 백엔드와 dictee 자체는 Docker 없이 작동합니다.
→ Translation wiki · Ollama-Setup
후처리 파이프라인 (Post-processing pipeline)
12단계로 구성 가능한 이 파이프라인은 원시 ASR(Automatic Speech Recognition) 출력이 커서에 도달하기 전에 변환합니다:
- 정규표현식 규칙 + 사전 (Regex rules + dictionary) — 7개 언어, ASR 변형, 음성 명령 → Rules-and-Dictionary
- LLM 교정 (LLM correction) — 선택적 유창성 다듬기(local Ollama를 통한 첫/마지막/하이브리드 위치) → LLM-Correction
- 숫자 및 날짜 (Numbers & dates) — 서수, 기수, 버전, 소수점, 프랑스어 시간 → Numbers-Dates-Continuation
- 연속 버퍼 (Continuation buffer) — 마지막 단어 기억(last-word memory)을 사용하여 받아쓰기를 계속합니다.
- 짧은 텍스트 대문자 유지 (Short-text keepcaps) — 약어 및 이름에 대한 언어별 예외 처리 (v1.3에서 새로 추가됨)
→ Post-Processing-Overview
화자 분리(회의 녹음) (Speaker diarization (Meetings))
NVIDIA의 Sortformer 모델을 통해 다중 화자 녹음에서 "누가 언제 말했는지?"에 답합니다. 최대 4명의 화자를 지원하며, 회의록 작성 및 인터뷰에 이상적입니다. 회의 모드(Meeting mode) 또는 dictee --meeting으로 실행할 수 있습니다. → Diarization wiki
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/diarization-1_1.3.png" alt="Speaker diarization output" width="900">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/diarisation-2_1.3.png" alt="Speaker diarization — speaker labels" width="900">
</p>
오디오 및 비디오 파일 전사(Transcribe)
푸시 투 토크(Push-to-talk)가 dictee의 주요 흐름이지만, 번들로 제공되는 dictee-transcribe 창은 사용자가 이미 가지고 있는 모든 오디오 또는 비디오 파일에 대한 오프라인 전사 기능도 처리합니다. 다중 탭 인터페이스, 타임라인과 동기화된 오디오 플레이어, 탭별 번역 및 LLM 분석, PDF / SRT / JSON / Markdown으로의 내보내기가 가능합니다.
- 모든 입력 형식 (mp3, mp4, wav, opus, flac, mkv…) — ffmpeg을 통해 자동 변환
- 다중 탭(Multi-tab) — 원본 전사 내용을 번역 및 LLM 분석(요약, 챕터, ASR 정리 등)과 나란히 유지할 수 있습니다.
- 내장된 화자 분리(Speaker diarization) 기능 — 토글을 켜면 최대 4명의 화자를 레이블링하고 이름 변경이 가능합니다.
- LLM 분석 — 14개의 제공업체(Ollama, OpenAI, Claude, Gemini, Mistral, DeepSeek, Groq, Cerebras, OpenRouter…)를 나란히 구성할 수 있습니다.
- 탭별 번역 — Canary / LibreTranslate / Ollama / Google / Bing
→ LLM-Diarization 위키
3가지 시각적 인터페이스
- KDE Plasma 6 위젯 — 네이티브 QML 플라스모이드, 5가지 애니메이션 스타일, 실시간 상태 → Plasmoid-Widget
- 시스템 트레이 아이콘 — PyQt6 기반이며 GNOME/XFCE/Sway에서 작동합니다 (AppIndicator 폴백). → Tray-Icon
- animation-speech (외부) —
wlr-layer-shell 컴포지터에 대한 전체 화면 오버레이
이 세 가지 인터페이스는 파일 시스템 감시자(filesystem watcher)를 통해 상태를 공유합니다. 따라서 모든 변경 사항은 인터페이스 전반에 걸쳐 즉시 반영됩니다 (UID 접미사가 붙어 다중 사용자 환경에서도 안전함).
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/plasmoid-cheat.png" alt="KDE Plasma plasmoid" width="720">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/screenshots-vm/tray_1.3.png" alt="System tray menu" width="360">
</p>
animation-speech (전체 화면 오버레이)
animation-speech는 녹음 중 전체 화면 시각 애니메이션을 제공하는 독립형 프로젝트입니다. Escape 키를 통해 취소할 수 있습니다. Wayland compositor 중 wlr-layer-shell을 지원하는 모든 환경(KDE Plasma, Sway, Hyprland 등)에서 작동합니다.
<p align="center">
<a href="https://youtu.be/-fWZZEO7mCA">
<img src="https://raw.githubusercontent.com/rcspam/dictee/HEAD/assets/demo.gif" alt="animation-speech demo — click to watch on YouTube" width="640">
</a>
</p>
sudo dpkg -i animation-speech_1.2.0_all.deb
다운로드: animation-speech 릴리스
참고: animation-speech는 GNOME과 호환되지 않습니다 (wlr-layer-shell 지원 없음). GNOME 사용자는 시각적 피드백을 위해 dictee-tray를 사용할 수 있습니다. GNOME Shell 확장 기능에 대한 기여는 환영합니다 — 참조 아키텍처는 plasmoid 소스를 참고하십시오.
설치 (Installation)
원라인 스크립트 (권장)
배포판(distro)과 GPU를 자동 감지하고, 필요한 경우 NVIDIA CUDA 저장소를 추가한 후 적절한 패키지를 설치합니다:
curl -fsSL https://raw.githubusercontent.com/rcspam/dictee/master/install.sh | bash