# sboby - Trascrivere una registrazione audio *Sbobinare, parola amara.* ![sboby](sboby.jpg) Il metodo gramo, passo passo ma così educazionale che ti sale la gioia. Feel free di saltare le parti ovvie o di arredare il tunnel come meglio si crede. Funziona con Debian 11 stable. # Installare il software che verrà utilizzato sudo apt install python3 ffmpeg unzip mediainfo Lanciare un terminale e creare una directory dove lavorare con il file ad esempio: **audio.mp3** mkdir ~/sbobina cd ~/sbobina/ audio.mp3 # Convertire il file in mp4 ffmpeg -i audio.mp3 audio.mp4 audio.mp4 # Se il file è molto lungo *es: più di due ore e mezzo* Sarà utile spezzarlo in più parti, sennò lo script potrebbe fallire perché gli finisce la memoria, ma non gliene faremo una colpa. Sapere quanto dura: mediainfo audio.mp4 | grep Duration Duration: 2 h 00 min In questo esempio il file esattamente dura due ore e lo si vuole dividere in due parti di un'ora ciascuna: ffmpeg -ss 00:00:00 -t 01:00:00 -i audio.mp4 -vcodec copy -acodec copy audio-0-1.mp4 ffmpeg -ss 01:00:00 -t 01:00:00 -i audio.mp4 -vcodec copy -acodec copy audio-1-2.mp4 audio-0-1.mp4 audio-1-2.mp4 # Trascrivere i file Per trascrivere (o sbobinare), si installeranno videogrep e vosk pip3 install videogrep pip3 install vosk # Modulo lingua italiana per Vosk Scaricare e scompattare il modulo lingua italiana per Vosk https://alphacephei.com/vosk/models al momento la versione da usare è la small-it-0.22 (48MB) unzip vosk-model-small-it-0.22.zip # Trascrivere la prima ora: videogrep --input audio1.mp4 --model vosk-model-small-it-0.4/ --transcribe Durata della conversione: circa 15 minuti. La durata dipenderà dalla potenza del PC usato. la seconda ora: videogrep --input audio2.mp4 --model vosk-model-small-it-0.4/ --transcribe Si ottengono due JSON file audio1.json audio2.json I JSON file sono comodissimi dal punto di vista di una macchina. Se lo scopo della trascrizione è editare il video automaticamente usando videogrep, si può procedere. Tra i link c'è il tutorial di videogrep. Se lo scopo è fare dei sottotitoli, occorrerà convertire da JSON in SRT o XML. Ma in questo caso siamo umani, si vuole ottenere del testo semplice da allegare alla registrazione per ricerca e archivio (and for great justice). Here comes Bomboclat, il quale ha scritto questo piccolo script che converte (guarda un po') un JSON in un SRT. # Convertire da JSON a SRT Ecco lo script [json2srt](json2srt.py) Per l'utilizzo lasciamo la parola a Bomboclat, cui rendiamo merito: `sudo apt install python3-venv` *nella tua home dai questo comando* `python3 -m venv json_to_srt` *ti crea una cartella json_to_srt con dentro python3 fatto questo comando ne dai un altro per attivarlo* `source ~/json_to_srt/bin/activate` *a sto punto hai lo script che ora ti passo aggiornato ha ancora un difetto, le ore sono espresse con una cifra percio' anziche' scrivere per esempio: 00:00:00,000 ore minuti secondi, millesimi scrive solo 0:00:00,000 che si risolve facile aggiungendo lo 0 a mano nella stringa finale ma per ora lasciamo perdere sto dettaglio* `python json2srt.py -i un_file.json -o il_suo_output.srt` A me mi funziona anche solo mettendo lo script in ~/bin e dandogli i permessi di esecuzione: mv json2srt.py ~/bin/ chmod 755 ~/bin/json2srt.py Però è anche vero che non si dice: "a me mi", dunque anche il vostro chilometraggio potrebbe variare. Una volta installato lo script, si può fare la conversione da JSON a SRT. Tornando al nostro esempio: json2srt.py -i audio1.json -o audio1.srt json2srt.py -i audio2.json -o audio2.srt Ora si potranno ricongiungere i due file, finalmente. cat audio1.srt audio2.srt > audio.srt E così ottenere l'agognato file: **audio.srt** # Il file audio.SRT Un file SRT è testo puro e si presenta così: 1 0:00:01,680 --> 0:00:06,810 bla bla bla bla, bla bla bla 2 0:00:08,372 --> 0:00:13,830 bla bla bla bla e ancora bla cioè: * Numeroriga * Timecode * Testo * Spazio È già umanamente leggibile, ma per poterlo pubblicare come testo semplice si potranno togliere le righe che contengono, come espressioni regolari, Numeroriga e Timecode. sed '/[0-9]/d' audio.srt > trascrizione.txt Ed eventualmente anche levare la riga vuota! sed '/^$/d' trascrizione.txt > wallof.txt Poi rileggere, riascoltare e correggere. # Share and enjoy Shoutz a Debian, ffmpeg, videogrep e vosk, Bomboclat per lo script, ilLobo per aver scoperto videogrep, dan che ha scritto, e Shoutz a te che leggi, possa la sbobinatura esserti lieve. This is a: DIWO (Do It With Others) **WE ARE NOT MEN! WE ARE DIWO!** # Links Debian GNU/Linux Free OS https://www.debian.org/ ffmpeg https://ffmpeg.org/ Videogrep Tutorial https://lav.io/notes/videogrep-tutorial/ Vosk speech recognition toolkit https://alphacephei.com/vosk/ Vosk models https://alphacephei.com/vosk/models *bye bye sboby*