hyprwhspr

goodrootMIT活跃维护

Linux 上的原生语音转文字工具,提供系统级听写,速度快、准确率高且数据本地处理,适合注重隐私的用户。

Native speech-to-text for Linux - Fast, accurate, private, and hackable system-wide dictation

v1.52.1发布于 2026-11-05 15:04 UTC1,276star +1 / 7 天114fork同步于 2026-11-10 11:49 UTC

怎么上手

由 README 提炼,执行前请确认
yay -S hyprwhspr
hyprwhspr setup
硬件要求按 README 说明

README 未给出具体显存数值;NVIDIA GPU 可选用于 CUDA 加速,AMD/Intel GPU 或 APU 可选用于 Vulkan 加速,无 GPU 时可用 onnx-asr 在 CPU 上运行。

需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Linux 原生系统级语音听写工具,离线转写、自动粘贴到任意输入框

Linux 上的原生语音转文字工具,提供系统级听写,速度快、准确率高且数据本地处理,适合注重隐私的用户。

核心能力

  • 支持 Cohere、Parakeet、Whisper、Qwen3-ASR 等多种转写后端
  • 模型常驻内存,默认配置下转写近乎即时
  • 完全离线转写,云端 API 为可选
  • 可限制或关闭 GPU 显存占用,无 GPU 时用 onnx-asr 走 CPU
  • 按快捷键开始/停止录音,文本自动粘贴到当前输入框

容易踩的坑

需要 Python 3.11-3.14,且需 systemd 与 Wayland 或 X11 会话;Wayland 需装 wl-clipboard 和 wtype,X11 需 xclip、xdotool、xprop;安装后要重新登录以生效组权限,模型需在 setup 中单独下载。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.52.1
  1. v1.52.1最新正式版2026-11-05 · 2026-11-05 15:04 UTC
    • COSMIC paste compatibility: Fixed modifier handling when pasting through wtype, so shortcuts such as Ctrl+V and Ctrl+Shift+V work correctly.

    • Word overrides: Replacement text containing backslashes is now preserved literally, preventing corrupted output or transcription-processing errors.

    Full Changelog: https://github.com/goodroot/hyprwhspr/compare/v1.52.0...v1.52.1

  2. v1.52.02026-11-02 · 2026-11-02 17:47 UTC
    查看更新说明

    Thank you to all the contributors who keep the flow of excellent new features alive. :pray:

    System tray controls

    An optional tray icon shows recording, transcription, model and error states. Click it to start or stop recording, load or unload the model, or restart and stop the service.

    Long-form sessions get Pause, Resume, Submit, Retry and Cancel actions. Stop stays available when a new recording starts while the previous one transcribes.

    • Off by default. Setup offers it when you skip the bar integrations.
    • Works with KDE Plasma, XFCE, Waybar's tray and Quickshell shells. GNOME needs the AppIndicator extension.
    • Restart and Stop service actions appear only when running under hyprwhspr.service.

    To enable it, add this to your config and restart the service:

    {
      "tray_icon_enabled": true
    }
    

    No need to change anything if you use Noctalia or Waybar plugins already.

    Thanks to @ChickenSplash for #292.

    Deepgram Nova-3 realtime dictation

    Deepgram is now available under Realtime WS in hyprwhspr setup, with live transcript previews.

    {
      "transcription_backend": "realtime-ws",
      "websocket_provider": "deepgram",
      "websocket_model": "nova-3"
    }
    
    • Supports toggle, push-to-talk and auto recording modes.
    • Leave language unset for multilingual detection, or set an explicit language.
    • Each recording gets a fresh stream. Stopping flushes the remaining transcript before closing.
    • Optional Deepgram settings, including repeated keyterm parameters, can be supplied through websocket_url.

    Setup and diagnostics now flag incompatible continuous or long-form modes for Deepgram and Phonon.

    Thanks to @TagCopperLight for #294.

    ElevenLabs Scribe v2 over REST

    Scribe v2 is now available under REST API in setup. It shares the stored ElevenLabs key with Scribe v2 Realtime, and language selection works through the usual primary and secondary shortcuts.

    It is very fast and accurate!

    REST body fields now accept flat arrays, sent as repeated form fields. For example, add vocabulary hints to Scribe v2:

    {
      "rest_body": {
        "model_id": "scribe_v2",
        "keyterms": ["hyprwhspr", "Hyprland", "Claude Code"]
      }
    }
    

    Provider-specific authentication headers are handled automatically. Explicit authentication headers in rest_headers take precedence over the stored key.

    Thanks to @avienor for #297.

    Maintenance

    • The bundled GNOME waveform extension now reads recording and audio-level files only from the runtime directory, completing the compatibility cleanup from v1.51.0.
    • Corrected REST documentation and schema descriptions: uploads are always 16-bit WAV. rest_audio_format is unused.

    • Upgrading: No configuration changes are required from v1.51.0. The tray icon remains off until enabled.

    PRs

    New Contributors

    Full Changelog: https://github.com/goodroot/hyprwhspr/compare/v1.51.0...v1.52.0

  3. v1.51.02026-10-30 · 2026-10-30 21:00 UTC
    查看更新说明

    Language hints for multilingual realtime dictation

    If you dictate in more than one language with OpenAI's GPT Transcribe or GPT Live Transcribe, you can now tell the model which languages to expect:

    {
      "transcription_backend": "realtime-ws",
      "websocket_provider": "openai",
      "websocket_model": "gpt-live-transcribe",
      "language": null,
      "realtime_transcription_languages": ["pl", "en"]
    }
    
    • These are hints, not a lock. Leave the setting unset or null to keep automatic detection.
    • An explicit language takes precedence, including one set on a secondary shortcut. The hints come back after that shortcut is used.
    • A list without en never gets the English default prompt.
    • Older OpenAI models ignore this setting.

    Thanks to @PanBartosz for #291.

    Fixes

    • Single-letter filler words now match only whole words. A filler like "м" no longer removes letters from inside "мама". Single-character word overrides ("ß" → "ss") still apply inside words.

    Removed compatibility shims

    • Old signal-file paths. recording_control, recording_status and audio_level moved to $XDG_RUNTIME_DIR/hyprwhspr/ in July. The service no longer creates links to them in ~/.config/hyprwhspr/, and it removes the old ones when it starts. If a compositor binding or script still writes to ~/.config/hyprwhspr/recording_control, switch it to hyprwhspr record toggle (or the runtime path).
    • use_hypr_bindings. It is still read and migrated to external_bindings, but it is no longer written back on save. hyprwhspr now removes it from your config the next time it starts. Downgrading below v1.49.0 afterwards won't keep compositor bindings enabled.

    Upgrading: No action is needed unless something still uses the old ~/.config/hyprwhspr/ signal paths.

    PRs

    Full Changelog: https://github.com/goodroot/hyprwhspr/compare/v1.50.0...v1.51.0

  4. v1.50.02026-10-29 · 2026-10-29 22:31 UTC
    查看更新说明

    v1.50.0

    Fresh stuff!

    Configurable post-transcription hook timeout

    Post-transcription hooks can now run longer than five seconds—useful for local LLM cleanup and other slower text transforms.

    Set post_transcription_hook_timeout in your configuration:

    {
      "post_transcription_hook": "~/.local/bin/transcription-cleanup",
      "post_transcription_hook_timeout": 15.0
    }
    
    • Accepts positive numbers of seconds, including fractional values.
    • Defaults to 5 seconds, preserving existing behavior.
    • Invalid runtime values fall back to the default; 0 does not disable the timeout.
    • The original transcription is still preserved if the hook fails or times out.

    Pasting waits for the hook to finish. For hooks that make HTTP requests, keep the request timeout shorter than the hook timeout.

    Thanks to @PanBartosz for #289.

    Maintenance and release improvements

    • Updated website dependencies to address security advisories.
    • Clarified hook documentation and examples.
    • Removed redundant exception declarations and an unused backend lookup without changing app behavior.

    No configuration changes are required when upgrading.

    New Contributors

    Full Changelog: https://github.com/goodroot/hyprwhspr/compare/v1.49.2...v1.50.0

  5. v1.49.22026-10-19 · 2026-10-19 17:37 UTC
    查看更新说明

    Fixes

    • Keep captured audio when the microphone stalls mid-recording (#282). On machines where the mic and speakers share one sound card, an idle output could stop capture after ~5 seconds. hyprwhspr now ends the recording, transcribes what it heard, and shows one notice instead of silently cutting off.
    • Fix a rare hang where logging from cleanup code could freeze the service.
    • Push-to-talk now latches only on key-up release. An explicit stop always stops.
    • Release the previous model before reloading a backend, so reinitializing no longer holds two models in VRAM (#272).
    • Waybar: stop rewriting commented config.jsonc, remove every module placement on uninstall, keep the style copy until removal completes, and accept a string include (#287).
    • Setup prints a Lua binding for Hyprland Lua configs instead of writing a bindings.conf that never loads (#286).
    • Clipboard restore no longer picks X11 atoms such as TARGETS as the saved type.

    Documentation

    • Troubleshooting: "Recording cuts off after a few seconds", with a WirePlumber rule that keeps a shared sound card awake.

    New Contributors

    Full Changelog: https://github.com/goodroot/hyprwhspr/compare/v1.49.1...v1.49.2

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    https://github.com/user-attachments/assets/4c223e85-2916-494f-b7b1-766ce1bdc991


    • Built for Linux - Native AUR package for Arch, or use Debian/Ubuntu/Fedora/openSUSE/NixOS
    • Very fast defaults - Nearly instant and accurate performance via in-memory models
    • Offline and private - Transcription never leaves your machine. Cloud APIs are fully optional.
    • Latest models - Cohere Transcribe? Orukeet? Parakeet TDT V3? Qwen3-ASR? Latest and greatest
    • GPU memory efficient - Limit or zero memory usage easily, more for other local models
    • onnx-asr for wild CPU speeds - No GPU? Optimized for great speed on any hardware
    • Strong CJK - Qwen3-ASR for Chinese, Japanese and Korean
    • Translation - Translate non-English to English with a single config
    • REST API or websockets - Secure, fast wires to top clouds like Gemini, ElevenLabs, Deepgram
    • Live streaming - Self-host NeMo or Phonon: watch words form, or type as you speak (experimental)
    • Themed visualizer - Visualizes your voice, will automatch Omarchy and Noctalia themes
    • Word overrides and prompts - Custom hot keys, common words, and more
    • Multi-lingual - Great performance in many languages
    • Long form mode with saving - Pause, think, resume, pause: submit... Bam!
    • Auto-paste anywhere - Instant paste into any active buffer, or even auto enter (optional)
    • Audio ducking 🦆 - Reduces or pauses other audio on record (optional)

    Why hyprwhspr? There are a lotta dictation apps. This one is built ground-up for performance and stability: your hardware will auto-optimize to the best possible accuracy and speed. Actively maintained, at the leading edge, fully featured, strictly offline unless you use an API, and works on both Wayland and X11.


    Quick start

    Prerequisites

    • Linux with systemd (Arch, Debian, Ubuntu, Fedora, openSUSE, NixOS etc.)
    • Python 3.11-3.14
    • Wayland or X11 session (GNOME, KDE Plasma, Sway, Hyprland, Niri, etc.).
    • Clipboard/window tools:
      • wl-clipboard and wtype on Wayland
      • python-pyperclip, xclip, xdotool, and xprop on X11 (installed by the dependency script)
    • Waybar or Noctalia (optional, for status bar)
    • gtk4 + PyCairo (optional, for visualizer)
    • NVIDIA GPU (optional, for CUDA acceleration)
    • AMD/Intel GPU / APU (optional, for Vulkan acceleration)

    Install


    Arch Linux

    On the AUR:

    # Install for stable
    yay -S hyprwhspr
    
    # Or install for bleeding edge
    yay -S hyprwhspr-git
    

    Then run the interactive setup:

    hyprwhspr setup
    
    Ubuntu, Debian, Fedora, openSUSE
    curl -fsSL https://hyprwhspr.com/install.sh | bash
    

    Installs dependencies, clones to ~/.local/share/hyprwhspr/src, and walks you through setup.

    # Clone the repo
    git clone https://github.com/goodroot/hyprwhspr.git
    cd hyprwhspr
    
    # Install dependencies for your distro
    ./scripts/install-deps.sh
    
    # Run interactive setup
    ./bin/hyprwhspr setup
    
    Nix and NixOS (beta)

    Use the Nix flake and NixOS module for x86_64 Linux with Whisper.cpp CPU transcription.

    We'd appreciate issue reports and requests!


    Setup then walks you through:

    1. ✅ Configure transcription backend (Cohere Transcribe, Parakeet TDT V3, Whisper, Qwen3-ASR, REST API, or Realtime WebSocket)
    2. ✅ Download models
    3. ✅ Configure themed visualizer for maximum coolness (optional)
    4. ✅ Configure bar integration for your shell -- Waybar or Noctalia (optional)
    5. ✅ Set up systemd user services
    6. ✅ Set up permissions
    7. ✅ Validate installation

    First use

    Ensure your microphone of choice is available in audio settings!

    1. Log out and back in (for group permissions)
    2. Press Super+Alt+D to start dictation - beep!
    3. Speak naturally
    4. Press Super+Alt+D again to stop dictation - boop!
    5. Bam! Text appears in active buffer!

    What you'll see while recording: on layer-shell compositors (Hyprland, Sway, niri, KDE) the animated mic OSD overlay -- on Noctalia / Omarchy it auto-matches your live shell theme; on GNOME/Mutter you may need to make additional changes. See Themed visualizer for details.

    Any snags, please create an issue.

    Updating

    # Arch: update via your AUR helper
    yay -Syu hyprwhspr
    
    # Managed release installs
    hyprwhspr update
    
    # Legacy bootstrap installs: re-run the installer
    curl -fsSL https://hyprwhspr.com/install.sh | bash
    
    # Either way, setup is idempotent if you need to re-run it
    hyprwhspr setup
    

    Managed release rollout and recovery: installation guide.

    CLI commands

    • hyprwhspr setup - Interactive initial setup
    • hyprwhspr update [--version VERSION] - Update a managed release
    • hyprwhspr install status - Inspect managed installation state
    • hyprwhspr install repair [--python PATH] - Repair a managed installation
    • hyprwhspr config - Manage configuration (show / show --all / edit / secondary-shortcut)
    • hyprwhspr model - Manage models (download / list / status / unload / reload)
    • hyprwhspr record - External hotkey control (start / stop / toggle / cancel / capture / status / copy-last / paste-last / clear-last)
    • hyprwhspr transcribe INPUT - Transcribe a WAV or MP3 file to stdout (use -o PATH to write a file)
    • hyprwhspr status - Overall status check
    • hyprwhspr validate - Validate installation
    • hyprwhspr test - Test microphone and transcription end-to-end
    • hyprwhspr keyboard - List/test keyboard devices (list / test)
    • hyprwhspr waybar / hyprwhspr noctalia - Manage bar integration
    • hyprwhspr mic-osd - Enable/disable the mic OSD (enable / disable / status)
    • hyprwhspr systemd - Manage systemd services
    • hyprwhspr uninstall - Remove hyprwhspr; preserve settings, credentials and models
    • hyprwhspr uninstall --purge - Also remove recorded personal files (--keep-models preserves models)

    Documentation

    All of it at hyprwhspr.com/docs, or here:

    Getting help

    License

    MIT License - see LICENSE file.

    Contributing

    Start with an issue - happy to help! Pull requests best begin there too.

    Upvotes on the AUR and/or GitHub stars are also a nice way to show appreciation.


    Built with ❤️ in 🇨🇦