2021-02-19 11:08:13 +01:00
#!/bin/bash
# utilisation: bash transcript.sh MONFICHIER.wav
# auteur du script: tykayn contact@cipherbliss.com
2021-03-23 12:13:23 +01:00
if [ $1 ] ; then
file = $1
fi
2021-03-23 12:54:53 +01:00
FILE_NAME = $( basename $file .wav)
output_dir = "output"
if [ $2 ] ; then
output_dir = $2
fi
OUT_DIR = $( echo " $output_dir / $FILE_NAME " )
2021-02-19 11:08:13 +01:00
echo " ########### $( date) : conversion de fichier audio .WAV mono piste uniquement,
avec Vosk installé par pip3, et un modèle de textes en français."
echo " "
2021-03-23 12:13:23 +01:00
echo " ########### $( date) : fichier : $file : $1 "
2021-02-21 11:22:46 +01:00
2021-03-23 12:13:23 +01:00
#FOLDER_MODEL="fr" # disponibles: "fr" ou "en"
#ENABLE_SRT=false
ENABLE_SRT = true
2021-02-21 11:22:46 +01:00
FOLDER_MODEL = "fr"
# existence du modèle demandé
if [ -d " models/ $FOLDER_MODEL " ] ; then
echo " models/ $FOLDER_MODEL le modèle est bien présent. "
else
pwd
ls -l models
echo " "
echo " ########### $( date) : [ERREUR] le modèle de données dans models/ $FOLDER_MODEL n'existe pas, vérifiez son installation :C peut être avez vous oublié de faire une commande 'make' "
exit 1
fi
# existence du fichier demandé
if [ -f " $file " ] ; then
echo " $file exists. "
else
2021-03-23 12:13:23 +01:00
echo " ########### $( date) : [ERREUR] fichier introuvable: $file "
2021-02-21 11:22:46 +01:00
echo " ########### $( date) : [ERREUR] voici les fichiers disponibles dans input/converted_to_wav: "
2021-03-23 12:13:23 +01:00
echo " "
2021-02-21 11:22:46 +01:00
ls -l input/converted_to_wav
2021-03-23 12:13:23 +01:00
echo " "
2021-02-21 11:22:46 +01:00
echo " ########### $( date) : [ERREUR] le fichier $file n'existe PAS :C "
exit 1
fi
2021-02-19 11:08:13 +01:00
echo " "
2021-03-23 12:54:53 +01:00
2021-02-19 11:08:13 +01:00
mkdir output/$FILE_NAME
2021-03-23 12:13:23 +01:00
echo " convertir en sous titre ? $ENABLE_SRT "
if ( $ENABLE_SRT ) ; then
echo " ########### $( date) : conversion de la sortie en fichier de sous titres .srt "
python3 ./extract_srt.py " $file " > $OUT_DIR /5_output_$FILE_NAME .srt
else
echo " ########### $( date) : conversion de la sortie en divers fichiers marquant les temps et sans marquage "
python3 ./conversion_simple_fr.py " $file " > $OUT_DIR /0_output_$FILE_NAME .json
2021-02-19 11:08:13 +01:00
2021-03-23 12:13:23 +01:00
echo " "
echo " ########### $( date) : nettoyer la sortie "
jq .text $OUT_DIR /0_output_$FILE_NAME .json > $OUT_DIR /1_converted_$FILE_NAME .txt
2021-02-19 11:26:35 +01:00
2021-03-23 12:13:23 +01:00
sed 's/null//g' $OUT_DIR /1_converted_$FILE_NAME .txt > $OUT_DIR /2_without_nulls_$FILE_NAME .txt
sed 's/^ *//; s/ *$//; /^$/d' $OUT_DIR /2_without_nulls_$FILE_NAME .txt > $OUT_DIR /3_without_nulls_$FILE_NAME .txt
sed 's/\"//g' $OUT_DIR /3_without_nulls_$FILE_NAME .txt > $OUT_DIR /4_phrases_$FILE_NAME .txt
echo " ########### $( date) : OK "
echo " "
COUNT_LINES = $( cat $OUT_DIR /4_phrases_$FILE_NAME .txt | wc -l)
cat $OUT_DIR /4_phrases_$FILE_NAME .txt
echo " "
echo " ########### $( date) : lignes transcriptes $COUNT_LINES "
echo " ########### $( date) : conversion faite dans output/converted_out_without_nulls.txt "
echo " ########### $( date) : conversion de la sortie en pseudo fichier de sous titres "
perl clean.sh $OUT_DIR /0_output_$FILE_NAME .json > $OUT_DIR /5_phrases_min_sec_$FILE_NAME .txt
cat $OUT_DIR /5_phrases_min_sec.srt
2021-02-19 11:08:13 +01:00
2021-03-23 12:13:23 +01:00
fi
2021-02-19 11:26:35 +01:00
2021-02-19 11:08:13 +01:00
ls -l $OUT_DIR
echo " ########### $( date) : conversion faite "
exit 0