La voce locale: da Whisper al text-to-speech

Perché la voce è il prossimo passo
L'IA locale ha già dimostrato di funzionare per il testo: chat, riassunti, traduzioni. Ma la voce è il canale in cui viviamo davvero — riunioni, dettatura, assistenza, accessibilità. Portare la voce in locale significa controllare l'intero ciclo: dal microfono alla risposta, senza che un byte esca dal tuo hardware.
Questa guida mostra come costruire una pipeline di voce completamente locale: speech-to-text con Whisper, text-to-speech con Piper o Kokoro-82M, e i pezzi che le collegano.
Da audio a testo: Whisper e le sue implementazioni
Whisper di OpenAI è il modello di riferimento per la trascrizione automatica. Addestrato su oltre 680.000 ore di audio, supporta 99 lingue e offre dimensioni che vanno dal modello tiny (39M parametri) al large-v3 (1.55B). Il modello large-v3-turbo (809M) offre un buon compromesso tra qualità e velocità.
Per eseguirlo in locale con prestazioni accettabili, le implementazioni più usate sono:
- faster-whisper — reimplementazione basata su CTranslate2, fino a 4 volte più veloce di openai/whisper con la stessa accuratezza e meno memoria. Supporta quantizzazione 8-bit su CPU e GPU.
- whisper.cpp — versione in C/C++, ideale per ARM (Raspberry Pi, Apple Silicon) e CPU. Funziona senza GPU.
Il Word Error Rate (WER) è la metrica standard per confrontare le trascrizioni: un WER basso significa pochi errori per parola. Per le lingue più parlate, i modelli large restano i più accurati; per uso quotidiano su hardware modesto, medium o small con quantizzazione 8-bit sono già molto utili.
Da testo a voce: Piper e Kokoro-82M
Due voci locali spiccano per qualità e facilità d'uso:
Piper — TTS neural-based basato su VITS, con modelli pre-addestrati in più lingue (tra cui l'italiano). Leggero: gira su CPU, anche su Raspberry Pi 4, con latenza in tempo reale. Ottimo per risposte rapide, notifiche vocali, assistenti vocali.
Kokoro-82M — 82 milioni di parametri, architettura VITS, 80 lingue supportate, licenza Apache-2.0 per i modelli. La qualità delle voci è sorprendentemente alta per le dimensioni; la voce italiana af_heart è tra le più naturali in catalogo. Gira su CPU in modo efficiente, rendendolo un'opzione eccellente per chi vuole una voce locale senza una GPU dedicata.
Costruire la pipeline
Una pipeline minima di voce locale ha tre stadi:
- Acquisizione — microfono o file audio (WAV, MP3, OGG).
- Trascrizione (STT) — Whisper (faster-whisper o whisper.cpp) → testo.
- Sintesi (TTS) — Piper o Kokoro → audio di risposta.
Tra gli stadi puoi inserire un LLM locale (Ollama con Qwen, Llama, Mistral) per generare la risposta testuale prima della sintesi. Il risultato è un assistente vocale completo che funziona senza connessione.
Esempio rapido con faster-whisper e Piper
Trascrizione:
from faster_whisper import WhisperModel
model = WhisperModel("large-v3-turbo", compute_type="int8")
segments, info = model.transcribe("riunione.wav", language="it")
testo = " ".join(s.text for s in segments)
print(testo)
Sintesi:
echo "Riassunto: la riunione ha trattato tre punti." | piper --model it_IT-medium --output_file rispo.wav
Requisiti hardware
| Componente | Minimo (STT+TTS CPU) | Consigliato (STT+TTS GPU) |
|---|---|---|
| CPU | 4 core (x86_64 o ARM) | 8+ core |
| RAM | 8 GB | 16 GB |
| GPU | non richiesta | NVIDIA 8+ GB VRAM (o Apple Silicon M1/M2) |
| Disco | ~2 GB (modelli) | ~4 GB |
Con large-v3-turbo quantizzato int8 su CPU, la trascrizione è in tempo reale su macchine recenti. Kokoro-82M su CPU ha una latenza di pochi secondi per frasi brevi.
Casi d'uso pratici
- Dettatura — parla, il testo arriva nella tua app di note o di email.
- Riunioni — trascrizione in tempo reale più riassunto con un LLM locale.
- Accessibilità — sintesi vocale per documenti, email, notifiche.
- Assistente personale — pipeline completa con LLM: domanda vocale, risposta vocale, tutto in locale.
Prodotti come TalkScribe dimostrano che l'intero ciclo (Whisper più LLM locale Qwen su GPU M-series) può vivere in un'app macOS nativa, senza cloud.
Dove andare dopo
Una volta che la pipeline di base funziona, i passi naturali sono:
- Punteggiatura e capitalizzazione — Whisper la gestisce internamente; per flussi in tempo reale, considera faster-whisper con beam size 1.
- Voice activity detection (VAD) — per spezzare l'audio in segmenti quando qualcuno parla, senza trasmettere stream continuo.
- Sintonizzazione fine — se la tua voce o il tuo accento specifico danno WER alti, un piccolo dataset (10-30 minuti) può migliorare il modello.
La voce è il punto in cui l'IA locale smette di essere un esperimento e diventa un assistente che vive con te, sul tuo hardware, sempre disponibile.
Articolo generato con IA
Ti è piaciuto questo articolo?
Iscriviti alla newsletter per ricevere nuovi tutorial e guide.
Articoli Correlati

Mac Studio M5 Ultra: guida pratica a 512GB - modelli che ci stanno e setup GGUF
Il Mac Studio da 512GB fa stare un MoE da 560B a 4 bit con contesto ampio. In questa guida: la regola dei 4 bit, il setup GGUF in tre vie, il collo di bottiglia reale (la KV cache) e il confronto costi Mac vs API coi numeri sul tavolo.

Fine-tuning: adattare un modello ai tuoi dati con LoRA e QLoRA
Quando il prompt e il RAG non bastano: adatti i pesi del modello ai tuoi dati. LoRA, QLoRA, preparazione del dataset e strumenti locali (LLaMA-Factory, Unsloth, MLX) su una sola GPU consumer.

