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.

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)

Il faut installer l'application dans l'environnement virtuel de Pod (stt==1.4.0)

Bloc de code
titleinstallation de STT
(django_pod3)pod@podv3:/usr/
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-prune-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

les fichier peuvent être téléchargé sur le site du projet: https://coqui.ai/models

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
languagepy
# 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
languagepy
# 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
languagebash
(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

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:

l faut installer l'application dans l'environnement virtuel de Pod (vosk==0.3.45)

Bloc de code
titleinstallation de VOSK
Bloc de code
languagebash
(django_podpod3) pod@pod@podv3:/pathusr/to/projectlocal/django_projects/transcription/fr/vosk/$ wget podv3$ pip3 install vosk

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 Après avoir téléchargé le modèle, il faut le décompresser. Pour cela vous pouvez utiliser la librairie unzip :

Bloc de code
languagebash
(django_podpod3) pod@:/path/to/project/django_projects/pod$ sudo apt-get install unzip
(django_pod) pod@:/path/to/project/django_projects/pod$ unzip vosk-/transcription/fr/vosk/$ wget https://alphacephei.com/vosk/models/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 :

Pour Pod avec Vosk en fr Après avoir téléchargé le modèle, il faut le décompresser. Pour cela vous pouvez utiliser la librairie unzip :

Bloc de code
languagepybash
(django_pod3) pod@:/path/to/project/django_projects/transcription/fr/vosk/$ sudo apt-get install unzip
(django_pod3) pod@:/path/to/project/django_projects/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
languagepy
# Transcription
USE_TRANSCRIPTION = True

## Transcription use
# * STT
# * VOSK
TRANSCRIPTION_TYPE # 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
languagepy
# 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",
    }
  }
}

...

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.

[OPTIONNEL] Activer

...

l’enrichissement du modèle vosk

...

dans Pod

En installant les modèles de compilation vous pourrez contribuer à l'enrichissement des modèles.

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
languagebash
(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
languagebash
(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
titleDockerFile
## 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$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/checkinstall_dependenciesmkl.sh"
RUN touch apt-get install gfortran sox
RUN make -j $(nproc)
RUN pip3 install phonetisaurus
RUN bash $KALDI_ROOT"/tools/pythonextras/.use_default_python"install_opengrm.sh"
RUN make
RUN bash $KALDI_ROOT"/tools/extras/install_mklirstlm.sh"
RUN apt-get install gfortran soxgawk
RUN make -j $(nproc)
RUN pip3 install phonetisaurus
RUN bash $KALDI_ROOT"/tools/extras/install_opengrmsrilm.sh" "unkown" "unkown" "unkown"
RUN make cd $KALDI_ROOT"/src" && ./configure --shared
RUN bashcd $KALDI_ROOT"/tools/extras/install_irstlm.sh"
RUN apt-get install gawk
RUN bashsrc" && make depend -j $(nproc)
RUN cd $KALDI_ROOT"/tools/extras/install_srilm.sh" "unkown" "unkown" "unkown"
RUN cd src" && make -j $(nproc)
RUN cd $KALDI_ROOT"/src/fstbin" && make
RUN echo "export PATH="$KALDI_ROOT"/src/fstbin:\$PATH" && ./configure --shared>> $KALDI_ROOT"/tools/env.sh"
RUN cd $KALDI_ROOT"/src/lmbin" && make depend -j $(nproc) make
RUN echo cd"export PATH="$KALDI_ROOT"/src/lmbin:\$PATH" && make -j $(nproc)>> $KALDI_ROOT"/tools/env.sh"
RUN cd $KALDI_ROOT"/src/fstbintree" && make
RUN echo "export PATH="$KALDI_ROOT"/src/fstbintree:\$PATH" >> $KALDI_ROOT"/tools/env.sh"
RUN cd $KALDI_ROOT"/src/lmbinbin" && make
RUN echo "export PATH="$KALDI_ROOT"/src/lmbinbin:\$PATH" >> $KALDI_ROOT"/tools/env.sh"
RUN cd"/tools/env.sh"
COPY entrypoint.sh /entrypoint.sh
WORKDIR $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.

Bloc de code
languagebash
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 suivants :

...

languagepy

...


ENTRYPOINT ["/entrypoint.sh"]


Après avoir copié et créé les deux 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.

Bloc de code
languagebash
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 suivants :

Bloc de code
languagepy
ACTIVE_ENRICH = True
MODEL_COMPILE_DIR = "/path/to/project/django_projects/compile-model"


Whisper (v3.5.0)

Sur les encodeurs :


Bloc de code
languagebash
pip install openai-whisper

ou si vous souhaitez bénéficier des derniers commits 

Bloc de code
languagebash
pip install git+https://github.com/openai/whisper.git

Exemple de configuration du custom/settings_local :

Bloc de code
languagepy
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

...