Allgemeine Einführung
AudioX ist ein Open-Source-Projekt auf GitHub von Zeyue Tian et al. Das offizielle Papier ist auf arXiv veröffentlicht (Nr. 2503.10522). Es basiert auf der Diffusionstransformator-Technologie, die qualitativ hochwertiges Audio und Musik aus einer Vielzahl von Eingaben wie Text, Video, Bilder, Audio usw. generieren kann. AudioX ist einzigartig, da es nicht nur eine einzige Eingabe unterstützt, sondern auch die Verarbeitung von multimodalen Daten vereinheitlicht und die Ergebnisse durch natürliche Sprachsteuerung generiert. Das Projekt stellt zwei Datensätze zur Verfügung: vggsound-caps (190.000 Audiobeschreibungen) und V2M-caps (6.000.000 Musikbeschreibungen), die das Problem unzureichender Trainingsdaten lösen.AudioX stellt den Code und die vortrainierten Modelle für Entwickler, Forscher und Kreative zur Verfügung.
Funktionsliste
- Unterstützung mehrerer Eingänge zur Audioerzeugung: Sie können Text, Video, Bilder oder Audio verwenden, um entsprechende Audios oder Musik zu erzeugen.
- Natürliche Sprachsteuerung: Passen Sie den Audioinhalt oder -stil mit Textbeschreibungen an, z. B. "leichte Klaviermusik".
- Hochwertige Ausgabe: Die erzeugte Audio- und Musikqualität ist hoch und entspricht dem professionellen Niveau.
- Einheitliche multimodale Verarbeitung: die Fähigkeit, verschiedene Arten von Eingaben gleichzeitig zu verarbeiten und konsistente Ergebnisse zu erzielen.
- Open-Source-Ressourcen: Vollständiger Code, vortrainierte Modelle und Datensätze sind verfügbar, um die Sekundärentwicklung zu erleichtern.
- Native Demo-Unterstützung: Interaktive Schnittstelle über Gradio zum einfachen Testen von Funktionen.
Hilfe verwenden
AudioX erfordert einige Programmierkenntnisse und ist für Benutzer mit Python-Erfahrung geeignet. Im Folgenden finden Sie eine detaillierte Installations- und Nutzungsanleitung, die Ihnen den Einstieg erleichtert.
Einbauverfahren
- Code herunterladen
Klonen Sie das AudioX-Repository, indem Sie den folgenden Befehl in das Terminal eingeben:
git clone https://github.com/ZeyueT/AudioX.git
Wechseln Sie dann in das Projektverzeichnis:
cd AudioX
- Die Umwelt gestalten
AudioX erfordert Python 3.8.20. Verwenden Sie Conda, um eine virtuelle Umgebung zu erstellen:
conda create -n AudioX python=3.8.20
Aktivieren Sie die Umwelt:
conda activate AudioX
- Installation von Abhängigkeiten
Installieren Sie die für das Projekt erforderlichen Bibliotheken:
pip install git+https://github.com/ZeyueT/AudioX.git
Installieren Sie die Audioverarbeitungsprogramme erneut:
conda install -c conda-forge ffmpeg libsndfile
- Herunterladen des vortrainierten Modells
Erstellen Sie einen Modellordner:
mkdir -p model
Laden Sie Modelle und Konfigurationsdateien herunter:
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
- Überprüfen der Installation
Prüfen Sie, ob die Umgebung normal ist:
python -c "import audiox; print('AudioX installed successfully')"
Wenn kein Fehler gemeldet wird, war die Installation erfolgreich.
Hauptfunktionen
AudioX unterstützt eine Vielzahl von Generierungsaufgaben, einschließlich Text zu Audio (T2A), Video zu Musik (V2M) und so weiter. Im Folgenden wird die spezifische Arbeitsmethode beschrieben.
Erzeugen von Audio aus Text
- Erstellen Sie eine Python-Datei wie
text_to_audio.py
. - Geben Sie den folgenden Code ein:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
- Führen Sie das Skript aus:
python text_to_audio.py
- Das erzeugte Audio wird gespeichert als
keyboard.wav
können Sie die Wirkung mit dem Player überprüfen.
Erzeugen von Musik aus Videos
- Bereiten Sie eine Videodatei vor, z. B.
sample.mp4
. - Skripte erstellen
video_to_music.py
Eingabe:
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")
- Laufen:
python video_to_music.py
- Die erzeugte Musik wird gespeichert als
video_music.wav
.
Starten Sie die lokale Gradio-Demo
- Geben Sie ihn in das Terminal ein:
python3 run_gradio.py --model-config model/config.json --share
- Nachdem der Befehl ausgeführt wurde, wird ein lokaler Link erzeugt (z. B. http://127.0.0.1:7860). Öffnen Sie den Link und Sie können AudioX über die Weboberfläche testen.
- Geben Sie einen Text ein (z. B. "Music for Piano and Fiddle") oder laden Sie ein Video auf der Benutzeroberfläche hoch und klicken Sie auf "Generate", um das Ergebnis zu hören.
Beispiel für Scripted Reasoning
Für komplexere Generierungsaufgaben wird offiziell ein ausführliches Argumentationsskript zur Verfügung gestellt:
- Dokumente erstellen
generate.py
Eingabe:
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)
- Laufen:
python generate.py
- Das erzeugte Audio wird gespeichert als
output.wav
.
Beispiel für eine Konfiguration
Im Folgenden sind die Eingabekonfigurationen für die verschiedenen Aufgaben aufgeführt:
- Text zu Audio::
text="敲击键盘的声音"
,video=None
- Video zu Musik::
video="sample.mp4"
,text="为视频生成音乐"
- gemischter Eingang::
video="sample.mp4"
,text="海浪声和笑声"
caveat
- GPUs erhöhen die Generierungsgeschwindigkeit erheblich und werden empfohlen.
- Das Videoformat muss mp4 sein und die Audioausgabe ist wav.
- Vergewissern Sie sich, dass Ihr Netzwerk stabil ist. Das Herunterladen des Modells kann einige Minuten dauern.
Anwendungsszenario
- Musikkomposition
Geben Sie eine Textbeschreibung ein, z. B. "traurige Geigenmelodie", um schnell einen Musikclip zu erstellen. - Video-Soundtrack
Laden Sie Videos hoch, um passende Hintergrundmusik oder Soundeffekte zu erzeugen. - Forschung und Entwicklung (F&E)
Verbesserung von Audiogenerierungstechniken unter Verwendung von Open-Source-Code und -Datensätzen.
QA
- Unterstützt es Chinesisch?
Ja, es unterstützt chinesische Eingaben, wie zum Beispiel "leichte Klaviermusik". - Wie viel Speicherplatz wird benötigt?
Der Code und das Modell sind etwa 2-3 GB groß, und der vollständige Datensatz erfordert mehrere Dutzend zusätzliche GB. - Wie lange dauert die Erstellung?
Ein paar Sekunden bis eine Minute auf der GPU, die CPU kann ein paar Minuten dauern.