Créer mes propres vidéos de karaoké avec l'IA

DEV - 04/06
L'autre jour, j'étais à un événement de karaoké et j'étais frustré qu'ils n'aient pas la chanson que je voulais. JE...

L'autre jour, j'étais à un événement de karaoké et j'étais frustré qu'ils n'aient pas la chanson que je voulais. J'ai une palette vocale extrêmement limitée. Je peux faire Tom Waits, Bob Dylan et Kanye non réglé automatiquement et même là, seulement les chansons les plus lentes. Essentiellement, tout chanteur masculin connu plus pour sa voix unique que pour ses prouesses en chant correspond à ma gamme.

Compte tenu de ces limitations, il n'y a pas beaucoup de choix dans les applications de karaoké pop et country qui correspondent à mes capacités « uniques ». Même la recherche fiable sur YouTube pour « version karaoké de l’artiste du nom de la chanson » échoue souvent.

Cette nuit-là, je pensais à la chanson quelque peu obscure de Dylan "Every Grain of Sand" - un classique rare de la "période chrétienne" de Dylan, de la fin des années 70 au début des années 80.

J'ai trouvé un résultat sur Youtube : une vidéo de karaoké maison que quelqu'un a enregistrée dans son salon. Il n'avait pas le bon tempo et, pire encore, utilisait les paroles de l'album avec la phrase "Je suis dans la balance d'un plan parfaitement terminé". au lieu de la phrase précédente, et à mon avis, supérieure : « Je suis suspendu dans la balance de la réalité de l'homme ».

Pendant que j'étais assis à écouter une interprétation parfaite de « Homme, je me sens comme une femme ! » par l'un des habitués, j'ai élaboré un plan pour créer du python afin que des robots construisent une version karaoké de n'importe quelle chanson à la demande. Voici comment cela s'est passé :

Mise en place du projet et de l'environnement

La première étape consiste bien sûr à créer un petit atelier sur votre machine pour travailler. J'ai créé un nouveau dossier dans mon vénérable répertoire ~/code/ nommékaraoké-personnaliséet je me suis mis au travail.

Puisque nous utilisons Python, créons d’abord un environnement pour contenir toutes nos dépendances et notre code. Nous allons utiliser venv pour créer un environnement virtuel afin de contenir nos dépendances et de tout gérer localement.

mkdir cd de karaoké personnalisé python -m venv venv ./venv/Scripts/activate touch main.py
Passer en mode plein écran Quitter le mode plein écran

Vous devrez avoir ImageMagick installé sur votre système. Si ImageMagick est installé à l'emplacement standard, vous ne devriez pas avoir besoin d'indiquer à moviepy où il se trouve. Si vous devez préciser l'emplacement, vous pouvez appeler lemodifier les paramètresfonction demoviepy.config. J'utilise le code suivant pour m'assurer que le script fonctionne sur mon Macbook et mon PC Windows :

depuis moviepy.config import change_settings import platform if platform.system() == "Darwin": imagemagick_path = "/opt/homebrew/bin/magick" elif platform.system() == "Windows": imagemagick_path = "C:/ Program Files/ImageMagick-7.1.1-Q16-HDRI/magick.exe" else : raise NotImplementedError("Système d'exploitation non pris en charge") change_settings({"IMAGEMAGICK_BINARY": imagemagick_path})
Passer en mode plein écran Quitter le mode plein écran

Maintenant que nous avons les rudiments d'un projet Python, écrivons du code ! Tout d’abord, nous allons créer un script python en cours d’exécution avec notre main.py. Votre IDE pourrait se plaindre du fait que nous importons des éléments que nous n'utilisons pas encore, mais nous y reviendrons assez tôt.

importer argparse importer os importer demucs.api importer torch importer murmure depuis moviepy.editor importer * depuis moviepy.vi...
[Courte citation de 8% de l'article original]
Loading...