Deepstory est une œuvre d'art qui intègre la génération de langage naturel (NLG) avec GPT-2, la synthèse vocale (TTS) avec TTS à convolution profonde, la parole en animation avec animation pilotée par la parole et l'animation d'image avec modèle de mouvement de premier ordre. une application multimédia.
Pour faire simple, il transforme un texte/texte généré en une vidéo où le personnage est animé pour raconter votre histoire en utilisant sa voix.
Vous pouvez convertir une image en vidéo comme ceci :
Il fournit une interface Web confortable et un backend écrit avec Flask pour créer votre propre histoire.
Il prend en charge le modèle de transformateurs et les modèles pytorch-dctts
Colab (flask-ngrok) : https://colab.research.google.com/drive/1HYCPUmFw5rN8kvZdwzFpfBlaUMWPNHas?usp=sharing
Vidéo (au cas où vous auriez besoin d'instructions) : https://blog.thetobysiu.com/video/
La version Colab sera bientôt disponible !
Deepstory
├── animator.py
├── app.py
├── data
│ ├── dctts
│ │ ├── Geralt
│ │ │ ├── ssrn.pth
│ │ │ └── t2m.pth
│ │ ├── LJ
│ │ │ ├── ssrn.pth
│ │ │ └── t2m.pth
│ │ └── Yennefer
│ │ ├── ssrn.pth
│ │ └── t2m.pth
│ ├── fom
│ │ ├── vox-256.yaml
│ │ ├── vox-adv-256.yaml
│ │ ├── vox-adv-cpk.pth.tar
│ │ └── vox-cpk.pth.tar
│ ├── gpt2
│ │ ├── Waiting for Godot
│ │ │ ├── config.json
│ │ │ ├── default.txt
│ │ │ ├── merges.txt
│ │ │ ├── pytorch_model.bin
│ │ │ ├── special_tokens_map.json
│ │ │ ├── text.txt
│ │ │ ├── tokenizer_config.json
│ │ │ └── vocab.json
│ │ └── Witcher Books
│ │ ├── config.json
│ │ ├── default.txt
│ │ ├── merges.txt
│ │ ├── pytorch_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── text.txt
│ │ ├── tokenizer_config.json
│ │ └── vocab.json
│ ├── images
│ │ ├── Geralt
│ │ │ ├── 0.jpg
│ │ │ └── fx.jpg
│ │ └── Yennefer
│ │ ├── 0.jpg
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── 4.jpg
│ │ └── 5.jpg
│ └── sda
│ ├── grid.dat
│ └── image.bmp
├── deepstory.py
├── generate.py
├── modules
│ ├── dctts
│ │ ├── audio.py
│ │ ├── hparams.py
│ │ ├── __init__.py
│ │ ├── layers.py
│ │ ├── ssrn.py
│ │ └── text2mel.py
│ ├── fom
│ │ ├── animate.py
│ │ ├── dense_motion.py
│ │ ├── generator.py
│ │ ├── __init__.py
│ │ ├── keypoint_detector.py
│ │ ├── sync_batchnorm
│ │ │ ├── batchnorm.py
│ │ │ ├── comm.py
│ │ │ ├── __init__.py
│ │ │ └── replicate.py
│ │ └── util.py
│ └── sda
│ ├── encoder_audio.py
│ ├── encoder_image.py
│ ├── img_generator.py
│ ├── __init__.py
│ ├── rnn_audio.py
│ ├── sda.py
│ └── utils.py
├── README.md
├── requirements.txt
├── static
│ ├── bootstrap
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ └── js
│ │ └── bootstrap.min.js
│ ├── css
│ │ └── styles.css
│ └── js
│ └── jquery.min.js
├── templates
│ ├── animate.html
│ ├── deepstory.js
│ ├── gen_sentences.html
│ ├── gpt2.html
│ ├── index.html
│ ├── map.html
│ ├── models.html
│ ├── sentences.html
│ ├── status.html
│ └── video.html
├── test.py
├── text.txt
├── util.py
└── voice.py
Ils sont disponibles sur la version Google Drive de ce projet. Tous les modèles (dont Geralt, Yennefer) sont inclus.
Vous devez d’abord télécharger le modèle anglais Spacy.
assurez-vous que ffmpeg est installé sur votre ordinateur et que ffmpeg-python est installé.
https://drive.google.com/drive/folders/1AxORLF-QFd2wSORzMOKlvCQSFhdZSODJ?usp=sharing
Pour simplifier les choses, une version google colab sortira prochainement...
Il est nécessaire d'avoir un GPU nvidia avec au moins 4 Go de VRAM pour exécuter ce projet
https://github.com/tugstugi/pytorch-dc-tts
https://github.com/DinoMan/speech-driven-animation
https://github.com/AliaksandrSiarohin/first-order-model
https://github.com/huggingface/transformers
L'ensemble du projet utilise PyTorch, tandis que tensorflow est répertorié dans Requirements.txt, il a été utilisé par les transformateurs pour convertir un modèle formé de gpt-2-simple en un modèle Pytorch.
Seuls les fichiers du dossier modules sont légèrement modifiés par rapport à l'original. Les fichiers restants sont tous écrits par moi, à l'exception de certaines parties référencées.
Il y a toujours des problèmes de mémoire si vous synthétisez des phrases au cours d'une session encore et encore, mais cela prend au moins 10 fois pour provoquer un débordement de mémoire.
Il existe d'autres dépôts d'outils que j'ai créés pour prétraiter les fichiers. Ils peuvent être trouvés dans mon profil.