You are here

Scripting

Doppiare video in locale, senza cloud, offline: autodub_local

Translate this article

Negli ultimi anni sono comparsi molti servizi online che promettono trascrizione, traduzione e doppiaggio automatico dei video. Sono comodi, ma hanno anche alcuni limiti evidenti, a cominciare dai costi ricorrenti.

Dall'esigenza di avere un'alternativa per doppiare video con il mio computer, usando esclusivamente software libero e gratuito che giri sulla mia macchina, è nato autodub_local. L'ho rilasciato pubblicamente su GitHub con licenza CC0, cioè con una rinuncia al copyright assimilabile al pubblico dominio: https://github.com/jsfan3/autodub-local

In pratica è uno script Bash che gira su Linux. Per ogni video MP4, autodub_local estrae l’audio, trascrive il parlato, separa i diversi speaker, traduce il contenuto, genera una nuova voce sintetica per ogni parlante, clonandone il timbro vocale, e infine crea un nuovo MP4 con la traccia audio doppiata, mantenendo intatto il flusso video originale. Si tratta quindi di un doppiaggio automatico pensato per registrazioni come webinar, livestream, interviste, lezioni e riunioni, cioè contenuti in cui il sincronismo perfetto del labiale non è fondamentale.

L'uso di questo script non è solo una questione ideologica di indipendenza da servizi esterni o un modo per evitare abbonamenti: in molti casi è il modo più diretto per mantenere controllo, privacy e prevedibilità del flusso di lavoro.

La prima ragione è infatti la privacy. Se un video contiene conversazioni private, riunioni, lezioni interne o materiale che non si desidera caricare online, l’elaborazione locale è la scelta più naturale. Invece di spedire il contenuto a una piattaforma remota, si lavora direttamente sul proprio sistema.

La seconda ragione è il controllo. Quando si usa una pipeline locale, si possono vedere e conservare i file intermedi: trascrizione, diarizzazione (cioè la distinzione dei parlanti), traduzione, segmenti audio sintetizzati. Questo è importante perché consente di interrompere il processo, correggere a mano una traduzione problematica e poi riprendere il lavoro senza rifare tutto da capo. Nel caso di autodub_local, il supporto a checkpoint e resume è una parte esplicita del progetto.

Di contro, una pipeline locale richiede pazienza, un po’ di spazio su disco e un computer sufficientemente adatto, ma non impone un pagamento per ogni minuto elaborato. Se la GPU del proprio computer è idonea, lo script la usa automaticamente, riducendo drasticamente i tempi; altrimenti ricorre alla CPU.

La terza ragione è la trasparenza tecnica. In un servizio online si vede il risultato finale, ma raramente si ha piena visibilità di cosa sia successo in mezzo. In un progetto open source, invece, si può capire quali componenti sono usati, come sono configurati e dove intervenire se qualcosa va corretto o migliorato.

La qualità del doppiaggio dipende da molti fattori: qualità dell’audio di partenza, chiarezza degli speaker, lingua sorgente, lunghezza dei segmenti, terminologia specialistica, qualità della traduzione automatica e resa della sintesi vocale. Nei contenuti tecnici o medici, per esempio, è possibile che alcune frasi richiedano una revisione manuale della traduzione prima di arrivare a un risultato davvero pubblicabile.

(14 aprile 2026)

TTS gratuito (Text-to-Speech) basato su Web Speech API

Translate this article

Vedi anche: Nuove funzionalità di traduzione e sintesi vocale nel blog

Inserisci un testo nell'input sottostante e premi "Play" per ascoltarlo. Scegli la lingua e la voce usando il menù a tendina.

La qualità della voce può cambiare a seconda del browser e del sistema operativo che stai utilizzando.

1

1

Informativa sulla privacy

Il servizio TTS presente in questa pagina non comporta alcuno scambio di dati con il mio server: la conversione del testo in audio avviene interamente sul dispositivo dell’utente, sfruttando le funzionalità offerte dal browser utilizzato.

Tuttavia, alcuni browser – come Google Chrome e Microsoft Edge su sistemi Linux – effettuano la sintesi vocale inviando il testo ai rispettivi server (Google e Microsoft). In questi casi, eventuali implicazioni relative alla privacy dipendono esclusivamente dal comportamento del browser e dai fornitori dei relativi servizi, e non da questa pagina web. È bene sottolineare che altri browser, o gli stessi browser su sistemi operativi diversi, possono invece eseguire la sintesi vocale in modo completamente offline.

Non raccolgo né elaboro alcun dato relativo agli utenti o all’utilizzo del servizio TTS offerto su questo blog.

 

Normalize an audio file second by second in Bash, with FFmpeg

Translate this article

You usually don't need a script like the following. I just finished writing it. Its use makes sense for old video recordings with considerable volume changes.

The audio is normalized second by second instead of all at once. The script uses a maximum amplification value (35dB) to prevent every silence from becoming a din.

For this script to work, you must have "ffmpeg" and "sox" installed.

Happy hacking!

#!/bin/bash

input=input.mkv
output=output.mp4
audio=audio.wav
newaudio=combined.wav

ffmpeg -i "$input" -vn -ar 44100 -ac 2 "$audio"
ffmpeg -i "$audio" -f segment -segment_time 1 -c copy out%06d.wav
for f in out*.wav
do
    # detects volume in decibel
    MAX=$(ffmpeg -hide_banner -i "$f" -map 0:a -filter:a volumedetect -f null /dev/null 2>&1 | grep 'max_volume' | awk '{print $5}')
    # removes the minus sign (only if $MAX starts with a "-" (wildcard matching))
    if [[ $MAX == -* ]]; then MAX="${MAX:1}"; fi
    # set a maximum volume amplification
    if (( $(echo "$MAX > 35.0" | bc -l) )); then MAX="35.0"; fi
    echo $f" -> "$MAX
    ffmpeg -i $f -af "volume="$MAX"dB" max$f
done

# Before merging the audio files with sox, we need to set up an high max number of files to be concatenated
ulimit -n 16384 # https://www.spinics.net/lists/sox-users/msg00167.html
sox maxout*.wav $newaudio

rm *out*.wav
rm $audio

# now we replace the old audio with the new audio (https://superuser.com/a/1137613)
ffmpeg -i "$input" -i "$newaudio" -c:v copy -map 0:v:0 -map 1:a:0 "$output"
rm $newaudio

MP4 to DVD-Video in Bash

Translate this article

I sistemi GNU/Linux dispongono di diversi programmini per la creazione di DVD-Video, come DVD-Styler o DeVeDe, ad ogni modo possono esserci situazioni in cui sia preferibile un banalissimo script Bash per convertire un file MP4 (ad esempio un video scaricato da Internet) in un DVD-Video da vedere magari nel lettore DVD di casa.

Lo script seguente (testato su Linux Mint 17), rispetto ai programmi con interfaccia grafica, ha il vantaggio che, nella sua semplicità, permette di individuare eventuali errori o problemi nella creazione del DVD-Video, semplicemente controllando l'output generato.

GNU/Linux: load scsi devices (like a scanner) without rebooting

Translate this article

Su GNU/Linux, per usare un dispositivo scsi collegato dopo l'avvio del computer, devo riavviare il computer (operazione non sempre fattibile) oppure, più semplicemente, usare un apposito script, di cui ho trovato documentazione alla pagina: rescan-scsi-bus.sh - rescan the SCSI bus.

Link per download

Codice sorgente dello script

Rimuovere la protezione con password da un file pdf (unlock pdf, remove security from pdf)

Translate this article

Ho acquistato un libro, peraltro abbastanza costoso e alto (supera le mille pagine), con in allegato una copia integrale del libro stesso su CD in formato PDF, utile per eventuali ricerche. Perfetto!! Magari tutti gli editori facessero così...

Pages

Subscribe to Scripting