From 3a60202b9962d433ecedae66350e3232ce9f85d6 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Fri, 19 Feb 2021 11:08:13 +0100 Subject: [PATCH] rename some files, update readme --- .gitignore | 7 ++++--- Makefile | 2 +- README.md | 7 ++++--- convert_from_wav.sh | 29 ----------------------------- install.sh | 2 +- mp3_to_wav.sh | 2 +- ogg_to_wav.sh | 2 +- transcript.sh | 38 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 50 insertions(+), 39 deletions(-) delete mode 100644 convert_from_wav.sh create mode 100644 transcript.sh diff --git a/.gitignore b/.gitignore index 18e8a2b..f3f4f1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /models/fr/* !/input/demo.wav /input/converted_to_wav/*.wav -/output/*.txt -/output/*.csv -/output/*.srt +/output/**/*.txt +/output/**/*.csv +/output/**/*.json +/output/**/*.srt diff --git a/Makefile b/Makefile index a54773d..7f8ebe9 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,6 @@ default: install install: bash install.sh convert: - bash convert_from_wav.sh $(args) + bash transcript.sh $(args) srt: perl clean.sh $(args) > output/clean.srt diff --git a/README.md b/README.md index 99c4e38..2964b6d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ sudo apt install jq python3-pip git ffmpeg git clone https://forge.chapril.org/tykayn/transcription.git && cd transcription ``` -* installer vosk via le MakeFile, nécessite python3 pip. une fois dans votre dossier de transcription fraîchement cloné, faites la commande: +* installer vosk via le MakeFile, vérifiez les prérequis ci-dessus. une fois dans votre dossier de transcription fraîchement cloné, faites la commande: ``` make ``` @@ -34,10 +34,11 @@ make convert file=input/demo.wav n'oubliez pas l'argument `file=` -* la sortie texte de la transcription se trouve dans output `output/converted_out_without_nulls.txt` et devrait être affichée à la fin de l'exécution du script. +* la sortie texte de la transcription se trouve dans output `output/demo/4_phrases.txt` et devrait être affichée à la fin de l'exécution du script. +Chaque fichier transcrit a un sous-dossier de son nom dans le dossier output. Ainsi, pour la démo qui se trouve dans `input/demo.wav`, les fichiers de transcription sont dans `output/demo/` # Précisions -* vosk est capable de fournir d'autres informations comme la seconde de début et de fin de la phrase détectée. Cela pourrait être utile pour produire des fichiers de sous titre. +* vosk est capable de fournir d'autres informations comme la seconde de début et de fin de la phrase détectée. Cela pourrait être utile pour produire des fichiers de sous titre. Cela a été ajouté dans un script perl grâce à @r_a@framapiaf.org * les locuteurs ne sont pas détectés, toutes les phrases sont dites sans cette précision. * si deux personnes parlent rapidement l'une après l'autre, vosk considèrera qu'il s'agit d'une seule phrase. * les transcriptions peuvent être faites pour plusieurs langues, il faudra modifier le fichier "conversion_simple_fr.py" si on veut autre chose que du Français. diff --git a/convert_from_wav.sh b/convert_from_wav.sh deleted file mode 100644 index eb764d7..0000000 --- a/convert_from_wav.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# utilisation: bash convert_from_wav.sh MONFICHIER.wav -# auteur du script: tykayn contact@cipherbliss.com - -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 " " -echo "########### $(date) : fichier : $file" -echo " " -python3 ./conversion_simple_fr.py "$file" > output/converted_output.txt - -echo " " -echo "########### $(date) : nettoyer la sortie " -jq .text output/converted_output.txt > output/converted_cleaned_with_null.txt - -sed 's/null//g' output/converted_cleaned_with_null.txt > output/converted_out_without_nulls.txt -sed 's/^ *//; s/ *$//; /^$/d' output/converted_out_without_nulls.txt > output/converted_out_without_nulls2.txt -sed 's/\"//g' output/converted_out_without_nulls2.txt > output/converted_out_without_nulls3.txt -echo "########### $(date) : OK " -echo " " -COUNT_LINES=$(cat output/converted_out_without_nulls3.txt |wc -l) -cat output/converted_out_without_nulls.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 fichier de sous titres" - perl clean.sh output/converted_output.txt > output/output.srt - -exit 0 diff --git a/install.sh b/install.sh index fe0fb5c..7536d8c 100644 --- a/install.sh +++ b/install.sh @@ -1,5 +1,5 @@ #!/bin/bash -# utilisation: bash convert_from_wav.sh MONFICHIER.wav +# utilisation: bash transcript.sh MONFICHIER.wav # auteur du script: tykayn contact@cipherbliss.com green=`tput setaf 2` cyan=`tput setaf 4` diff --git a/mp3_to_wav.sh b/mp3_to_wav.sh index 7a75235..f10e2f6 100644 --- a/mp3_to_wav.sh +++ b/mp3_to_wav.sh @@ -1,5 +1,5 @@ #!/bin/bash -# utilisation: bash convert_from_wav.sh MONFICHIER.wav +# utilisation: bash transcript.sh MONFICHIER.wav # auteur du script: tykayn contact@cipherbliss.com echo "########### conversion des fichiers audio .ogg placés dans le dossier input, vers du wav mono-piste uniquement" diff --git a/ogg_to_wav.sh b/ogg_to_wav.sh index 52291ec..45484f7 100644 --- a/ogg_to_wav.sh +++ b/ogg_to_wav.sh @@ -1,5 +1,5 @@ #!/bin/bash -# utilisation: bash convert_from_wav.sh MONFICHIER.wav +# utilisation: bash transcript.sh MONFICHIER.wav # auteur du script: tykayn contact@cipherbliss.com echo "########### conversion des fichiers audio .ogg dans le dossier input, vers du wav mono-piste uniquement, diff --git a/transcript.sh b/transcript.sh new file mode 100644 index 0000000..1d8a25e --- /dev/null +++ b/transcript.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# utilisation: bash transcript.sh MONFICHIER.wav +# auteur du script: tykayn contact@cipherbliss.com + +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 " " +echo "########### $(date) : fichier : $file" +echo " " +FILE_NAME=$(basename $file .wav) +OUT_DIR=$( echo "output/$FILE_NAME") +mkdir output/$FILE_NAME + +python3 ./conversion_simple_fr.py "$file" > $OUT_DIR/0_output.json + + +echo " " +echo "########### $(date) : nettoyer la sortie " +jq .text $OUT_DIR/0_output.json > $OUT_DIR/1_converted.txt + +sed 's/null//g' $OUT_DIR/1_converted.txt > $OUT_DIR/2_without_nulls.txt +sed 's/^ *//; s/ *$//; /^$/d' $OUT_DIR/2_without_nulls.txt > $OUT_DIR/3_without_nulls.txt +sed 's/\"//g' $OUT_DIR/3_without_nulls.txt > $OUT_DIR/4_phrases.txt +echo "########### $(date) : OK " +echo " " +COUNT_LINES=$(cat $OUT_DIR/phrases.txt |wc -l) +cat $OUT_DIR/4_phrases.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 fichier de sous titres" +perl clean.sh $OUT_DIR/0_output.json > $OUT_DIR/5_phrases.srt +cat $OUT_DIR/5_phrases.srt + +ls -l $OUT_DIR + +echo "########### $(date) : conversion faite " +exit 0