AudioX: generación de audio y música a partir de texto referenciado, imágenes, vídeo

Introducción general

AudioX es un proyecto de código abierto en GitHub de Zeyue Tian et al. El artículo oficial está publicado en arXiv (nº 2503.10522). Se basa en la tecnología Diffusion Transformer, que puede generar audio y música de alta calidad a partir de una variedad de entradas como texto, vídeo, imágenes, audio, etc. AudioX es único en el sentido de que no solo admite una única entrada, sino que también unifica el procesamiento de datos multimodales y genera los resultados mediante el control del lenguaje natural. El proyecto proporciona dos conjuntos de datos: vggsound-caps (190.000 descripciones de audio) y V2M-caps (6.000.000 de descripciones de música), que resuelven el problema de la insuficiencia de datos de entrenamiento.AudioX pone el código y los modelos preentrenados a disposición de desarrolladores, investigadores y creadores.

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

 

Lista de funciones

  • Soporta múltiples entradas para generar audio: puedes utilizar texto, vídeo, imágenes o audio para generar el audio o la música correspondientes.
  • Control del lenguaje natural: ajuste el contenido o el estilo del audio con descripciones de texto, por ejemplo, "música ligera de piano".
  • Salida de alta calidad: la calidad del sonido de audio y música generado es alta y cercana al nivel profesional.
  • Procesamiento multimodal unificado: capacidad de procesar simultáneamente distintos tipos de entradas y generar resultados coherentes.
  • Recursos de código abierto: código completo, modelos preentrenados y conjuntos de datos disponibles para facilitar el desarrollo secundario.
  • Soporte nativo para demostraciones: interfaz interactiva a través de Gradio para probar fácilmente las funciones.

 

Utilizar la ayuda

AudioX requiere algunos conocimientos de programación y es adecuado para usuarios con experiencia en Python. A continuación encontrará una guía detallada de instalación y uso que le ayudará a empezar.

Proceso de instalación

  1. Descargar código
    Clona el repositorio AudioX introduciendo el siguiente comando en el terminal:
git clone https://github.com/ZeyueT/AudioX.git

A continuación, vaya al directorio del proyecto:

cd AudioX
  1. Creación del entorno
    AudioX requiere Python 3.8.20. Utiliza Conda para crear un entorno virtual:
conda create -n AudioX python=3.8.20

Activar el entorno:

conda activate AudioX
  1. Instalación de dependencias
    Instale las bibliotecas necesarias para el proyecto:
pip install git+https://github.com/ZeyueT/AudioX.git

Instala de nuevo las herramientas de procesamiento de audio:

conda install -c conda-forge ffmpeg libsndfile
  1. Descargar modelo preentrenado
    Crea una carpeta de modelos:
mkdir -p model

Descarga de modelos y archivos de configuración:

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. Verificar la instalación
    Comprueba que el entorno es normal:
python -c "import audiox; print('AudioX installed successfully')"

Si no aparece ningún error, la instalación se ha realizado correctamente.

Funciones principales

AudioX admite diversas tareas de generación, como texto a audio (T2A), vídeo a música (V2M), etc. A continuación se describe el método de operación específico.

Generar audio a partir de texto

  1. Cree un archivo Python como text_to_audio.py.
  2. Introduce el siguiente código:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
  1. Ejecuta el script:
python text_to_audio.py
  1. El audio generado se guarda como keyboard.wavpuedes comprobar el efecto con el reproductor.

Generar música a partir de un vídeo

  1. Prepare un archivo de vídeo como sample.mp4.
  2. Creación de guiones video_to_music.pyEntrada:
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. Corriendo:
python video_to_music.py
  1. La música generada se guarda como video_music.wav.

Ejecutar la demostración local de Gradio

  1. Introdúcelo en el terminal:
python3 run_gradio.py --model-config model/config.json --share
  1. Una vez ejecutado el comando, se genera un enlace local (por ejemplo, http://127.0.0.1:7860). Abre el enlace y podrás probar AudioX a través de la interfaz web.
  2. Introduzca un texto (por ejemplo, "Música para piano y violín") o cargue un vídeo en la interfaz y haga clic en Generar para escuchar los resultados.

Ejemplo de razonamiento guionizado

Para tareas de generación más complejas se proporciona oficialmente un script de razonamiento detallado:

  1. Creación de documentos generate.pyEntrada:
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. Corriendo:
python generate.py
  1. El audio generado se guarda como output.wav.

Ejemplo de configuración

A continuación se indican las configuraciones de entrada para las distintas tareas:

  • Texto a audio::text="敲击键盘的声音"video=None
  • Vídeo a música::video="sample.mp4"text="为视频生成音乐"
  • entrada mixta::video="sample.mp4"text="海浪声和笑声"

advertencia

  • Las GPU aumentan considerablemente la velocidad de generación y son recomendables.
  • El formato de vídeo tiene que ser mp4 y la salida de audio wav.
  • Asegúrese de que su red es estable, el modelo puede tardar unos minutos en descargarse.

 

escenario de aplicación

  1. composición musical
    Introduce una descripción de texto, como "melodía triste de violín", para generar rápidamente un clip musical.
  2. Banda sonora
    Cargue vídeos para generar música de fondo o efectos de sonido a juego.
  3. investigación y desarrollo (I+D)
    Mejora de las técnicas de generación de audio mediante código fuente abierto y conjuntos de datos.

 

CONTROL DE CALIDAD

  1. ¿Es compatible con el chino?
    Sí, admite entradas en chino, como "música ligera de piano".
  2. ¿Cuánto espacio de almacenamiento se necesita?
    El código y el modelo ocupan unos 2-3 GB, y el conjunto de datos completo requiere varias decenas de GB adicionales.
  3. ¿Cuánto tarda en generarse?
    De unos segundos a un minuto en la GPU, la CPU puede tardar unos minutos.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...