AudioX : générer de l'audio et de la musique à partir de textes, d'images et de vidéos référencés

Introduction générale

AudioX est un projet open source sur GitHub de Zeyue Tian et al. L'article officiel est publié sur arXiv (No. 2503.10522). Il est basé sur la technologie Diffusion Transformer, qui peut générer de l'audio et de la musique de haute qualité à partir d'une variété d'entrées telles que le texte, la vidéo, les images, l'audio, etc. AudioX est unique en ce sens qu'il ne prend pas seulement en charge une entrée unique, mais unifie également le traitement des données multimodales et génère les résultats par le biais du contrôle du langage naturel. Le projet fournit deux ensembles de données : vggsound-caps (190 000 descriptions audio) et V2M-caps (6 000 000 de descriptions musicales), qui résolvent le problème de l'insuffisance des données d'entraînement.AudioX ouvre le code et les modèles pré-entraînés aux développeurs, chercheurs et créateurs.

AudioX:参考文本、图像、视频生成音频和音乐

 

Liste des fonctions

  • Prise en charge de plusieurs entrées pour générer de l'audio : vous pouvez utiliser du texte, de la vidéo, des images ou de l'audio pour générer l'audio ou la musique correspondante.
  • Contrôle du langage naturel : Ajustez le contenu ou le style audio à l'aide de descriptions textuelles, par exemple "musique légère de piano".
  • Sortie de haute qualité : la qualité du son audio et musical généré est élevée et proche du niveau professionnel.
  • Traitement multimodal unifié : capacité à traiter simultanément différents types d'entrées et à produire des résultats cohérents.
  • Ressources open source : un code complet, des modèles pré-entraînés et des ensembles de données sont disponibles pour faciliter le développement secondaire.
  • Support démo natif : interface interactive via Gradio pour tester facilement les fonctionnalités.

 

Utiliser l'aide

AudioX nécessite quelques connaissances en programmation et convient aux utilisateurs ayant une expérience de Python. Vous trouverez ci-dessous un guide d'installation et d'utilisation détaillé pour vous aider à démarrer.

Processus d'installation

  1. Télécharger le code
    Clonez le dépôt AudioX en entrant la commande suivante dans le terminal :
git clone https://github.com/ZeyueT/AudioX.git

Allez ensuite dans le répertoire du projet :

cd AudioX
  1. Créer l'environnement
    AudioX nécessite Python 3.8.20. Utilisez Conda pour créer un environnement virtuel :
conda create -n AudioX python=3.8.20

Activer l'environnement :

conda activate AudioX
  1. Installation des dépendances
    Installer les bibliothèques nécessaires au projet :
pip install git+https://github.com/ZeyueT/AudioX.git

Réinstallez les outils de traitement audio :

conda install -c conda-forge ffmpeg libsndfile
  1. Télécharger le modèle pré-entraîné
    Créer un dossier modèle :
mkdir -p model

Télécharger les modèles et les fichiers de configuration :

wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/model.ckpt -O model/model.ckpt
wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/config.json -O model/config.json
  1. Vérifier l'installation
    Vérifier que l'environnement est normal :
python -c "import audiox; print('AudioX installed successfully')"

Si aucune erreur n'est signalée, l'installation a réussi.

Principales fonctions

AudioX prend en charge une variété de tâches de génération, y compris la conversion de texte en audio (T2A), de vidéo en musique (V2M), etc. La méthode d'opération spécifique est décrite ci-dessous.

Générer de l'audio à partir d'un texte

  1. Créer un fichier Python tel que text_to_audio.py.
  2. Entrez le code suivant :
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
  1. Exécutez le script :
python text_to_audio.py
  1. L'audio généré est enregistré en tant que keyboard.wavVous pouvez vérifier l'effet avec le lecteur.

Générer de la musique à partir d'une vidéo

  1. Préparer un fichier vidéo tel que sample.mp4.
  2. Création de scripts video_to_music.pyEntrée :
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
audio = model.generate(video="sample.mp4", text="为视频生成音乐")
audio.save("video_music.wav")
  1. La course à pied :
python video_to_music.py
  1. La musique générée est enregistrée sous le nom de video_music.wav.

Lancer la démo locale de Gradio

  1. Saisissez-le dans le terminal :
python3 run_gradio.py --model-config model/config.json --share
  1. Après l'exécution de la commande, un lien local est généré (par exemple http://127.0.0.1:7860). Ouvrez le lien et vous pourrez tester l'AudioX à travers l'interface web.
  2. Saisissez un texte (par exemple "Musique pour piano et violon") ou téléchargez une vidéo sur l'interface et cliquez sur "Générer" pour écouter les résultats.

Exemple de raisonnement scénarisé

Un script de raisonnement détaillé est officiellement fourni pour les tâches de génération plus complexes :

  1. Création de documents generate.pyEntrée :
import torch
from stable_audio_tools import get_pretrained_model, generate_diffusion_cond
device  `Truncated`torch.torch.torch.torch.torch.torch.torch.torch.torch_torch.torch.torch_torch.torch.torch
device = "cuda" if torch.cuda.is_available() else "cpu"
model, config = get_pretrained_config("HKUSTAudio/AudioX")
model = model.to(device)
sample_rate = config["sample_rate"]
sample_size = config["sample_size"]
video_path = "sample.mp4"
text_prompt = "为视频生成钢琴音乐"
conditioning = [{"video_prompt": [read_video(video_path, 0, 10, config["video_fps"]).unsqueeze(0)],
"text_prompt": text_prompt,
"seconds_start": 0,
"seconds_total": 10}]
output = generate_diffusion_cond(model, steps=250, cfg_scale=7, conditioning=conditioning, sample_size=sample_size, device=device)
output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
torchaudio.save("output.wav", output, sample_rate)
  1. La course à pied :
python generate.py
  1. L'audio généré est enregistré en tant que output.wav.

Exemple de configuration

Voici les configurations d'entrée pour les différentes tâches :

  • Du texte à l'audio: :text="敲击键盘的声音"video=None
  • De la vidéo à la musique: :video="sample.mp4"text="为视频生成音乐"
  • entrée mixte: :video="sample.mp4"text="海浪声和笑声"

mise en garde

  • Les GPU augmentent considérablement la vitesse de génération et sont recommandés.
  • Le format vidéo doit être mp4 et la sortie audio doit être wav.
  • Assurez-vous que votre réseau est stable, le téléchargement du modèle peut prendre quelques minutes.

 

scénario d'application

  1. composition musicale
    Saisissez une description textuelle, telle que "air de violon triste", pour générer rapidement un clip musical.
  2. Bande sonore vidéo
    Téléchargez des vidéos pour générer une musique de fond ou des effets sonores adaptés.
  3. la recherche et le développement (R&D)
    Amélioration des techniques de génération audio à l'aide de codes et d'ensembles de données à source ouverte.

 

QA

  1. Prend-il en charge le chinois ?
    Oui, il prend en charge la saisie en chinois, par exemple "musique légère de piano".
  2. Quel est l'espace de stockage nécessaire ?
    Le code et le modèle représentent environ 2 à 3 Go, et l'ensemble des données nécessite plusieurs dizaines de Go supplémentaires.
  3. Combien de temps cela prend-il pour produire ?
    Quelques secondes à une minute pour le GPU, le CPU peut prendre quelques minutes.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...