VoiceCC

Voice-to-Command per AI coding CLI — Panoramica Progetto

Cos'è

VoiceCC è un sistema voice-to-command che permette di controllare AI coding CLI (CLI) tramite voce. L'utente parla, il sistema trascrive con Whisper (GPU locale), interpreta il comando vocale e lo inietta nella sessione terminale dove gira AI coding CLI — sia su WSL (tmux) che su Windows (PowerShell/Terminal).

Supporta comandi testuali diretti, tasti speciali (escape, invio, tab) e interazione intelligente con i prompt di AI coding CLI (selezione opzioni, conferme, input personalizzato, selezione multipla) — completamente a mani libere.

8 Black Box 2 Piattaforme (WSL + Windows) 8 Lingue Supportate 245 Test

Architettura

graph TB
    User["Utente\nInput Vocale"] -->|"hotkey"| VE

    subgraph Windows
        VE["VoiceEmitter\nAudio Capture + Whisper STT\n+ Hotkey + System Tray"]
        WW["WindowsWorker\nRilevamento Terminale\n+ Iniezione PostMessage"]
        BR["Browser\nDashboard (React)"]
    end

    subgraph WSL / Linux
        HUB["SignalR Hub :5050\nMessage Broker + Filter Pipeline\n+ Choice Detection + Dashboard Statico"]
        TW["TmuxWorker\nSession Monitor\n+ Tmux Injector"]
        TMUX["tmux session 'cc'\nAI coding CLI"]
    end

    VE -->|"SignalR\ncomando vocale"| HUB
    WW -->|"SignalR\nstato sessione + risultati"| HUB
    HUB -->|"instrada comando\nal worker"| TW
    HUB -->|"instrada comando\nal worker"| WW
    TW -->|"send-keys"| TMUX
    WW -->|"PostMessage\nWM_CHAR"| Terminal["Windows Terminal"]
    BR -->|"SignalR"| HUB
    HUB -->|"eventi + stato"| BR
  

Stima Tempi di Sviluppo

Quanto ci metterebbe un developer super senior .NET/React a costruire tutto da zero, scrivendo tutto il codice a mano?

Dettaglio per Fase

#FaseGiorniNote
0Ambiente + Ricerca5Setup WSL2 + systemd, CUDA + cuDNN (notoriamente problematico), .NET/Node.js SDK, ricerca Whisper.net, NAudio, SharpHook, PostMessage/Win32, UIAutomation, SignalR polymorphism. Ogni API ha quirk non documentati
1Architettura + Fondamenta6Design BBC, struttura multi-solution (WSL/Windows), contratti condivisi (tanti DTO/interfacce/eventi), SignalR Hub con typed client, routing per session owner, Serilog, primo test E2E di cablaggio
2Audio Capture + Whisper STT9NAudio WASAPI (device enum, gestione buffer, formato WAV), SharpHook global hotkey (3 slot), caricamento Whisper.net CUDA (problemi formato, fallimenti caricamento modello), tuning beam search, confidence scores (rotta nella versione stabile, serve build preview), language prompts per 8 lingue, filtro hallucination
3Pipeline WSL5tmux session monitor (macchina a stati: idle/busy/waiting), tmux injector (escaping send-keys è DIFFICILE — quotes, caratteri speciali, scoperta ArgumentList.Add), TmuxWorker orchestrator con retry, template servizi systemd + script installazione
4Pipeline Windows10POC PostMessage (scoprire scan code in lParam, WM_CHAR vs WM_KEYDOWN — rabbit hole profondo in Win32), UIAutomation per trovare terminali (TextPattern, rilevare stato AI coding CLI dalla status bar), iniezione senza rubare focus, messaggi lunghi 200+ caratteri, architettura dual SignalR, packaging Velopack
5Dashboard (React)5Scaffold React 18 + Vite + TypeScript, hook connessione SignalR con reconnect, stores Zustand, lista sessioni + log comandi + console debug, VU meter (recharts real-time), build statico servito dal Hub
6Intelligent Message10Filter pipeline (chain of responsibility), filtro comandi escape, ricerca manuale keybinding AI coding CLI (testare ogni tipo di prompt, screenshot, documentare), screen parsing per 5 tipi di prompt, mapping comandi vocali in 8 lingue, screen adapter cross-platform (tmux '❯' vs Windows '>'), orchestrazione ChoiceExecutorService
7Testing + Bug Fixing8245 unit test scritti a mano con TDD, mock SignalR/tmux/NAudio/Whisper, test integrazione. Bug fixing: WebSocket 1006, CORS, escaping virgolette, problemi di timing, bug routing hub broadcast, problemi mutex, hallucination Whisper, priming language prompt
8Deploy + Documentazione4Script install/uninstall WSL (systemd, .sudo, controllo porte), script Windows (senza admin, Registry HKCU\Run — scoperto che Task Scheduler richiede admin), workflow DEPLOY.md, cambio modalità (disinstalla→controlla-porta→installa), test su macchina pulita
TOTALE62~12.5 settimane, ~3 mesi

Confronto Scenari

ScenarioMoltiplicatoreTotale
Ottimistico (CUDA funziona, nessun rabbit hole, tutto fila liscio)1x~62 giorni lavorativi (~3 mesi)
Realistico (inferno CUDA, Win32 non documentato, quirk Whisper)1.4x~87 giorni (~4.5 mesi)
Senior "normale" (meno esperienza Win32/audio)1.6x~100 giorni (~5 mesi)
Junior/Mid (curva di apprendimento su tutto)2.5x~155 giorni (~8 mesi)

Dove va davvero il tempo

La Pipeline Windows (Fase 4) domina perché:

L'Intelligent Message (Fase 6) è il secondo collo di bottiglia:

Whisper STT (Fase 2) nasconde complessità:


Tempo Reale di Sviluppo (con AI coding CLI)

Il progetto è stato costruito con AI coding assistant che ha scritto ~90% del codice, diretto da un developer senior che ha progettato l'architettura e preso tutte le decisioni. Partenza da zero assoluto: nessun ambiente, nessun tool installato, solo l'idea. I 6 giorni includono tutto: setup ambiente, ricerca, architettura, sviluppo, test, deploy.

120 Commit 245 Test 9 Feature + 4 Bugfix + 3 POC 6 Giorni Calendario

Dettaglio Giorno per Giorno

GiornoCommitCosa è stato costruitoOreFase (stima manuale)
Giorno 1 (Lun) 8 Setup ambiente, architettura, Docker Hub, VoiceEmitter base, integrazione Whisper STT, primo prototipo funzionante ~12h Fasi 0+1+2
Giorno 2 (Mar) 20 VoiceEmitter completo (settings, tray, UI impostazioni), installer Velopack, migrazione Docker→systemd, feature multi-attivazione (3 slot hotkey) ~11h Fasi 1+2+3+8
Giorno 3 (Mer) 46 Bugfix settings, intero PowerShellWorker da zero (UIAutomation + PostMessage + WindowsWorker + refactor WorkerBase + fix routing Hub), integrazione in VoiceEmitter, fix hallucination Whisper, pipeline message filter con comandi escape ~14h Fasi 3+4+7+8
Giorno 4 (Gio) 29 Hub versionato, opzioni deploy (WSL + Windows, senza admin), POC Feature04 casistiche 4-6, fix language prompt Whisper ~12h Fasi 6+7+8
Giorno 5 (Ven) 14 Choice detection completa: ricerca keybinding, screen parsing, voice mapping, ChoiceExecutorService, supporto Windows con IScreenAdapter ~11h Fase 6 completa
Giorno 6 (Sab) 3 Tuning accuratezza Whisper: upgrade a build preview, beam search, confidence scores, vocabolario language prompt ~2h Rifinitura Fase 2
TOTALE 120 ~62h ~6 giorni lavorativi

Stima vs Realtà

FaseStima (manuale)Reale (con AI)Speedup
Ambiente + Ricerca5 giorni~0.5 giorni10x
Architettura + Fondamenta6 giorni~0.5 giorni12x
Audio + Whisper STT9 giorni~1.5 giorni6x
Pipeline WSL5 giorni~0.5 giorni10x
Pipeline Windows10 giorni~1 giorno10x
Dashboard (React)5 giorni~0.3 giorni17x
Intelligent Message10 giorni~1.5 giorni7x
Testing + Bug Fixing8 giornidistribuito
Deploy + Documentazione4 giorni~0.5 giorni8x
TOTALE62 giorni~6 giorni10x

Osservazioni Chiave

  1. Architettura + contratti + boilerplate = speedup 10–17x. L'AI genera DTO, interfacce, eventi, registrazioni DI, scaffolding SignalR hub, componenti React quasi istantaneamente. Quello che un umano fa in giorni di digitazione, l'AI lo produce in minuti.
  2. Il Giorno 3 è stato sovrumano: 46 commit, 5 feature, 2 bugfix in 14 ore. L'intera pipeline Windows (UIAutomation + PostMessage + WindowsWorker + fix routing Hub) più la pipeline message filter costruite in un solo giorno. Questo volume di codice corretto e testato è fisicamente impossibile senza AI — non è questione di velocità di battitura, ma dell'ampiezza di conoscenza di dominio simultanea (Win32, SignalR, tmux, TDD).
  3. Whisper.net + CUDA hanno comunque richiesto debug umano. Scoprire che beam search richiede un NuGet in preview, che WithProbabilities() va impostato alla creazione del processor, che i language prompt servono con vocabolario reale — sono gotcha non documentati dove l'AI può cercare ma l'umano deve verificare con l'esecuzione reale.
  4. Da POC a produzione in ore, non giorni. Il POC dell'iniezione PostMessage è stato validato e trasformato in un WindowsWorker completo + integrato in VoiceEmitter in un solo pomeriggio. Un umano avrebbe bisogno del giorno di POC più 3–4 giorni per l'implementazione production.
  5. I test sono stati "gratis" — scritti insieme al codice, non dopo. Con TDD guidato dall'AI, 245 test sono stati prodotti come sottoprodotto naturale dello sviluppo. Un umano che scrive 245 test a mano avrebbe bisogno di 5–6 giorni dedicati. Con l'AI, il costo del testing è stato essenzialmente zero — assorbito in ogni feature.
  6. Effort umano totale: ~62 ore in 6 giorni, partendo da zero assoluto. Il lavoro umano è stato: setup ambiente, decisioni architetturali, prompting dell'AI, revisione output, test manuale con microfono reale + tmux + Windows Terminal e debug del comportamento Whisper/CUDA. L'equivalente manuale stimato è 62 giorni lavorativi (~500 ore). Accelerazione effettiva: ~10x.