0cea6a4b28
- Add system tray icon with Exit menu (tray-icon/muda) - Add IPC daemon status via named pipe (Windows) / Unix socket (Linux) - Add `mouth status` command to query running daemon - Add daemon lock to prevent multiple instances - Hide Windows console window when running as daemon - Wire up Silero VAD model download and speech filtering - Switch hotkey listener from rdev::listen to rdev::grab to consume hotkeys - Add hotkey capture mode in interactive config (press keys instead of typing) - Add all missing key names (brackets, punctuation, numpad, etc.) - Fix ONNX tensor type mismatches (encoder wants i64, decoder wants i32) - Add 300ms lead-in silence to compensate for mic startup latency - Add 300ms trailing recording after stop for speech not to be clipped - Add 50ms silence before audio feedback blips for device warmup - Reduce overlay size (150x18, was 200x36) - Add PolyForm Noncommercial 1.0.0 license - Flesh out user-focused README - Update release script with Gitea/GitHub forge support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
72 lines
1.4 KiB
TOML
72 lines
1.4 KiB
TOML
[package]
|
|
name = "mouth"
|
|
version = "0.2.0"
|
|
edition = "2024"
|
|
description = "Offline speech-to-text with global hotkey and paste"
|
|
license-file = "LICENSE"
|
|
|
|
[dependencies]
|
|
# CLI
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
# Config
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_yaml = "0.9"
|
|
dirs = "6"
|
|
|
|
# Interactive config TUI
|
|
dialoguer = "0.11"
|
|
|
|
# Logging
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
# Async
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
# Global hotkey
|
|
rdev = { version = "0.5", features = ["unstable_grab"] }
|
|
|
|
# Audio capture
|
|
cpal = "0.15"
|
|
|
|
# Audio resampling
|
|
rubato = "0.16"
|
|
|
|
# ONNX inference (Parakeet v3 + Silero VAD)
|
|
ort = { version = "2.0.0-rc.12", features = ["download-binaries"] }
|
|
ndarray = "0.17"
|
|
|
|
# Model download from HuggingFace
|
|
hf-hub = "0.4"
|
|
indicatif = "0.17"
|
|
|
|
# Clipboard
|
|
arboard = "3"
|
|
|
|
# Keyboard simulation
|
|
enigo = { version = "0.3", features = ["serde"] }
|
|
|
|
# Overlay window
|
|
winit = "0.30"
|
|
softbuffer = "0.4"
|
|
|
|
# Audio feedback
|
|
rodio = "0.20"
|
|
|
|
# System info
|
|
num_cpus = "1"
|
|
|
|
# System tray
|
|
tray-icon = "0.19"
|
|
|
|
# IPC status
|
|
serde_json = "1"
|
|
|
|
# Error handling
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.59", features = ["Win32_System_Console", "Win32_UI_WindowsAndMessaging", "Win32_System_Pipes", "Win32_System_IO", "Win32_Storage_FileSystem", "Win32_Foundation", "Win32_Security"] }
|