Intelligenza Artificialevoicebox è uno studio vocale AI open source che gira tutto in locale: clona voci, genera speech in oltre venti lingue e dà voce agli agenti AI, senza che un byte audio lasci il tuo dispositivo. L'alternativa self-hosted a ElevenLabs e Wispr Flow.
Intelligenza ArtificialeIl voice cloning zero-shot di voicebox azzecca il timbro inglese su clip brevi ma non rende l'italiano con la tua voce: la pipeline edge-tts→RVC è la strada che funziona davvero. Cloning, TTS multilingua e dettatura alla prova.

24 giugno 2026 · 9 min lettura
MoneyPrinterTurbo con Ollama self-hosting: cos'è, feature e setup Docker per generare video AI in locale gratis. Parte 1, con un asterisco su Pexels.
Iscriviti alla newsletter per ricevere i migliori articoli direttamente nella tua inbox.
voicebox espone un server MCP nativo: con un solo comando colleghi Claude Code (o Cursor, o Cline) e l'agente può chiamare `voicebox.speak` per parlare con una voce che possiedi e `voicebox.transcribe` per trascrivere — tutto in locale, senza API key e senza cloud. In questa parte finale configuro l'MCP, provo i quattro tool end-to-end e tiro le fila della serie con un verdetto onesto.
Immagina questo: stai lavorando con Claude Code, l'agente risponde a un tuo prompt e invece di leggere testo sullo schermo lo senti — con la tua voce, o con una che hai clonato — senza che un byte lasci il tuo network. Non è fantascienza e non è neanche particolarmente complesso: è quello che si ottiene combinando voicebox con il suo server MCP nativo. La differenza rispetto al solito TTS-su-richiesta è sottile ma sostanziale: qui l'agente sceglie di parlare, come farebbe con qualsiasi altro tool, perché nel suo contesto voicebox.speak è esattamente un tool, alla pari di un'interrogazione su un database o di una chiamata HTTP. È lo stesso confine tra agente self-hosted e cloud che ho già analizzato, letto qui dal lato della voce.
Il backend FastAPI di voicebox monta un server MCP su /mcp usando FastMCP 3.4.2 con transport Streamable HTTP. L'endpoint è http://<host>:17493/mcp. Non è un wrapper posticcio: il middleware ClientIdMiddleware legge l'header X-Voicebox-Client-Id a ogni richiesta e lo usa per tenere traccia di quale client sta parlando — fondamentale per le voci per-agente, come vedremo.
I tool esposti sono quattro, confermati via tools/list con un client MCP reale.
`voicebox.speak(text, profile?, engine?, personality?, language?)` è il tool principale. L'agente passa il testo e, opzionalmente, profilo voce, engine e lingua. È asincrono come la REST API: restituisce un generation_id e poi l'audio si recupera da /audio/{id} a generazione completata. Il campo personality è la parte interessante: se specificato, un LLM locale — Qwen3, da 0.6B a 4B — riscrive il testo nel carattere indicato prima di passarlo al TTS, e l'output è più naturale e in-character rispetto a sintetizzare testo scritto per essere letto.
`voicebox.transcribe(audio_base64?, audio_path?, language?, model?)` è lo STT via Whisper locale. Il client può passare un file lato server con audio_path oppure dati audio in base64 con audio_base64, utile quando il client è remoto e non ha accesso al filesystem del server.
`voicebox.list_captures(limit?, offset?)` elenca le registrazioni audio recenti catturate dal sistema, e `voicebox.list_profiles()` elenca i profili voce disponibili nel database locale.
Nota pratica: i tool hanno il prefisso voicebox. — voicebox.speak, non speak. Se il client mostra tool non trovati, verifica che il prefisso sia incluso.
Aggiungere voicebox a Claude Code è una singola riga:
claude mcp add voicebox --transport http \
--url http://10.0.10.179:17493/mcp \
--header "X-Voicebox-Client-Id: claude-code"L'host 10.0.10.179 è l'IP del container LXC 201 nella mia rete, da sostituire con quello del proprio deployment; il transport http corrisponde allo Streamable HTTP di FastMCP. Ho verificato i quattro tool end-to-end con un client MCP reale: list_profiles ha restituito i profili nel database (quattro al momento del test), e speak con il testo "Hello from the MCP client, this is Claude Code speaking." e profilo "Kokoro Heart" ha completato con status: completed e duration: 4.25s — audio generato passando interamente dal protocollo MCP, senza toccare la REST API. Se hai già costruito un MCP tool server locale, come quello per lo scraping, il pattern qui è identico: un tool in più nel contesto dell'agente, solo che parla.
Per i client che supportano solo il transport stdio — caso meno comune con Claude Code ma possibile con altri tool — il pacchetto desktop include un binario voicebox-mcp che funge da shim stdio→HTTP, configurabile via la variabile d'ambiente VOICEBOX_CLIENT_ID.
L'header X-Voicebox-Client-Id non è solo un identificatore di log. Il backend espone endpoint REST /mcp/bindings e /mcp/bindings/{client_id} che permettono di legare un client_id specifico a un profilo voce di default. In pratica: Claude Code (header claude-code) parla con una voce, un altro client con header cursor parla con un'altra. Ogni agente o tool ha la sua identità sonora senza che l'agente stesso debba specificare profile a ogni chiamata: il binding è lato server, trasparente.
Combinato con il campo personality, questo apre scenari interessanti: un agente con voce clonata dalla voce dell'utente e personalità neutra per i report di lavoro, un secondo con voce e carattere completamente diversi per il brainstorming. Il LLM locale Qwen3 riscrive il testo in-character prima che arrivi al TTS — l'agente non parla "come una macchina", ma con lo stile che gli hai assegnato.
voicebox.transcribe porta Whisper nel loop dell'agente. Il test reale: chiamata MCP con audio_path puntato a un file WAV sul server, testo originale "Voicebox runs entirely on your own hardware. No cloud, no subscription, full privacy." e risultato "Voice box runs entirely on your own hardware. No cloud, no subscription, full privacy." Prima chiamata in 5,4 secondi (include il caricamento del modello Whisper base), accuratezza word-perfect tranne il compound Voicebox trascritto come Voice box, parola non in dizionario: comportamento atteso.
Una cosa su cui essere onesti: la dettatura globale con hotkey — push-to-talk che trascrive direttamente nel campo attivo di qualunque app — è una feature dell'app desktop Tauri, non disponibile in modalità headless/server. Sul server il canale è solo l'API/MCP: transcribe su file o base64. Se vuoi la dettatura globale ti serve l'app desktop; se vuoi STT nel flusso di un agente remoto, il tool MCP è quello giusto.
I casi d'uso che reggono alla prova dell'uso reale, senza hype.
Accessibilità. Chi lavora con difficoltà motorie può usare il loop dettatura→risposta vocale per interagire con l'IDE senza toccare tastiera o mouse. Tutto locale, nessun dato biometrico vocale in cloud.
Dev hands-free. Un agente che esegue una build lunga o un'analisi di log può fare un report vocale a fine task invece di richiedere attenzione attiva sullo schermo. Non è banale: cambia il modo in cui si monitora un processo in background.
Agenti che leggono diff e log. voicebox.speak con un diff o l'output di una pipeline CI trasforma il terminale in qualcosa che parla. Utile quando sei lontano dal desk o stai facendo altro in parallelo.
Loop dettatura↔risposta vocale tutto locale. L'utente detta via transcribe, l'agente elabora, risponde via speak. Nessun hop cloud in nessuna direzione. Su Kokoro con RTF 0,08 (l'8% del tempo dell'audio per generarlo) la latenza TTS è trascurabile.
È il momento di tirare le fila, senza glissare sui problemi reali.
Dove voicebox brilla davvero: la privacy è strutturale, non una feature configurabile — l'audio non esce mai dal dispositivo perché l'architettura non lo prevede. Il costo marginale dopo il setup è quello dell'energia. L'integrazione MCP è nativa e funziona — quattro tool stabili, testati end-to-end, configurabili in una riga. E gli engine pratici entrano tutti in 8 GB di VRAM: Kokoro a 82M parametri con RTF 0,08 in inglese, LuxTTS con RTF 0,13 in italiano, Qwen3-TTS 0.6B per il multilingua di qualità, Chatterbox Multilingual che sul campo ha occupato 5113 MiB di picco (la documentazione prevedeva 8-16 GB, era pessimista).
I limiti reali, senza sconti: il collo di bottiglia sulla RTX 2070 Super non è la VRAM, è la velocità. Qwen3-TTS gira con RTF circa 2 in inglese, più lento del realtime, con un'attesa percettibile; Chatterbox in inglese è simile. Per l'uso interattivo fluido le opzioni sono Kokoro e LuxTTS; Qwen ha senso per i batch o quando la qualità conta più della latenza. TADA è impraticabile su questa configurazione: la 1B si è caricata in VRAM (circa 4 GB) ma la generazione è rimasta in stallo con GPU utilization a 0%, e la 3B-ml non l'ho testata perché prevista OOM su 8 GB.
Il confronto con il cloud va fatto onestamente. ElevenLabs Professional Voice Cloning su campioni brevi produce risultati ancora superiori a quello che ottieni localmente, specie se il campione di partenza è di pochi secondi. Per uso privato, ad alto volume, con requisiti di privacy stringenti, vince il locale; per uso professionale su campioni brevi dove la qualità è critica, il cloud ha ancora margine. Sul fronte maturità, voicebox è v0.5.x, in sviluppo attivo: non è software da produzione mission-critical, l'API MCP è stabile da v0.5.0 (aprile 2026), ma il progetto non ha ancora una 1.0 e il ritmo di cambiamento è alto.
Quando ne vale la pena: se il tuo profilo è homelab/self-hosting, se hai già una GPU decente, se lavori con dati sensibili o semplicemente non vuoi pagare per carattere a tempo indeterminato, voicebox vale l'investimento del setup. L'integrazione MCP per Claude Code aggiunge un livello di interazione che i servizi cloud non offrono in questo formato locale. Se invece ti serve voice cloning professionale out-of-the-box su campioni brevi senza setup, ElevenLabs è ancora la risposta più diretta. Il giudizio fine sulla qualità audio per engine — quale suona meglio, quale clona più fedelmente — vive nella Parte 3, dove ci sono i campioni da ascoltare.
Con un solo comando: claude mcp add voicebox --transport http --url http://<host>:17493/mcp --header "X-Voicebox-Client-Id: claude-code". Da lì l'agente vede i quattro tool MCP di voicebox.
Quattro: voicebox.speak (sintesi, con profilo/engine/personalità opzionali), voicebox.transcribe (STT Whisper su file o base64), voicebox.list_captures e voicebox.list_profiles. Tutti con il prefisso voicebox..
Sì. L'header X-Voicebox-Client-Id lega un client a un profilo voce di default tramite gli endpoint /mcp/bindings: Claude Code parla con una voce, un altro client con un'altra, in modo trasparente lato server.
Sì. Sia la sintesi sia la trascrizione avvengono sull'hardware dove gira voicebox: nessun byte audio esce dalla rete e non serve nessuna API key di servizi cloud.
Una guida in quattro parti per installare, configurare e usare voicebox in un homelab con Proxmox.
Parte 1 — voicebox: lo studio vocale AI che gira tutto in locale: cos'è, architettura, confronto onesto con ElevenLabs e Wispr Flow, panoramica engine.
Parte 2 — Installare voicebox su Proxmox con GPU passthrough (RTX 2070 Super): LXC bind, il gotcha Debian vs Ubuntu, Python 3.13 con uv, benchmark VRAM reali.
Parte 3 — voicebox in pratica: voice cloning, TTS multilingua e dettatura: cloning reale, quale engine per quale lingua, la pipeline edge-tts→RVC, dettatura con Whisper.
Parte 4 — Dare voce ai tuoi agenti AI: voicebox + MCP con Claude Code (questo post): setup MCP, i quattro tool, voci per-agente, verdetto finale.
Se hai un homelab con una GPU ferma a fare bella mostra di sé, la serie completa ti dà tutto il percorso: dall'architettura all'agente che ti parla con una voce che possiedi, senza che un byte esca dalla tua rete. È ancora una di quelle cose che fanno effetto la prima volta.