tomboul Posted October 14, 2020 Report Share Posted October 14, 2020 Après de nombreuses recherches, je partage ici mon expérience Mon problème est que je voulais installer AENEAS sur mon QNAP pour l'utiliser sur mon site internet pour synchroniser des sous-titres avec une vidéo youtube. et le problème est que AENEAS n'est pas compatible avec l'environnement du QNAP TS-231 (linux QTS), il est compatible sur debian, unbuntu, avec python2 ou 3.5 (maxi), il nécessite l'installation de espeak, lui aussi incompatible avec QTS La seule façon de l'installer est l'utilisation d'un container avec soit debian, soit ubuntu, j'ai choisi ubuntu. voir tuto installation d'un container là Lorsque vous ajoutez un container, penser à déclarer un volume partagé avec le host -> advanced setting -> shared folder -> volume from host : indiquer le répertoire de votre qnap qui contiendra les donnée d'un répertoire de votre container. Ainsi votre serveur Web aura un accès direct aux données de voter container. J'ai réussi à installer AENEAS dans ce container avec ubuntu docker et il est identifié ainsi ubuntu-1 j'ai d'abord installé avec la commande apt-get install les modules gcc de compilations, les commandes linux nécessaires (apt vous signale toutes les commandes manquantes comme sudo etc ...), et tous les modules dépendants d'AENEAS à savoir : ffmpeg, ffprobe, espeak, puiis python2.7, pip, numpy, our isntaller aeneas plus rapidement j'ai utilisé dependancies.sh , ensuite on peut faire : pip install aeneas on peut trouver le tuto d'installation d'AENEAS et le fichier des dépendances sur ce site Mais je ne savais pas comment exécuter ce module vis une commande exec dans un fichier php du serveur web accessible par internet : Aeneas est un module qui permet de synchroniser des sous-titres avec une vidéo youtube La commande que j'ai dans mon fichier php est la suivante : exec('python -m aeneas.tools.execute_task ' . $url . ' data/' . $id . '_script.txt "task_language=fr|is_text_type=plain|os_task_file_format=srt" data/' . $id . '_script.srt -y'); $url contenant un lien vers la vidéo youtube et le fichier str qui recevra le résultat est identifié par $id (id de la vidéo youtube) Le problème est que mon serveur web est installé sur le QNAP et donc la commande python sera introuvable car elle est sur le container. Pour cela il faut utiliser la commande docker exec, [~] # docker exec --help Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] Run a command in a running container Options: -d, --detach Detached mode: run command in the background --detach-keys string Override the key sequence for detaching a container -e, --env list Set environment variables --help Print usage -i, --interactive Keep STDIN open even if not attached --privileged Give extended privileges to the command -t, --tty Allocate a pseudo-TTY -u, --user string Username or UID (format: <name|uid>[:<group|gid>]) mon container est ubuntu-1 , à partir de l'environnement de base du QNAP, sur SSH putty, pour tester si AENEAS est accessible et bien installé, il faut procéder ainsi : docker exec -t ubuntu-1 python -m aeneas.diagnostics résultat de la commande sur stdout : [INFO] ffprobe OK [INFO] ffmpeg OK [INFO] espeak OK [INFO] aeneas.tools OK [INFO] If you plan to use aeneas on the command line, [INFO] you might want to 'export PYTHONIOENCODING=UTF-8' in your shell [INFO] aeneas.cdtw AVAILABLE [INFO] aeneas.cmfcc AVAILABLE [INFO] aeneas.cew AVAILABLE [INFO] All required dependencies are met and all available Python C extensions are working ça m'indique bien que la commande python -m aeneas fonctionne et est accessible par l'environnemetn de base de QNAP ( -e PYTHONIOENCODING=UTF-8 pour indiquer UTF-8 comme encodage par défaut) dans mon fichier PHP je dois modifier l'exec ainsi : exec('docker exec -i -e PYTHONIOENCODING=UTF-8 unbuntu-1 python -m aeneas.tools.execute_task ' . $url . ' data/' . $id . '_script.txt "task_language=fr|is_text_type=plain|os_task_file_format=srt" data/' . $id . '_script.srt -y'); Link to comment Share on other sites More sharing options...
Recommended Posts