Arborescence des pages

Documentation pour l'installation de la transcription des directs sur Esup:Pod

Installation de la transcription des directs

Installation des dépendances

Si ce n'est pas encore fait, il faut installer vosk

(django_pod) pod@Pod:~/django_projects/podv3$ pip install vosk

Configuration

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 :

(django_pod) pod@:/path/to/project/django_projects/transcription/live/fr/$ wget https://alphacephei.com/vosk/models/vosk-model-fr-0.6-linto-2.2.0.zip

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/transcription/live/fr/$ sudo apt-get install unzip
(django_pod) pod@:/path/to/project/django_projects/transcription/live/fr/$ 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 :

#settings_local.py

# Transcription
USE_LIVE_TRANSCRIPTION  =  True # Default = False

# Paramétrage des modèles
# * Pour télécharger les Modèles Vosk : https://alphacephei.com/vosk/models
LIVE_VOSK_MODEL  = {
	"fr": {
		"model": "/path/of/project/django_projects/transcription/live/fr/vosk-model-small-fr-0.22",
	},
}
LIVE_TRANSCRIPTIONS_FOLDER  = "live_transcripts" # Répertoire contenant les fichiers de sous-titres au format vtt

Pour ajouter un modèle d'un autre langage, ajouter une entrée comme l’exemple ci-dessous, fait pour le langage Anglais "en" :

#settings_local.py

LIVE_VOSK_MODEL  = {
	"fr": {
		"model": "/path/of/project/django_projects/transcription/live/fr/vosk-model-small-fr-0.22",
	},
	"en": {
		"model": "/path/of/project/django_projects/transcription/live/en/vosk-model-small-en-us-0.15",
	},
}

Priorisez les modèles les plus légers afin d'éviter des problèmes de retard entre video et sous-titre.

Ensuite dans le répertoire media (le créer s'il n'existe pas) il faut créer un sous-dossier "live_transcripts". C'est dans ce répertoire qui vont s'enregistrer toutes les fichiers de sous-titre.

Configuration diffuseur pour langues autre que français

Si vous souhaitez utiliser un modèle avec une langue autre que le français il faut spécifier la langue au niveau du diffuseur dans la section admin de votre instance de pod.

Utilisation avec Celery

Pour installer avec Celery il faut suivre la doc d'installation de l'encodage: Déporter l'encodage sur un ou plusieurs serveurs en Pod V3 . Et d'activer la transcription dans le front et dans le serveur

# setting_local.py (front et serveur encodage/transcription)

LIVE_CELERY_TRANSCRIPTION  =  True # Activer la transcription

Activation

Il existe désormais la possibilité de transcrire le direct d'un évènement. Celle si peut être activée en cochant la case "Activer l'autotranscription" lors de la création d'un évènement.

Les soustitres peuvent être activés, désactivés et customizés en clickquant sur l'icone correspondant dans la barre d'outils du direct.

Lancement de la transcription en local

La machine de live (celle qui envoie le flux m3u8) est chargé de lancer et arrêter la transcription par le moyen d'un appel d'api rest automatique. Dans un environnement local cet appel doit être lancé manuellement. Le slug correspond au nom court attribué à un broadcaster, il est retrouvable dans la partie admin du site.

Pour arreter la transcription il faut mettre la valeur "false" pour la clé "status". Reinseignez aussi le nom d'utilisateur et un mot de passe d'un utilisateur admin.

Attention

Avant de lancer la commande assurez vous que vous avez bien coché la case "Activer la transcription" dans l'évenement. Voici la commande d'appel rest.

(django_pod) pod@Pod:~/django_projects/podv3$ curl -X PATCH http://127.0.0.1:8000/rest/broadcasters/[slug]/ -H 'Content-Type: application/json' -H 'Accept: application/json' -u "[login]:[password]" -d '{"status": "true"}' 

Par exemple :

(django_pod) pod@Pod:~/django_projects/podv3$ curl -X PATCH http://127.0.0.1:8000/rest/broadcasters/nico/ -H 'Content-Type: application/json' -H 'Accept: application/json' -u "nico:psswrd" -d '{"status": "true"}' 

Attention

Il faut avoir coché la case précedente dans l'évenement avant d'avoir lancé le streaming.

  • Aucune étiquette