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.
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
- 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
- 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
- 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
- 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
- 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
- Crie um arquivo Python, como
text_to_audio.py
. - 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")
- Execute o script:
python text_to_audio.py
- O áudio gerado é salvo como
keyboard.wav
Se você não estiver usando o player, poderá verificar o efeito com o player.
Gerar música a partir do vídeo
- Prepare um arquivo de vídeo, como
sample.mp4
. - Criação de scripts
video_to_music.py
Entrada:
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")
- Em execução:
python video_to_music.py
- A música gerada é salva como
video_music.wav
.
Executar a demonstração local do Gradio
- Digite-o no terminal:
python3 run_gradio.py --model-config model/config.json --share
- 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.
- 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:
- Criação de documentos
generate.py
Entrada:
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)
- Em execução:
python generate.py
- 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
- 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. - Trilha sonora do vídeo
Faça upload de vídeos para gerar música de fundo ou efeitos sonoros correspondentes. - pesquisa e desenvolvimento (P&D)
Aprimoramento das técnicas de geração de áudio usando código-fonte aberto e conjuntos de dados.
QA
- Ele é compatível com o idioma chinês?
Sim, ele suporta entrada em chinês, como "light piano music". - 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. - Quanto tempo leva para gerar?
De alguns segundos a um minuto na GPU, a CPU pode levar alguns minutos.