NVIDIA Canary-1B-v2 pipeline ASR e traduzione Python

Guida a NVIDIA Canary-1B-v2 per ASR, traduzione e sottotitoli SRT in Python

Con NVIDIA Canary-1B-v2 puoi costruire una pipeline completa di riconoscimento vocale e traduzione multilingue in Python. Il modello supporta 24 lingue, genera timestamp a livello di parola e segmento, e permette di esportare sottotitoli in formato SRT. Funziona su GPU, ma anche su CPU se non hai accelerazione hardware.

Installazione delle dipendenze

Prima di tutto devi preparare l’ambiente. Serve NeMo ASR toolkit, librerie audio (librosa, soundfile, pydub), NumPy (versione 2.2-2.3) e SciPy (≥1.15). Il setup va fatto una volta sola, con un marker per evitare ripetizioni. Dopo l’installazione il runtime viene riavviato per caricare le dipendenze pulite.

Caricamento del modello

Con ASRModel.from_pretrained carichi il modello nvidia/canary-1b-v2 e lo sposti sul dispositivo disponibile (CUDA o CPU). Il codice controlla la presenza della GPU e stampa il nome e la VRAM. Viene definito anche un dizionario lingue-supportate per reference.

Preparazione audio e trascrizione base

La funzione prepare_audio scarica file da URL o locale e converte in WAV a 16 kHz mono, il formato ottimale per il modello. Con transcribe puoi fare ASR in inglese o tradurre direttamente in altre lingue (francese, tedesco, spagnolo, italiano) passando i parametri source_lang e target_lang.

Timestamp e export SRT

Attivando timestamps=True ottieni sia segmenti che parole con start/end. Una funzione converte i segmenti in formato SRT (ore:minuti:secondi,millisecondi). Nell’esempio, per una clip inglese viene generato un file con sottotitoli tradotti in francese.

Long-form e batch processing

Il modello gestisce anche clip lunghe (es. 108 secondi ottenuti ripetendo l’audio originale 6 volte) e processamento in batch su più file contemporaneamente, utile per carichi di lavoro reali.

Benchmark delle prestazioni

Su GPU, la trascrizione di clip brevi (18 secondi) richiede circa 1.5 secondi, con un rapporto audio/tempo di elaborazione superiore a 10x, rendendo il modello praticabile per applicazioni in tempo reale o semi-reale.

Articoli simili