Skip to content

About

A native voice typing application that runs completely on device

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

VoiceTyper

VoiceTyper aspires to be a fast, lightweight, native, fully-local and offline dictation application. As a standalone program, it can be used to input text directly from your voice into other desktop applications such as your web browser, note taking app, or even messaging app that doesn't have a voice input feature.

Note

LLMs are used to generate code for this project, more info at bottom of README.

Dependencies

Sources copied directly into the repo:

whisper.cpp

  • This project would not be feasible without this external external dependency.
  • Anytime we update our snapshot of whisper.cpp we will make a copy of their sourcetree into this repo.
  • Notably, whisper.cpp also depends on ggml
    • ggml version of the whisper and vad models are used

Dear ImGui

  • Our UI lib of choice.
  • Originally used Qt for the ui, but wanted something simpler that we could just embed into the project source.

Getting Started

Precompiled binary releases are available via GitHub Releases.

VoiceTyper is still beta software on Windows, which is the primary platform. Linux builds are even more experimental, and X11 is the display server the app is expected to actually work under (see the note at the end of this section).

To compile the project for yourself on Windows, you will need:

  • C++ compiler toolchain (e.g. Visual Studio 2022 MSVC)
  • cmake >= 3.16 (e.g. 3.31.6)
  • Ninja build tool Optional
  • NVIDIA CUDA toolkit (e.g. v13.2)

Always use the Ninja cmake generator; the Visual Studio 17 2022 generator is many times slower. Ninja needs the MSVC environment, so configure and build from a shell that has run vcvars64.bat:

cmake -S . -B build/cpu -G Ninja
cmake --build build/cpu

For a CUDA build, configure a separate build directory with -DVOICETYPER_BUILD_CUDA_PLUGIN=ON (e.g. build/cuda-plugin).

Linux: experimental, X11 only

Linux is even more experimental than Windows. X11 is the target display server: text is inserted into other applications by synthesizing keystrokes through the X11 XTEST extension. On Wayland, the compositor's security model isolates applications from one another and deliberately prevents one app from injecting input into another, so dictation text cannot be inserted into native Wayland applications.

To download ggml whisper models, get them from huggingface here, or use the in-app Download Models... button (next to the STT model selector) to fetch them automatically. Released builds no longer bundle STT model weights.

CUDA Support

The CUDA build ships kernels for the following NVIDIA GPU architectures:

Architecture sm_xx Consumer GPUs
Turing 75 RTX 20-series, GTX 16-series
Ampere 86 RTX 30-series
Ada Lovelace 89 RTX 40-series
Blackwell 120, 121 RTX 50-series (121 covers laptop GPUs)

All architectures in the table are built as pre-compiled SASS to avoid the JIT cost. Additionally, sm_80 is built as PTX that JIT-compiles on first run on any newer GPU, so the binary is forward-compatible with future architectures.

Driver requirement: CUDA 13.x requires an NVIDIA driver from the R575 branch or newer on Windows. Older drivers will fail at CUDA initialization with cudaErrorInsufficientDriver, regardless of GPU model.

Older GPUs not supported: Maxwell (GTX 900-series), Pascal (GTX 1000-series), and Volta (V100) are not compatible with the CUDA 13.x toolkit and are not included in the build. Users with these GPUs should use the CPU build instead.

To customize the architecture list at build time, pass -DCMAKE_CUDA_ARCHITECTURES=<list> to cmake. See the CMake CUDA_ARCHITECTURES documentation for the format.

LLM Usage Disclaimer:

LLMs are used to write code in this project with human review done at our discretion.

LLM Coding Agent Harnesses Used: OpenCode, Codex, Claude Code

LLMs Used: GLM 5.3, GLM 5.2, Kimi K3, OpenCode Zen Big Pickle, Claude Opus 4.6, Claude Sonnet 4.6, OpenAI GPT-5.5

About

A native voice typing application that runs completely on device

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages