Trascrivere una registrazione audio
Go to file
2024-09-04 16:16:18 +02:00
allunaggio.mp3 le grand remake 2024-09-04 16:16:18 +02:00
json2srt.py scripto 2022-06-06 00:43:04 +02:00
README.md le grand remake 2024-09-04 16:16:18 +02:00
sboby-custom-action.png le grand remake 2024-09-04 16:16:18 +02:00
sboby.jpg fotina 2022-06-06 00:43:20 +02:00

sboby - Trascrivere una registrazione audio

"Sbobinare, parola amara". Anonimo, De Labore Bastardo. Senzatempo ed.

sboby

Sbobinare - v. tr. riportare per iscritto il contenuto di discorsi, interviste, conferenze registrati su nastro magnetico.

Si usa raramente il nastro magnetico, ma si lavora comunque a comporre un testo da un audio, un file digitale come WAV, OGG o MP3.

Di seguito una breve guida pratica per implementare la trascrizione automatica di un audio sul proprio Pc, funzionante anche senza collegamento internet perché il modello linguistico verrà scaricato e usato in locale, in autonomia.

Nota: La trascrizione sarà esatta circa al 90% e si raccomanda dunque, prima di pubblicare, di ascoltare l'audio leggendo la trascrizione ottenuta in modo da poter correggere gli errori. Ad esempio per individuare delle frasi di senso compiuto, ma che non sono mai state dette, cioé le cosiddette: "allucinazioni". Anche i nomi propri di persona non possono venir riconosciuti e vengono approssimati. Certamente una dettatura scandita nel microfono otterrà risultati migliori di un audio ambientale mentre in sottofondo friggono mistiche patatine fritte. E dunque seppure riascoltar si deve, il testo ricavato autonomaticagigamente risulterà una buona base e andrà ad alleviare il lavoraccio di trascrizione.

tl;dr non ti fidare e riascolta l'audio mentre rileggi.

Useremo il Vosk speech recognition toolkit: https://alphacephei.com/vosk/

Debian GNU/Linux OS libero: https://www.debian.org/

Un file audio: "allunaggio.mp3" che verrà usato negli esempi è a disposizione.

Sono supportati sia MP3 che WAV che OGG e AAC.

Elenco delle operazioni

Partiamo da GNU/Linux, Debian 12 (stabile).

nota: qualsiasi OS con un ambiente python3 funzionante andrà bene, questa guida usa Debian 12.

Andiamo a installare python e altre cose utili:

sudo apt install python3 python3-full python3-venv ffmpeg unzip mediainfo

Creiamo la cartella: "sboby" e al suo interno, la sotto-cartella: "vosk".

mkdir -p ~/sboby/vosk

Entriamo nella cartella sboby/vosk/.

cd ~/sboby/vosk/

Scarichiamo il modello, anche https://en.wikipedia.org/wiki/Large_language_model, vosk-italiano, circa 2GB:

wget https://alphacephei.com/vosk/models/vosk-model-it-0.22.zip

Altre lingue sono scaricabili alla pagina dei Vosk models.

Scompattiamo il modello appena scaricato:

unzip vosk-model-it-0.22.zip

Opzionale: possiamo ora cancellare il file zip.

rm vosk-model-it-0.22.zip

Usciamo dalla cartella ~/sboby/vosk/

cd

Creiamo un ambiente virtuale per Python

python3 -m venv /home/$USER/sboby

Usiamo Python per scaricare e installare wheel (una libreria necessaria) e vosk-transcriber:

./sboby/bin/pip3 install wheel

./sboby/bin/pip3 install vosk

Ora possiamo effettuare la prima trascrizione, useremo ad esempio l'audio allunaggio.mp3.

Prima, vediamo quanto dura:

mediainfo allunaggio.mp3 | grep Duration

Duration: 1 min 16 s

A seconda delle risorse disponibili, varierà il tempo di elaborazione. Per un Pc di media potenza, un audio di 1 ora, potrebbe impiegare circa 1 ora.

Possiamo ora invocare il programma: "vosk-transcriber", indicando (-i) quale audio sbobinare, che modello usare (--model) e dove (-o) appoggiare il testo.

~/sboby/bin/vosk-transcriber -i ~/sboby/allunaggio.mp3 --model /share/software/vosk/vosk-model-it-0.22/ -o ~/sboby/allunaggio.txt

Possiamo anche ottenere la trascrizione in formato testo sottotitolo (SRT) con time-code:

~/sboby/bin/vosk-transcriber -i ~/sboby/allunaggio.mp3 --model /home/$USER/sboby/vosk/vosk-model-it-0.22/ -t srt -o ~/sboby/allunaggio.srt

Opzionale: Possiamo mettere tutto nello script sboby.sh in ~/bin/ che renderemo eseguibile (chmod 755 ~/bin/sboby.sh).

#!/bin/sh ~/sboby/bin/vosk-transcriber -i ${1+"$@"} --model ~/sboby/vosk/vosk-model-it-0.22/ -o ${1+"$@"}.txt ; sleep 5s ; ~/sboby/bin/vosk-transcriber -i ${1+"$@"} --model ~/sboby/vosk/vosk-model-it-0.22/ -t srt -o ${1+"$@"}.srt echo 'bye bye sboby'

In modo da ottenere la trascrizione tramite il semplice comando: sboby.sh [FILE]..

sboby.sh allunaggio.mp3

Infine, se usiamo XFCE4 come ambiente scrivania, si potrà inserire una custom action in Thunar da usare cliccando col tasto destro sull'audio:

/home/$USER/bin/sboby.sh %f

sboby custom action

Share and enjoy

"Dove si smangiuca, dio mi conduca. Dove si lavora, non venga mai l'ora". Skiantos, 2009, Una vita spesa a skivar la fresa.

Commenti? Kudos? Consigli? Vaffa? Grazie! -- dan [at] autistici [dot] org

Prima versione: 2022-06-06

Ultimo aggiornamento: 2024-09-04

bye bye sboby