esup-pod

Arborescence des pages

Vous regardez une version antérieure (v. /wiki/spaces/ES/pages/1231355918/Transcription+des+directs) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) Actuel »

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


# Installation de la transcription des directs

### Installation des dépendandes
Si ce n'est pas encore fait, il faut installer vosk

```bash
(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](https://alphacephei.com/vosk/models).
Par exemple pour le modèle français :

```bash
(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 :

```bash
(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 :

```py
#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" :

```py
#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: <a href = "https://www.esup-portail.org/wiki/pages/viewpage.action?pageId=1167294469"> Déporter l'encodage sur un ou plusieurs serveurs en Pod V3 </a>.
Et d'activer la transcription dans le front et dans le serveur

```py
# 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.

```bash
(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 : 
```bash
(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