AI Personal Learning
und praktische Anleitung
Ressource Empfehlung 1

SongGen: Ein einstufiger autoregressiver Transformator für die automatische Songgenerierung

Allgemeine Einführung

SongGen ist ein quelloffenes, einstufiges autoregressives Transformer-Modell, das für die Generierung von Text in Songs entwickelt wurde. Das Modell ist in der Lage, aus Texteingaben Songs mit Gesang und Hintergrundmusik zu generieren. songGen bietet eine fein abgestufte Kontrolle über eine Vielzahl von musikalischen Attributen, einschließlich Texten, Instrumentenbeschreibungen, Musikstil, Stimmung und Klangfarbe. Zusätzlich hat der Benutzer die Möglichkeit, einen dreisekündigen Referenz-Audioclip für das Klonen von Sounds zu verwenden. songGen unterstützt zwei Ausgabemodi: Der Hybrid-Modus erzeugt eine gemischte Spur, die Gesang und Hintergrundgesang direkt enthält, und der Zwei-Spur-Modus erzeugt separate Gesangs- und Hintergrundspuren für nachfolgende Anwendungen. Das Projekt bietet auch eine automatisierte Datenvorverarbeitung und einen effizienten Qualitätskontrollmechanismus, der das Engagement der Gemeinschaft und die zukünftige Forschung erleichtern soll.

SongGen: Einstufiger autoregressiver Transformator für automatische Songgenerierung-1


 

Funktionsliste

  • Text-zu-Song-Generierung
  • Unterstützt die feinkörnige Steuerung von Texten, Instrumentenbeschreibungen, Musikstil, Stimmung und Klangfarbe
  • Bietet dreisekündige Referenz-Audioclips zum Klonen von Sounds
  • Ausgänge im gemischten Modus und im Doppelspurmodus
  • Automatisierte Datenvorverarbeitungspipeline
  • Open-Source-Modellgewichte, Trainingscode, kommentierte Daten und Verarbeitungspipeline

 

Hilfe verwenden

Vielen Dank für die Bereitstellung der offiziellen Informationen zum Installationsprozess! Ich werde auf der Grundlage dieser Informationen Korrekturen vornehmen. Nachfolgend finden Sie den aktualisierten Hilfeabschnitt zur Verwendung:

Hilfe verwenden

Ablauf der Installation

  1. Klonen des Projektlagers:
   git clone https://github.com/LiuZH-19/SongGen.git
cd SongGen
  1. Erstellen und aktivieren Sie eine neue Conda-Umgebung:
   conda create -n songgen python=3.9.18
conda activate songgen
  1. Installieren Sie CUDA 11.8 und die zugehörigen Abhängigkeiten:
   conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
  1. Verwenden Sie SongGen nur im Inferenzmodus:
   pip install .

Checkpoints herunterladen

Bitte laden Sie die vortrainierten Modellprüfpunkte für xcodec und songgen herunter.

logische Schlussfolgerungen

Hybrid-Modell

  1. Importieren Sie die erforderlichen Bibliotheken:
   Brenner importieren
importieren os
von songgen importieren (
VoiceBpeTokenizer,
SongGenMixedForConditionalGeneration, SongGenProcessor, SongGenMixedForConditionalGeneration, SongGenProcessor
SongGenProcessor
)
importiere soundfile as sf
  1. Laden Sie das vortrainierte Modell:
   ckpt_path = "..."  Pfad zum #-vorgebildeten Modell
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenMixedForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. Definieren Sie den Eingabetext und den Liedtext:
   lyrics = "..."  # Text des Liedtextes
text = "..."  # Musikbeschreibungstext
ref_voice_path = 'path/to/your/reference_audio.wav' # Referenz-Audiopfad, optional
separate = True # Angabe, ob die Gesangsspur vom Referenz-Audio getrennt werden soll oder nicht
  1. Erzeugen Sie Lieder:
   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)

zweigleisiges Modell

  1. Importieren Sie die erforderlichen Bibliotheken:
   Brenner importieren
importieren os
von songgen importieren (
VoiceBpeTokenizer,
SongGenDualTrackForConditionalGeneration,
SongGenProcessor
)
importiere soundfile als sf
  1. Laden Sie das vortrainierte Modell:
   ckpt_path = "..."  Pfad zum #-vorgebildeten Modell
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenDualTrackForConditionalGeneration.from_pretrained(
ckpt_path,
attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)
  1. Definieren Sie den Eingabetext und den Liedtext:
   lyrics = "..."  # Text des Liedtextes
text = "..."  # Musikbeschreibungstext
ref_voice_path = 'path/to/your/reference_audio.wav' # Referenz-Audiopfad, optional
separate = True # Angabe, ob die Gesangsspur vom Referenz-Audio getrennt werden soll oder nicht
  1. Erzeugen Sie Lieder:
   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])
vocal_array = vocal_array[:min_len]
acc_array = acc_array[:min_len]
audio_arr = vocal_array + acc_array
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

Detaillierte Funktionsweise

  • Text-zu-Song-GenerierungEingabe eines Textes, der den Liedtext und eine Beschreibung der Musik enthält, und das Modell generiert das entsprechende Audio des Liedes.
  • feinkörnige SteuerungDurch die Eingabe einer Beschreibung in den Text kann der Benutzer verschiedene Attribute des generierten Songs steuern, wie z. B. Instrumentierung, Stil, Stimmung usw.
  • Sound-KlonenEin dreisekündiger Audioclip wird zur Verfügung gestellt und das Modell kann diesen Sound für die Songgenerierung imitieren.
  • Auswahl des AusgabemodusWählen Sie je nach Bedarf den Hybridmodus oder den Zweispurmodus, um einen flexiblen Einsatz in verschiedenen Szenen zu ermöglichen.
  • Pipeline für die DatenvorverarbeitungAutomatisierte Datenvorverarbeitung und Qualitätskontrolle, um eine hohe Qualität der erzeugten Ergebnisse zu gewährleisten.
Inhalt 2
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " SongGen: Ein einstufiger autoregressiver Transformator für die automatische Songgenerierung

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)