
Whisper per la trascrizione delle chiamate: speech-to-text accurato per le telefonate
Eric King
Author
La trascrizione delle chiamate telefoniche è uno dei casi d’uso più comuni e di maggior valore per lo speech-to-text. OpenAI Whisper si adatta particolarmente bene grazie alla robustezza verso rumore, accenti e qualità audio non ideale.
Questo articolo spiega come usare Whisper per trascrivere chiamate, inclusi formati audio, separazione degli speaker, ottimizzazione della precisione e pattern di deployment reali.
Perché Whisper per la trascrizione delle chiamate?
Rispetto ai motori ASR tradizionali, Whisper ottiene buoni risultati su:
- Audio telefonico di bassa qualità (8 kHz)
- Accenti e parlanti non nativi
- Rumore di fondo
- Conversazioni lunghe (10–120 minuti)
- Chiamate multilingue e code-switching
Casi d’uso tipici:
- Log delle chiamate di assistenza clienti
- Analisi delle chiamate di vendita
- QA e conformità
- Riassunti e insight sulle chiamate
- Automazione CRM
Pipeline tipica per la trascrizione delle chiamate
Call (PSTN / VoIP)
↓
Call Recording (WAV / MP3)
↓
Preprocessing (resample, channel split)
↓
Whisper Transcription
↓
Speaker Diarization (optional)
↓
Post-processing (punctuation, timestamps, summaries)
Formati audio: cosa funziona meglio
Impostazioni consigliate
| Parametro | Valore |
|---|---|
| Frequenza di campionamento | 8 kHz o 16 kHz |
| Canali | Mono o stereo |
| Formato | WAV (preferito), FLAC |
| Profondità di bit | PCM a 16 bit |
Whisper ricampiona internamente, ma un ingresso pulito migliora la precisione.
Chiamate mono vs stereo
Mono (più comune)
- Entrambi gli interlocutori miscelati su un solo canale
- Pipeline più semplice
- Separazione degli speaker più difficile
Ideale per:
- Trascrizione semplice
- Ricerca e archiviazione
Stereo (best practice)
- Agente sul canale sinistro
- Cliente sul canale destro
Vantaggi:
- Separazione chiara degli speaker
- Nessuna diarizzazione necessaria
- Maggiore precisione nei passaggi successivi
# Split stereo call into two mono tracks
import torchaudio
audio, sr = torchaudio.load("call.wav")
agent = audio[0]
customer = audio[1]
Poi trascrivi ogni canale separatamente.
Diarizzazione degli speaker con Whisper
Whisper non include la diarizzazione in modo nativo, ma puoi combinarla con:
- Pyannote.audio
- WebRTC VAD + clustering
- Separazione basata sul canale (preferita)
Approccio tipico:
- Eseguire il modello di diarizzazione
- Suddividere l’audio per segmenti di speaker
- Trascrivi ogni segmento con Whisper
- Unisci i risultati con etichette speaker
Migliori modelli Whisper per le chiamate
| Modello | Precisione | Velocità | Consigliato |
|---|---|---|---|
| base | Media | Veloce | ❌ Chiamate brevi |
| small | Alta | Media | ✅ La maggior parte dei casi |
| medium | Molto alta | Più lenta | ✅ Conformità |
| large-v3 | Eccellente | Lenta | ✅ Legale / QA |
Raccomandazione: small o medium per i contact center
Chiamate lunghe (30–120 minuti)
Per le chiamate lunghe, evita di passare tutto l’audio in un’unica volta.
Best practice
- Suddividi l’audio in segmenti da 2–5 minuti
- Usa piccole sovrapposizioni (5–10 secondi)
- Conserva i timestamp
result = model.transcribe(
audio_chunk,
condition_on_previous_text=True
)
In questo modo si preserva il contesto tra i segmenti.
Migliorare la precisione sulle chiamate telefoniche
1. Normalizza l’audio
- Rimuovi i silenzi
- Normalizza il volume
- Applica riduzione del rumore se serve
2. Usa hint sulla lingua
model.transcribe(audio, language="en")
3. Abilita FP16 sulla GPU
Inferenza più veloce e stabile.
4. Evita chunk troppo piccoli
Segmenti troppo corti riducono contesto e precisione.
Trascrizione delle chiamate in tempo reale vs batch
| Modalità | Caso d’uso |
|---|---|
| Tempo reale | Monitoraggio live, avvisi |
| Quasi tempo reale | Dashboard QA |
| Batch | Analisi, archiviazione |
La maggior parte dei contact center usa quasi tempo reale o batch per stabilità e costi.
Scalare Whisper nei contact center
Piccola scala (≤ 100 chiamate/giorno)
- Un server GPU
- Whisper small
Scala media (1k–10k chiamate/giorno)
- Pool di GPU
- Coda di job asincrona (RabbitMQ / Kafka)
- Elaborazione a chunk
Grande scala (enterprise)
- Più nodi GPU
- Servizio di pre-elaborazione audio
- Pipeline di trascrizione e riassunto
Post-elaborazione ed estrazione di valore
Dopo la trascrizione, i passi comuni includono:
- Punteggiatura delle frasi
- Tag degli speaker
- Estrazione di parole chiave
- Analisi del sentiment
- Riassunti delle chiamate (LLM)
- Integrazione CRM
Whisper vs API cloud per la trascrizione delle chiamate
| Aspetto | Whisper | API cloud |
|---|---|---|
| Costo | Basso (self-hosted) | Alto |
| Privacy dei dati | Controllo completo | Dipende dal fornitore |
| Precisione | Molto alta | Alta |
| Personalizzazione | Totale | Limitata |
Whisper è ideale per team che necessitano privacy, controllo dei costi e personalizzazione.
Conclusione
Whisper è una scelta solida per la trascrizione delle chiamate, soprattutto per:
- Assistenza clienti
- Vendite e QA
- Settori con forte focus sulla conformità
Con una gestione audio adeguata, chunking e diarizzazione opzionale, Whisper può offrire trascrizione delle chiamate di livello produzione su larga scala.
