Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

AudioX: geração de áudio e música a partir de texto, imagens e vídeos referenciados

Introdução geral

O AudioX é um projeto de código aberto no GitHub criado por Zeyue Tian et al. O artigo oficial foi publicado no arXiv (nº 2503.10522). Ele se baseia na tecnologia Diffusion Transformer, que pode gerar áudio e música de alta qualidade a partir de uma variedade de entradas, como texto, vídeo, imagens, áudio etc. O AudioX é único, pois não só suporta uma única entrada, mas também unifica o processamento de dados multimodais e gera os resultados por meio do controle de linguagem natural. O projeto fornece dois conjuntos de dados: vggsound-caps (190.000 descrições de áudio) e V2M-caps (6.000.000 de descrições de música), que resolvem o problema da insuficiência de dados de treinamento. O AudioX abre o código-fonte e os modelos pré-treinados para desenvolvedores, pesquisadores e criadores.

AudioX: geração de áudio e música a partir de texto de referência, imagens e vídeo-1


 

Lista de funções

  • Suporte a várias entradas para gerar áudio: você pode usar texto, vídeo, imagens ou áudio para gerar o áudio ou a música correspondente.
  • Controle de linguagem natural: ajuste o conteúdo ou o estilo do áudio com descrições de texto, por exemplo, "música leve de piano".
  • Saída de alta qualidade: a qualidade do som de áudio e música gerado é alta e próxima do nível profissional.
  • Processamento multimodal unificado: a capacidade de processar diferentes tipos de entradas simultaneamente e gerar resultados consistentes.
  • Recursos de código aberto: código completo, modelos pré-treinados e conjuntos de dados estão disponíveis para facilitar o desenvolvimento secundário.
  • Suporte nativo a demonstrações: interface interativa via Gradio para facilitar o teste de recursos.

 

Usando a Ajuda

O AudioX requer algum conhecimento de programação e é adequado para usuários com experiência em Python. Abaixo está um guia detalhado de instalação e uso para ajudá-lo a começar.

Processo de instalação

  1. Código de download
    Clone o repositório AudioX digitando o seguinte comando no terminal:
git clone https://github.com/ZeyueT/AudioX.git

Em seguida, vá para o diretório do projeto:

cd AudioX
  1. Criando o ambiente
    O AudioX requer o Python 3.8.20. Use o Conda para criar um ambiente virtual:
conda create -n AudioX python=3.8.20

Ativar o ambiente:

conda activate AudioX
  1. Instalação de dependências
    Instale as bibliotecas necessárias para o projeto:
pip install git+https://github.com/ZeyueT/AudioX.git

Instale novamente as ferramentas de processamento de áudio:

conda install -c conda-forge ffmpeg libsndfile
  1. Download do modelo pré-treinado
    Crie uma pasta de modelo:
mkdir -p model

Faça o download de modelos e arquivos de configuração:

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 a instalação
    Verifique se o ambiente está normal:
python -c "import audiox; print('AudioX installed successfully')"

Se nenhum erro for relatado, a instalação foi bem-sucedida.

Funções principais

O AudioX suporta uma variedade de tarefas de geração, incluindo texto para áudio (T2A), vídeo para música (V2M) e assim por diante. A seguir, o método de operação específico.

Geração de áudio a partir de texto

  1. Crie um arquivo Python, como text_to_audio.py.
  2. Digite o seguinte 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. Execute o script:
python text_to_audio.py
  1. O áudio gerado é salvo como keyboard.wavSe você não estiver usando o player, poderá verificar o efeito com o player.

Gerar música a partir do vídeo

  1. Prepare um arquivo de vídeo, como sample.mp4.
  2. Criação de scripts 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. Em execução:
python video_to_music.py
  1. A música gerada é salva como video_music.wav.

Executar a demonstração local do Gradio

  1. Digite-o no terminal:
python3 run_gradio.py --model-config model/config.json --share
  1. Depois que o comando é executado, é gerado um link local (por exemplo, http://127.0.0.1:7860). Abra o link e você poderá testar o AudioX por meio da interface da Web.
  2. Digite o texto (por exemplo, "Music for Piano and Fiddle") ou carregue um vídeo na interface e clique em Generate (Gerar) para ouvir os resultados.

Exemplo de raciocínio com script

Um script de raciocínio detalhado é fornecido oficialmente para tarefas de geração mais complexas:

  1. Criação 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. Em execução:
python generate.py
  1. O áudio gerado é salvo como output.wav.

Exemplo de configuração

Veja a seguir as configurações de entrada para as diferentes tarefas:

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

advertência

  • As GPUs aumentam significativamente a velocidade de geração e são recomendadas.
  • O formato do vídeo precisa ser mp4 e a saída de áudio deve ser wav.
  • Certifique-se de que sua rede esteja estável, pois o download do modelo pode levar alguns minutos.

 

cenário do aplicativo

  1. composição musical
    Insira uma descrição de texto, como "sad fiddle tune" (melodia triste de violino), para gerar rapidamente um clipe de música.
  2. Trilha sonora do vídeo
    Faça upload de vídeos para gerar música de fundo ou efeitos sonoros correspondentes.
  3. pesquisa e desenvolvimento (P&D)
    Aprimoramento das técnicas de geração de áudio usando código-fonte aberto e conjuntos de dados.

 

QA

  1. Ele é compatível com o idioma chinês?
    Sim, ele suporta entrada em chinês, como "light piano music".
  2. Quanto espaço de armazenamento é necessário?
    O código e o modelo têm cerca de 2 a 3 GB, e o conjunto completo de dados requer várias dezenas de GB adicionais.
  3. Quanto tempo leva para gerar?
    De alguns segundos a um minuto na GPU, a CPU pode levar alguns minutos.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " AudioX: geração de áudio e música a partir de texto, imagens e vídeos referenciados
pt_BRPortuguês do Brasil