Sommaire
Si vous souhaitez déporter la transcription sur le serveur d'encodage, les commandes suivantes sont à effectuer sur le serveur d'encodage (voir la page Déporter l'encodage sur un ou plusieurs serveurs en Pod V3)
Utilisation de l'auto-transcription dans Pod
...
Info |
---|
À présent, vous pouvez choisir d’installer un des 2 modèles STT ou Vosk. Il est toutefois conseiller conseillé d'utiliser Vosk. |
STT (Coqui Ai)
Les fichiers peuvent être téléchargés sur le site du projet : https://coqui.ai/models
Il faut installer l'application dans l'environnement virtuel de Pod (stt==1.4.0)
Bloc de code | ||
---|---|---|
| ||
(django_pod3)pod@podv3 | ||
Bloc de code | ||
pod@podv2:/usr/local/django_projects/podv3$ pip3 install stt |
Les fichiers peuvent être téléchargés sur le site du projet : https://github.com/coqui-ai/STT-models
Bloc de code |
---|
pod@podv3:/usr/local/django_projects/transcription/model_fr/stt$ ll -rw-r--r--transcription/model_fr/stt$ ll -rw-r--r-- 1 pod pod 248 nov. 14 21:14 alphabet.txt -rw-r--r-- 1 pod pod 189372825 248 nov. 1514 0921:1214 modelalphabet.pbmmtxt -rw-r--r-- 1 pod pod 1007576678189372825 nov. 15 0809:42 fr-cvfr-2-12 model.pbmm -rw-r--r-- 1 pod pod 1007576678 nov. 15 08:42 fr-cvfr-2-prune-kenlm.scorer -rw-r--r-- 1 pod pod 47500492 nov. 15 08:54 model.tflite |
Dans le fichier custom/settings-local.py, il suffit d’ajouter les paramètres suivant:
Pour Pod à partir de la version 3 avec fr et en :
Bloc de code | ||
---|---|---|
| ||
# Transcription USE_TRANSCRIPTION = True ## Transcription use # * STT # * VOSK TRANSCRIPTION_TYPE = "STT" # Paramétrage des modèles # * Pour télécharger les Modèles STT : https://coqui.ai/models TRANSCRIPTION_MODEL_PARAM = { # les modèles Stt 'STT': { 'fr': { 'model': "/usr/local/django_projects/transcription/model_fr/stt/model.pbmm", 'scorer': "/usr/local/django_projects/transcription/model_fr/stt/fr-cvfr-2-prune-kenlm.scorer", } } } |
...
Pour ajouter un modèle d'un autre languagelangage, ajouter une entrée comme l'exemple ci-dessous, fait pour le language langage Anglais "en" :
Bloc de code | ||
---|---|---|
| ||
# Paramétrage des modèles
# * Pour télécharger les Modèles STT : https://coqui.ai/models
TRANSCRIPTION_MODEL_PARAM = {
# les modèles Stt
'STT': {
'fr': {
'model': "/usr/local/django_projects/transcription/model_fr/stt/model.pbmm",
'scorer': "/usr/local/django_projects/transcription/model_fr/stt/fr-cvfr-2-prune-kenlm.scorer",
},
'en': {
'model': "/usr/local/django_projects/transcription/model_en/stt/model.pbmm",
'scorer': "/usr/local/django_projects/transcription/model_en/stt/kenlm.scorer",
}
}
} |
Pour tester
...
la transcription en ligne de commande
Bloc de code | ||
---|---|---|
| ||
(django_pod)$> python manage.py shell
Python 3.7.3
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> video_id = 1234
>>> from pod.video import transcript
>>> transcript.main_threaded_transcript(video_id) |
Vosk
l faut installer l'application dans l'environnement virtuel de Pod (vosk==0.3.45)
Bloc de code | ||
---|---|---|
| ||
(django_pod3)pod@podv3:/usr/local/django_projects/podv3$ pip3 install vosk |
Les fichiers pour les modèles peuvent Les fichiers pour les modèles peuvent être téléchargés sur cette page : https://alphacephei.com/vosk/models.
...
Bloc de code | ||
---|---|---|
| ||
(django_podpod3) pod@:/path/to/project/django_projects/transcription/fr/vosk/$ wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip |
...
Bloc de code | ||
---|---|---|
| ||
(django_podpod3) pod@:/path/to/project/django_projects/pod$transcription/fr/vosk/$ sudo apt-get install unzip (django_podpod3) pod@:/path/to/project/django_projects/pod$/transcription/fr/vosk/$ 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 suivants (a préciser egalement sur les frontaux pour qu'il puisse lister les langue/model de dispo depuis la 3.3.1) :
Pour Pod avec Vosk en fr :
Bloc de code | ||
---|---|---|
| ||
# Transcription USE_TRANSCRIPTION = True ## Transcription use # * STT # * VOSK TRANSCRIPTION_TYPE = "VOSK" # Paramétrage des modèles # * Pour télécharger les Modèles Vosk : https://alphacephei.com/vosk/models TRANSCRIPTION_MODEL_PARAM = { # les modèles Vosk 'VOSK':{ 'fr': { 'model': "/path/of/project/django_projects/transcription/model_fr/vosk/vosk-model-fr-0.6-linto-2.2.0", } } } |
...
Pour ajouter un modèle d'un autre languagelangage, ajouter une entrée comme l’exemple ci-dessous, fait pour le language langage Anglais "en" :
Bloc de code | ||
---|---|---|
| ||
# Paramétrage des modèles # * Pour télécharger les Modèles Vosk : https://alphacephei.com/vosk/models TRANSCRIPTION_MODEL_PARAM = { # 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", } } } |
...
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.
...
Bloc de code | ||
---|---|---|
| ||
(django_podpod3) pod@:/path/to/project/django_projects/compile-model/fr$ wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0-compile.zip |
...
Bloc de code | ||
---|---|---|
| ||
(django_podpod3) pod@:/path/to/project/django_projects/compile-model/fr$ sudo apt-get install unzip (django_podpod3) 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_podpod3) pod@:/path/to/project/django_projects/compile-model
...
Maintenant il faut installer docker sur votre machine. (voir https://docs.docker.com/engine/install/debian/ ci si besoin)
Après que docker soit installé, créer un fichier entrypoint.sh et DockerFile dans un même dossier.
...
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 \ && 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 créé les deux fichier fichiers 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.
...
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 suivants :
...
language | py |
---|
...
le fichier custom/settings-local.py les paramètres suivants :
Bloc de code | ||
---|---|---|
| ||
ACTIVE_ENRICH = True
MODEL_COMPILE_DIR = "/path/to/project/django_projects/compile-model" |
Whisper (v3.5.0)
Sur les encodeurs :
Bloc de code | ||
---|---|---|
| ||
pip install openai-whisper |
ou si vous souhaitez bénéficier des derniers commits
Bloc de code | ||
---|---|---|
| ||
pip install git+https://github.com/openai/whisper.git |
Exemple de configuration du custom/settings_local :
Bloc de code | ||
---|---|---|
| ||
TRANSCRIPTION_TYPE = "WHISPER"
TRANSCRIPTION_MODEL_PARAM = {
'WHISPER':{
'fr': {
'model': "small",
'download_root': "/pod-transcription/transcription/whisper/",
},
'en': {
'model': "small",
'download_root': "/pod-transcription/transcription/whisper/",
}
}
}
|
Voir détails ici pour le choix du modèle
Le small n'est pas plus gourmand que vosk et est déjà performant
...