Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:creatool:audio:stemspleet [31/05/2025 11:41] – [Demucs] Zatalyzpratique:creatool:audio:stemspleet [16/06/2025 08:34] (Version actuelle) – [Raccourci via script bash] Zatalyz
Ligne 2: Ligne 2:
  
 ===== Demucs ===== ===== Demucs =====
-  * https://github.com/sevagh/freemusicdemixer.com ; utilise https://github.com/sevagh/demucs.cpp qui peut être utilisé à part ; meilleur que Spleeter sur les voix.+  * https://github.com/sevagh/freemusicdemixer.com ; utilise https://github.com/sevagh/demucs.cpp qui peut être utilisé à part ; meilleur que Spleeter sur les voix. La version de sevagh est en C++ ; l'originale est en python ( https://github.com/adefossez/demucs ). La version python offre plus de doc et plus d'options. Mais c'est du python.
  
-https://github.com/sevagh/demucs.cpp 
  
 Pour l'installer, les instructions sont correctes. J'ai eu une erreur au début sur la version de CMake ; il suffit de corriger CmakeLists.txt Pour l'installer, les instructions sont correctes. J'ai eu une erreur au début sur la version de CMake ; il suffit de corriger CmakeLists.txt
Ligne 22: Ligne 21:
 </code> </code>
  
-La commande : lien vers le soft, lien vers le modèle, liens vers la zik, lien vers le dossier où envoyer l'unmixage +La commande : lien vers le soft, lien vers le modèle, liens vers la zik, lien vers le dossier où envoyer l'unmixage, nombre de thread à mettre au travail 
-<code>./demucs_mt.cpp.main ./models.cpp/ggml-model-htdemucs-4s-f16.bin /lienvers/machin.wav ./demucs-out-cpp/</code>+<code>./demucs_mt.cpp.main ./models.cpp/ggml-model-htdemucs-4s-f16.bin /lienvers/machin.wav ./demucs-out-cpp/ 8</code> 
 + 
 +À noter que si la version de base demande qu'on lui indique le chemin complet vers le modèle, la version ft attent le dossier où sont les modèles. 
  
 ==== Bon format en entrée ==== ==== Bon format en entrée ====
Ligne 34: Ligne 35:
 De base, sans autre précision, les modèles séparent en 4 pistes (basse, batterie, voix, autres). "4s" ou "6s" indiquent précisément si on va avoir 4 ou 6 pistes (stem).  De base, sans autre précision, les modèles séparent en 4 pistes (basse, batterie, voix, autres). "4s" ou "6s" indiquent précisément si on va avoir 4 ou 6 pistes (stem). 
  
-Généraliste 
   * ggml-model-hdemucs_mmi-v3-f16.bin : le plus rapide   * ggml-model-hdemucs_mmi-v3-f16.bin : le plus rapide
   * ggml-model-htdemucs-4s-f16.bin : devrait être plus précis que le précédent mais plus lent   * ggml-model-htdemucs-4s-f16.bin : devrait être plus précis que le précédent mais plus lent
   * ggml-model-htdemucs-6s-f16.bin : sépare en 6 pistes (basse, batterie, guitare, piano, voix, autres), forcément encore plus lent.   * ggml-model-htdemucs-6s-f16.bin : sépare en 6 pistes (basse, batterie, guitare, piano, voix, autres), forcément encore plus lent.
- +  * ggml-model-htdemucs_ft: version affinée, la séparation prendra 4 fois plus de temps mais pourrait être un peu meilleure
-Spécialisé : plus précis sur un type de piste. +
-  * ggml-model-htdemucs_ft_bass-4s-f16.bin +
-  ggml-model-htdemucs_ft_drums-4s-f16.bin +
-  * ggml-model-htdemucs_ft_other-4s-f16.bin +
-  * ggml-model-htdemucs_ft_vocals-4s-f16.bin+
  
 ==== Et choix du binaire ==== ==== Et choix du binaire ====
Ligne 52: Ligne 47:
   * demucs_v3.cpp.main : Version optimisée pour le modèle hdemucs_mmi-v3, à utiliser spécifiquement avec ce modèle   * demucs_v3.cpp.main : Version optimisée pour le modèle hdemucs_mmi-v3, à utiliser spécifiquement avec ce modèle
   * demucs_v3_mt.cpp.main : idem en multi-threaded   * demucs_v3_mt.cpp.main : idem en multi-threaded
-  * demucs.cpp.test : Implémentation du pipeline de fine-tuning d’un stem, sert après avoir extrait les 4 pistes (pas encore trouvé le détail)+  * demucs.cpp.test : Implémentation du pipeline de fine-tuning d’un stem
   * demucs_ft.cpp.main : idem en multi-threaded   * demucs_ft.cpp.main : idem en multi-threaded
  
-À tester une fois qu'on a sorti une des pistespar exemple le vocal :  +==== Raccourci via script bash ==== 
-<code>./demucs_ft_mt.cpp.main \ +Je me suis fait un alias dans mes raccourcisil suffit ensuite de rentrer ''demuc fichier.mp3'' pour que : 
-  -m ggml-model-htdemucs_ft_vocals-4s-f16.bin \ +  - Ça crée un dossier (dans celui où est le mp3) 
-  -s stems/vocals.wav \ +  - Ça me convertisse dans le bon format de wav 
-  -o stems/vocals_ft.wav</code>+  - Ça transforme ça avec demuc, en n'utilisant pas tous mes cœurs. 
 + 
 +<code bash demuc.sh> 
 +#!/bin/bash 
 +# Variables 
 +DEMUCSEXEC="/home/zatalyz/Documents/demucs.cpp/build/demucs_mt.cpp.main" 
 +MODEL="/home/zatalyz/Documents/demucs.cpp/build/models.cpp/ggml-model-htdemucs-4s-f16.bin" 
 + 
 +# Vérification du fichier d'entrée 
 +if [ $# -ne 1 ]; then 
 +    echo "Usage : $0 chemin/vers/fichier.mp3" 
 +    exit 1 
 +fi 
 + 
 +INPUT="$1" 
 + 
 +if [ ! -f "$INPUT" ]; then 
 +    echo "Erreur : fichier introuvable." 
 +    exit 1 
 +fi 
 + 
 +# Création du dossier de sortie 
 +BASENAME=$(basename "$INPUT"
 +NAME="${BASENAME%.*}" 
 +INPUTDIR=$(dirname "$INPUT"
 +OUTDIR="${INPUTDIR}/${NAME}_stem" 
 +mkdir -p "$OUTDIR" 
 + 
 +# Conversion en wav 44.1 kHz si nécessaire 
 +WAVFILE="${OUTDIR}/${NAME}_44100.wav
 +echo "Conversion de l'entrée en WAV 44.1kHz..." 
 +ffmpeg -i "$INPUT" -ar 44100 -ac 2 -acodec pcm_s16le "$WAVFILE" 
 + 
 +# Appel de demucs 
 +echo "Séparation avec Demucs..." 
 +"$DEMUCSEXEC" "$MODEL" "$WAVFILE" "$OUTDIR"
 + 
 + 
 +echo "Séparation terminée. Résultats dans : $OUTDIR" 
 + 
 +</code> 
 + 
 +L'alias étant (dans .aliases mais ça dépend des paramétrages de chacun) :  
 +  alias demuc="/home/zatalyz/Documents/scripts/demuc/demuc.sh" 
 ===== Autres soft ===== ===== Autres soft =====
  
   * https://github.com/deezer/spleeter : MIT avec TensorFlow, créé par Deezer   * https://github.com/deezer/spleeter : MIT avec TensorFlow, créé par Deezer
   * https://github.com/stemrollerapp/stemroller : pas testé   * https://github.com/stemrollerapp/stemroller : pas testé
 +  * Utimate Vocal Remover : GUI embarquant (entre autre) demuc. Une plaie à compiler (plein de soucis de dépendances, c'est python quoi), tout ça pour une interface qui ne conviendra qu'aux gens ayant l'habitude des OS foireux. Franchement ça vaut pas le coup...
  
  
pratique/creatool/audio/stemspleet.1748684470.txt.gz · Dernière modification : 31/05/2025 11:41 de Zatalyz