esup-pod

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Utilisation de l'auto-transcription dans Pod

Pour découper le fichier audio de pod et faire sa transcription, nous avons besoin de Sox, il faut donc installer les deux librairies suivantes :

  • (django_pod) pod@:/path/to/project/django_projects/pod$ sudo apt-get install sox

  • (django_pod) pod@:/path/to/project/django_projects/pod$ sudo apt-get install libsox-fmt-mp3

Il faut également installer le module python ffmpeg-normalize

  • (django_pod) pod@:/path/to/project/django_projects/pod$ pip install ffmpeg-normalize

L'ensemble du modèle peuvent être stockés dans /path/to/project/django_projects/transcription. Il convient de faire un sous-dossier par langue (I.E: fr, en etc.), et un sous-dossier par type de modèle (I.E: stt, vosk, etc.)

Par exemple, pour un modèle vosk français:

/path/to/project/django_projects/transcription/fr/vosk/vosk-model-fr-0.6-linto-2.2.0/

Les fichiers pour les modèles peuvent être téléchargés sur cette page https://alphacephei.com/vosk/models.

Par exemple pour le modèle français:

Il faut après avoir téléchargé le modèle, il faut le décompresser. Pour cela vous pouvez utiliser la librairie unzip:

  • (django_pod) pod@:/path/to/project/django_projects/pod$ sudo apt-get install unzip

  • (django_pod) pod@:/path/to/project/django_projects/pod$ unzip vosk-model-fr-0.6-linto-2.2.0.zip


Dans le fichier custom/settings-local.py, il suffit d’ajouter les paramètres suivant:

Pour Pod avec stt et vosk avec fr et en :


Bloc de code
USE_TRANSCRIPTION = True
TRANSCRIPTION_TYPE = "STT"
MODEL_PARAM = {
# le modèle stt
'STT': {
    'fr': {
         'model': "/path/to/project/Esup-django_projects/transcription/model_fr/stt/output_graph.tflite",
         'scorer': "/path/to/project/django_projects/transcription/model_fr/stt/kenlm.scorer",
     }
},
  # le modèle vosk
  'VOSK':{
    'fr': {
      'model': "/path/of/project/django_projects/transcription/model_fr/vosk/vosk-model-fr-0.6-linto-2.2.0",
    },
 ‘en’: {
      'model': "/path/of/project/django_projects/transcription/model_en/vosk/vosk-model-en-us-0.22",
    }
  }
}


Maintenant lors de l’upload d’une vidéo avec l’auto-transcription activée le modèle

...

Vosk sera utilisé pour effectuer la transcription.

Activer L’enrichissement du modèle vosk dans Pod:


Les modèles utilisés pour l’enrichissement du modèle peuvent être stockés dans /path/to/project/django_projects/compile-model


Il faut télécharger le modèle de compilation correspondant sur ce lien https://alphacephei.com/vosk/lm#update-process.

Par exemple pour le modèle français:

Il faut après avoir téléchargé le modèle de compilation, le décompresser. Pour cela vous pouvez utiliser la librairie unzip:

  • (django_pod) pod@:/path/to/project/django_projects/compile-model/fr$ sudo apt-get install unzip

  • (django_pod) pod@:/path/to/project/django_projects/compile-model/fr$ unzip vosk-model-fr-0.6-linto-2.2.0-compile.zip


Il faut seulement que la structure du dossier compile-model ressemble à cela:

...


(django_pod) pod@:/path/to/project/django_projects/compile-model

compile-model


Bloc de code
|--fr

...


|

...

   |--conf

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--data

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--db

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--exp

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--local

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--mfcc

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--steps

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--utils

...


|

...

   |   |...

...


|

...

   |

...


|

...

   |--cmd.sh

...


|

...

   |--compile-grapg.sh

...


|

...

   |--decode.sh

...


|

...

   |--dict.py

...


|

...

   |--path.sh

...

|   


|   
|--en

...





Maintenant il faut installer docker sur votre machine. (voir https://docs.docker.com/engine/install/debian/ ci besoin)

Après que docker soit installer créer un fichier entrypoint.sh et DockerFile dans un même dossier.

Copier le script suivant dans le fichier entrypoint.sh;

...


Bloc de code
#!/bin/bash

...


modelPath="$KALDI_ROOT/compile-model/$1"

...


cat "$KALDI_ROOT/tools/env.sh" > "$modelPath/path.sh"

...


cd $modelPath

...


/bin/bash -c "./compile-graph.sh"

...


/bin/bash -c "utils/build_const_arpa_lm.sh lm.gz data/lang_test data/lang_test_rescore"

...


Puis copier le code ci-dessous fait sur mesure afin d’enrichire un modèle dans le Fichier DockerFile, cela créera un container avec tout ce qu’il faut d’installer :

...

Bloc de code
## Build the DockerFile

...


# docker build --tag kaldi -f DockerFile .

...


##

...


## Example of manual execution of the Docker file

...


# sudo docker run -v ${PWD}/compile-model:/kaldi/compile-model -it kaldi

...


##

...


FROM debian:10

...


RUN apt-get update && apt-get install -y ca-certificates \

...


 && apt-get install -y \

...


 python3-pip

...

 git \

...

 \
 git \
 && apt-get install -y zlib1g-dev automake autoconf unzip wget sox gfortran libtool subversion python2.7 nano libfst-tools \

...


 && apt-get clean

...


RUN python3 --version

...


ENV KALDI_ROOT="/kaldi"

...


RUN git clone https://github.com/kaldi-asr/kaldi.git $KALDI_ROOT

...


WORKDIR $KALDI_ROOT"/tools"

...


RUN bash $KALDI_ROOT"/tools/extras/check_dependencies.sh"

...


RUN touch $KALDI_ROOT"/tools/python/.use_default_python"

...


RUN bash $KALDI_ROOT"/tools/extras/install_mkl.sh"

...


RUN apt-get install gfortran sox

...


RUN make -j $(nproc)

...


RUN pip3 install phonetisaurus

...


RUN bash $KALDI_ROOT"/tools/extras/install_opengrm.sh"

...


RUN make

...


RUN bash $KALDI_ROOT"/tools/extras/install_irstlm.sh"

...


RUN apt-get install gawk

...


RUN bash $KALDI_ROOT"/tools/extras/install_srilm.sh" "unkown" "unkown" "unkown"

...


RUN cd $KALDI_ROOT"/src" && ./configure --shared

...


RUN cd $KALDI_ROOT"/src" && make depend -j $(nproc)

...


RUN cd $KALDI_ROOT"/src" && make -j $(nproc)

...


RUN cd $KALDI_ROOT"/src/fstbin" && make

...


RUN echo "export PATH="$KALDI_ROOT"/src/fstbin:\$PATH" >> $KALDI_ROOT"/tools/env.sh"

...


RUN cd $KALDI_ROOT"/src/lmbin" && make

...


RUN echo "export PATH="$KALDI_ROOT"/src/lmbin:\$PATH" >> $KALDI_ROOT"/tools/env.sh"

...


RUN cd $KALDI_ROOT"/src/tree" && make

...


RUN echo "export PATH="$KALDI_ROOT"/src/tree:\$PATH" >> $KALDI_ROOT"/tools/env.sh"

...


RUN cd $KALDI_ROOT"/src/bin" && make

...


RUN echo "export PATH="$KALDI_ROOT"/src/bin:\$PATH" >> $KALDI_ROOT"/tools/env.sh"

...


COPY entrypoint.sh /entrypoint.sh

...


WORKDIR $KALDI_ROOT

...


ENTRYPOINT ["/entrypoint.sh"]

...


Après avoir copié et créer les deux fichier Dockerfile et entrypoint.sh il suffit de lancer la commande ci-dessous en étant dans la même dossier que les fichiers précédemment mentionnés.

  • docker build --tag kaldi -f DockerFile .


Pour finir il faut activer l’enrichissement du modèle vosk dans une application pod, pour cela il suffit d’ajouter dans le fichier custom/settings-local.py les paramètres suivant:

...


Bloc de code
ACTIVE_ENRICH = True

...


MODEL_COMPILE_DIR = "/path/to/project/django_projects/compile-model"

...