From f5d4a76db990d0ef2f4d1263a75c1b07c60ba2b0 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 7 Mar 2023 11:45:43 +0100 Subject: [PATCH] add patch from Damien.Allain --- conversion_simple_fr.py | 17 ++++++++++++----- install.sh | 17 +++++++++-------- transcript.sh | 2 +- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/conversion_simple_fr.py b/conversion_simple_fr.py index 69c3126..2fbb3cc 100755 --- a/conversion_simple_fr.py +++ b/conversion_simple_fr.py @@ -5,18 +5,25 @@ import sys import os import wave +modelDir=os.path.dirname(sys.argv[0])+"/models/fr" + SetLogLevel(0) -if not os.path.exists("models/fr"): - print ("Please download the model from https://alphacephei.com/vosk/models and unpack as 'models' in the current folder.") +if not os.path.exists(modelDir): + print ("Please download the model from https://alphacephei.com/vosk/models and unpack as '{}'.".format(modelDir)) exit (1) wf = wave.open(sys.argv[1], "rb") -if wf.getnchannels() != 1 or wf.getsampwidth() != 2 or wf.getcomptype() != "NONE": - print ("Audio file must be WAV format mono PCM.") +framerate=wf.getframerate() +nchannels=wf.getnchannels() +sampwidth=wf.getsampwidth() +comptype=wf.getcomptype() +if framerate < 16000 or nchannels != 1 or sampwidth != 2 or comptype != "NONE": + print ("Audio file has : {} Hz sample rate, {} channels, {} byte sample width and {} compression type".format(framerate, nchannels, sampwidth, comptype)) + print ("when 16000 Hz sample rate, 1 channel, 2 byte sample width and NONE compression type are required") exit (1) -model = Model("models/fr") +model = Model(modelDir) rec = KaldiRecognizer(model, wf.getframerate()) while True: diff --git a/install.sh b/install.sh index 14e787e..3faac8b 100755 --- a/install.sh +++ b/install.sh @@ -26,23 +26,24 @@ echo -e " ${reset}" pip3 -v install vosk echo "${green}########### récupération du modèle de reconnaissance en Français sous licence aGPL, taille: 1.6Go. Choix des modèles disponibles: https://alphacephei.com/vosk/models ${reset}" echo " " - mkdir -p models/fr + mkdir -p models echo -e "${green}########### Procéder au téléchargement du modèle Français (1.6go) pour transcrire les textes ?${reset} (écrivez o pour oui et faites entrée pour valider) ${reset}" read proceed # les autres modèles sont ici https://alphacephei.com/vosk/models if [[ $proceed == o* ]]; then echo "C'est parti." - if [ ! -f "vosk-model-fr-0.6-linto-2.2.0.zip" ]; then - wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip + f="vosk-model-fr-0.6-linto-2.2.0.zip" + if [ "x`find $f -printf %s`" != x1582884866 ]; then + wget https://alphacephei.com/vosk/models/$f echo -e "${green}########### téléchargement du modèle OK ${reset}" - unzip vosk-model-fr-0.6-linto-2.2.0.zip - mv vosk-model-fr-0.6-linto-2.2.0 models/fr - echo -e "${green}########### décompression du modèle en Français OK ${reset}" - ls -l models/fr else - echo "fichier zip vosk-model-fr-0.6-linto-2.2.0.zip déjà présent" + echo "fichier zip $f déjà présent" fi + unzip $f + mv vosk-model-fr-0.6-linto-2.2.0 models/fr + echo -e "${green}########### décompression du modèle en Français OK ${reset}" + ls -l models/fr else echo -e "${green}########### vous n'avez pas souhaité télécharger le modèle ${reset}" echo -e "${green}########### fin de l'installation sans télécharger de modèle de langue ${reset}" diff --git a/transcript.sh b/transcript.sh index 2088032..241600d 100755 --- a/transcript.sh +++ b/transcript.sh @@ -77,7 +77,7 @@ else fi echo " " -mkdir output/$FILE_NAME -p +mkdir -p "$OUT_DIR" echo " convertir en sous titre ? $ENABLE_SRT" if ($ENABLE_SRT) ; then echo "########### $(date) : conversion de $file ,sortie en fichier de sous titres .srt"