Beschreibung
WaveGlow ist ein flussbasiertes generatives Netzwerk zur Sprachsynthese, entwickelt von den NVIDIA-Forschern Ryan Prenger, Rafael Valle und Bryan Catanzaro. Es kombiniert Ideen von Glow und WaveNet, um qualitativ hochwertiges Sprach-Audio aus Mel-Spektrogrammen zu erzeugen, ohne den autoregressiven Dekodierungsschritt, auf den frühere Vocoder angewiesen waren.
Weiterlesen
Das Netzwerk wird als ein einzelnes Modell implementiert, das mit einer einzigen Kostenfunktion trainiert wird: Maximierung der Wahrscheinlichkeit der Trainingsdaten. Laut dem begleitenden Papier macht dies das Training einfacher und stabiler als mehrstufige Ansätze, und die PyTorch-Implementierung erzeugt Berichten zufolge Audio mit einer Rate von 1200 kHz auf einer NVIDIA V100 GPU, mit mittleren Meinungswerten, die mit der besten zu diesem Zeitpunkt öffentlich verfügbaren WaveNet-Implementierung vergleichbar sind.
Das Repository bietet alles, was benötigt wird, um diese Arbeit zu reproduzieren oder darauf aufzubauen. Ein vortrainierter WaveGlow-Checkpoint und passende Mel-Spektrogramm-Dateien sind verfügbar, um sofort Inferenz durchzuführen, indem das Skript inference.py verwendet wird, um Audio aus einer Liste von Mel-Spektrogramm-Dateien zu synthetisieren. Für das Training eines neuen Modells enthält das Repo Skripte, die auf dem Format des LJ Speech-Datensatzes basieren: Dateilisten werden in Trainings- und Testsets aufgeteilt, Mel-Spektrogramme werden mit mel2samp.py generiert, und das Training erfolgt über train.py, wobei distributed.py für Multi-GPU-Setups verfügbar ist. Das Mixed-Precision (fp16) Training kann über die Konfigurationsdatei des Modells aktiviert werden. Ein separates Konvertierungsskript, convert_model.py, aktualisiert ältere Checkpoints, die vor der aktuellen Architektur gespeichert wurden, um damit zu arbeiten, da die aktuelle Version die Residual- und Skip-Verbindungen in das Netzwerk integriert.
Die Einrichtung beginnt mit dem Klonen des Repositories und der Initialisierung seines Git-Submoduls, der Installation der Python-Anforderungen und der Installation von NVIDIA's Apex-Bibliothek, von der der Trainings- und Inferenzcode abhängt. Da das Projekt eine Forschungsfreigabe und keine verpackte Anwendung ist, bedeutet die Nutzung, direkt mit diesen Befehlszeilenskripten anstelle einer grafischen Benutzeroberfläche zu arbeiten.
WaveGlow richtet sich an Forscher und Ingenieure der Sprachsynthese, die eine Referenzimplementierung eines Vocoders wünschen, um Inferenz durchzuführen, auf neuen Sprachdaten neu zu trainieren oder mit anderen generativen Ansätzen wie WaveNet zu vergleichen. Audio-Proben, die von dem Modell erzeugt werden, sind auf der verlinkten Website des Projekts verfügbar, und das begleitende Papier dokumentiert die Bewertung der mittleren Meinungswerte, die zur Beurteilung der Audioqualität verwendet wurden.
- KategorieText-to-Speech
- PreismodellOpen Source
- BereitstellungCloud, Selbst gehostet
- PlattformenNVIDIA Blackwell, DRIVE, Jetson, RTX
WaveGlow's Kernfunktionen
Erzeugt Sprach-Audio direkt aus Mel-Spektrogrammen ohne einen autoregressiven Dekodierungsschritt
Trainiert mit einer einzigen Maximum-Likelihood-Kostenfunktion
Enthält einen vortrainierten WaveGlow-Checkpoint und passende Mel-Spektrogrammdaten für die Inferenz
Beinhaltet Skripte zum Trainieren eines neuen Modells im Format des LJ Speech-Datensatzes
Unterstützt verteiltes Training mit mehreren GPUs über NCCL
Unterstützt Mixed-Precision (fp16) Training und Inferenz
Enthält ein Konvertierungsskript zum Aktualisieren älterer Checkpoints auf die aktuelle Architektur
Berichtet über die Audioerzeugung mit 1200 kHz auf einer NVIDIA V100 GPU gemäß dem begleitenden Papier
Erste Schritte mit WaveGlow
Repository klonen: Klonen Sie NVIDIA/waveglow und initialisieren Sie sein Submodul.
Abhängigkeiten installieren: Installieren Sie die Python-Anforderungen und die Apex-Bibliothek.
Daten abrufen: Laden Sie das vortrainierte WaveGlow-Modell und Beispiel-Mel-Spektrogramme herunter oder den LJ Speech-Datensatz, um Ihr eigenes Modell zu trainieren.
Inferenz durchführen: Generieren Sie Audio aus Mel-Spektrogrammen mit inference.py.
Trainieren (optional): Führen Sie train.py oder distributed.py für mehrere GPUs auf Ihrem eigenen Datensatz aus.
Ausgabe bewerten: Vergleichen Sie die Qualität des erzeugten Audios und passen Sie Einstellungen wie fp16 oder den Sigma-Parameter an.
WaveGlow's Anwendungsfälle
- Text-zu-Sprache-Vocoding
- Vocoder-Forschung
- Benutzerdefiniertes Sprachtraining





