VoxType è un’applicazione di trascrizione vocale push-to-talk per Linux, scritta in Rust. Il funzionamento è semplice: si tiene premuto un tasto (per default ScrollLock), si parla, e al rilascio il testo trascritto viene inserito direttamente nella posizione del cursore. Tutto avviene in locale grazie a whisper.cpp, senza inviare dati a server esterni.
Il progetto supporta nativamente i compositor Wayland (Hyprland, Sway, River) ma funziona anche su X11. Tra le caratteristiche principali ci sono il supporto per oltre 1600 lingue, l’accelerazione GPU tramite Vulkan e la possibilità di post-processare il testo con un LLM locale tramite Ollama o llama.cpp.
Progetto su GitHub
Il codice sorgente di VoxType è disponibile su GitHub .Requisiti
Per utilizzare VoxType è necessario un sistema NixOS con PipeWire o PulseAudio configurato. Per l’output del testo su Wayland è necessario almeno uno tra questi strumenti: wtype (consigliato, miglior supporto Unicode), dotool, ydotool oppure wl-clipboard. Su X11 viene utilizzato xdotool.
Installazione
Installare le dipendenze
Su NixOS le dipendenze si aggiungono nella configurazione di sistema (/etc/nixos/configuration.nix):
environment.systemPackages = with pkgs; [
wtype
wl-clipboard
];Dopo aver modificato la configurazione, applicare le modifiche:
sudo nixos-rebuild switchCompilare VoxType
VoxType è scritto in Rust, quindi è necessario avere la toolchain Rust disponibile. Su NixOS si può entrare in una shell temporanea con tutto il necessario:
nix-shell -p rustc cargo gcc pkg-config opensslPoi clonare il repository e compilare:
git clone https://github.com/peteonrails/voxtype.git
cd voxtype
cargo build --releaseIl binario verrà generato in target/release/voxtype.
Scaricare un modello
VoxType include un comando di setup che scarica automaticamente il modello Whisper necessario per la trascrizione:
./target/release/voxtype setup --downloadPer default viene scaricato il modello base.en, un buon compromesso tra velocità e accuratezza per l’inglese. Per l’italiano o altre lingue è necessario un modello multilingue.
Configurare il keybinding nel compositor
Per utilizzare VoxType su Wayland è consigliato configurare il tasto di attivazione direttamente nel compositor. Alcuni esempi:
Per Hyprland (~/.config/hypr/hyprland.conf):
bind = , SCROLL_LOCK, exec, voxtype togglePer Sway (~/.config/sway/config):
bindsym Scroll_Lock exec voxtype toggleAvviare VoxType
./target/release/voxtypePer installarlo a livello di sistema si può copiare il binario:
sudo cp target/release/voxtype /usr/local/bin/A questo punto è sufficiente tenere premuto il tasto configurato, parlare, e rilasciare per vedere il testo trascritto comparire nella posizione del cursore.
Configurazione
Il file di configurazione si trova in ~/.config/voxtype/config.toml. Alcune opzioni utili:
# Modello da utilizzare (tiny, base, small, medium, large-v3, large-v3-turbo)
model = "base"
# Lingua per la trascrizione (it = italiano)
language = "it"
# Metodo di output: type, clipboard, paste
output_mode = "type"
# Tasto di attivazione
hotkey = "SCROLLLOCK"Per la trascrizione in italiano è consigliato usare almeno il modello small per ottenere risultati accurati. I modelli con suffisso .en (come base.en o small.en) sono ottimizzati esclusivamente per l’inglese e non supportano altre lingue.
Modelli e VRAM
La dimensione del modello incide sulla memoria necessaria. Il modellotiny richiede circa 75 MB di VRAM, base circa 150 MB, small circa 500 MB e medium circa 1.5 GB. Il modello large-v3-turbo offre il miglior rapporto qualità/velocità per chi ha una GPU dedicata.
Accelerazione GPU
VoxType supporta l’accelerazione GPU tramite Vulkan, compatibile con schede AMD, NVIDIA e Intel. Per abilitarla:
sudo voxtype setup gpu --enableQuesto comando installa i pacchetti Vulkan necessari per il proprio sistema. L’accelerazione GPU riduce significativamente i tempi di trascrizione, soprattutto con modelli più grandi come medium o large-v3.
Meeting mode
VoxType include una modalità meeting per la trascrizione continua con attribuzione degli speaker ed esportazione del testo. Questa modalità è utile per trascrivere riunioni o lezioni senza dover tenere premuto un tasto.
Integrazione con Ollama
Una delle caratteristiche più interessanti di VoxType è la possibilità di post-processare il testo trascritto con un LLM locale. Ad esempio, si può correggere la grammatica, riformulare il testo o tradurlo automaticamente utilizzando Ollama o llama.cpp come backend.