Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

SongGen: um transformador autorregressivo de estágio único para geração automática de músicas

Introdução geral

O SongGen é um modelo transformador autorregressivo de estágio único de código aberto, projetado para tarefas de geração de texto para música. O modelo é capaz de gerar músicas com vocais e faixas de apoio a partir da entrada de texto. O SongGen oferece controle refinado sobre uma ampla gama de atributos musicais, incluindo letras, descrições de instrumentos, estilo musical, humor e timbre. Além disso, os usuários têm a opção de usar um clipe de áudio de referência de três segundos para clonagem de som. O songGen suporta dois modos de saída: o modo híbrido gera uma faixa mista contendo vocais e backing vocals diretamente e o modo de duas faixas gera faixas vocais e de backing separadas para aplicações subsequentes. O projeto também oferece um pipeline automatizado de pré-processamento de dados e um mecanismo eficiente de controle de qualidade projetado para facilitar o envolvimento da comunidade e pesquisas futuras.

SongGen: transformador autorregressivo de estágio único para geração automática de músicas-1


 

Lista de funções

  • Geração de texto para música
  • Oferece suporte ao controle refinado de letras, descrições de instrumentos, estilo musical, humor e timbre
  • Fornece clipes de áudio de referência de três segundos para clonagem de som
  • Saídas em modo misto e modo de pista dupla
  • Pipeline automatizado de pré-processamento de dados
  • Pesos de modelos de código aberto, código de treinamento, dados anotados e pipeline de processamento

 

Usando a Ajuda

Obrigado por fornecer as informações oficiais sobre o processo de instalação! Farei as correções com base nelas. Abaixo está a seção de ajuda atualizada para uso:

Usando a Ajuda

Processo de instalação

  1. Clonagem do Project Warehouse:
   git clone https://github.com/LiuZH-19/SongGen.git
cd SongGen
  1. Crie e ative um novo ambiente Conda:
   conda create -n songgen python=3.9.18
conda activate songgen
  1. Instale o CUDA 11.8 e as dependências relacionadas:
   conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
  1. Use o SongGen somente no modo de inferência:
   pip install .

Baixar pontos de controle

Faça o download dos pontos de verificação do modelo pré-treinado para xcodec e songgen.

raciocínio de execução

modelo híbrido

  1. Importe as bibliotecas necessárias:
   importar torch
import os
from songgen import (
VoiceBpeTokenizer,
SongGenMixedForConditionalGeneration, SongGenProcessor, SongGenMixedForConditionalGeneration, SongGenProcessor
SongGenProcessor
)
importar soundfile como sf
  1. Carregue o modelo pré-treinado:
   ckpt_path = "..."  Caminho para o modelo pré-treinado do #
device = "cuda:0" if torch.cuda.is_available() else "cpu"
modelo = SongGenMixedForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. Defina o texto de entrada e as letras:
   letras = "..."  Texto da letra do #
texto = "..."  # Texto da descrição da música
ref_voice_path = 'path/to/your/reference_audio.wav' # Caminho do áudio de referência, opcional
separate = True # Se deve ou não separar a trilha vocal do áudio de referência
  1. Gerar músicas:
   model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True)
generation = model.generate(**model_inputs, do_sample=True)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

modelo de pista dupla

  1. Importe as bibliotecas necessárias:
   importar torch
import os
from songgen import (
VoiceBpeTokenizer,
SongGenDualTrackForConditionalGeneration,
SongGenProcessor
)
importar soundfile como sf
  1. Carregue o modelo pré-treinado:
   ckpt_path = "..."  Caminho para o modelo pré-treinado do #
device = "cuda:0" if torch.cuda.is_available() else "cpu"
modelo = SongGenDualTrackForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. Defina o texto de entrada e as letras:
   letras = "..."  Texto da letra do #
texto = "..."  # Texto da descrição da música
ref_voice_path = 'path/to/your/reference_audio.wav' # Caminho do áudio de referência, opcional
separate = True # Se deve ou não separar a trilha vocal do áudio de referência
  1. Gerar músicas:
   model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True)
generation = model.generate(**model_inputs, do_sample=True)
vocal_array = generation.vocal_sequences[0, :generation.vocal_audios_length[0]].cpu().numpy()
acc_array = generation.acc_sequences[0, :generation.acc_audios_length[0]].cpu().numpy()
min_len = min(vocal_array.shape[0], acc_array.shape[0])
matriz_vocal = matriz_vocal[:min_len]
acc_array = acc_array[:min_len]
audio_array = vocal_array + acc_array
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

Operação detalhada da função

  • Geração de texto para músicaTexto de entrada contendo a letra e uma descrição da música e o modelo gerará o áudio correspondente da música.
  • controle refinadoDescrição: Ao inserir uma descrição no texto, o usuário pode controlar vários atributos da música gerada, como instrumentação, estilo, humor etc.
  • clonagem de somSom de referência: Um clipe de áudio de referência de três segundos é fornecido e o modelo pode imitar esse som para a geração de músicas.
  • Seleção do modo de saídaModo híbrido: Selecione o modo híbrido ou o modo de trilha dupla de acordo com a demanda, aplicação flexível em diferentes cenas.
  • Pipeline de pré-processamento de dadosPré-processamento automatizado de dados e controle de qualidade para garantir a alta qualidade dos resultados gerados.
Conteúdo 2
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " SongGen: um transformador autorregressivo de estágio único para geração automática de músicas

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil