MegaTTS3 – Projektbeschreibung
Projektübersicht
MegaTTS3 ist ein hochwertiges Zero-Shot-Sprachsynthesesystem, das von ByteDance entwickelt wurde und auf der Sparse Alignment Enhanced Latent Diffusion Transformer-Technologie basiert. Das Projekt dient hauptsächlich akademischen Forschungszwecken und bietet leistungsstarke Text-to-Speech (TTS)- und Stimmklonfunktionen.
Kernfunktionen
🚀 Leicht und effizient
- Parameterumfang: Das Backbone-Netzwerk des TTS-Diffusionstransformers hat nur 0,45 Milliarden Parameter.
- Effiziente Inferenz: Optimiertes Architekturdesign für schnelle Sprachgenerierung.
🎧 Hochwertiges Stimmklonen
- Zero-Shot-Synthese: Klonen neuer Sprecherstimmen ohne Training.
- Hohe Wiedergabetreue: Die generierte Sprachqualität kommt der Originalaufnahme nahe.
- Online-Erlebnis: Kann auf Huggingface Demo ausprobiert werden.
🌍 Zweisprachige Unterstützung
- Mehrsprachig: Unterstützt gleichzeitig chinesische und englische Sprachsynthese.
- Code-Switching: Unterstützt die Generierung von gemischtsprachiger chinesisch-englischer Sprache.
- Sprachübergreifend: Englische Stimmen können chinesische Sprache synthetisieren (mit Akzentkontrolle).
✍️ Hohe Kontrollierbarkeit
- Akzentstärkekontrolle: Anpassung des Akzentgrades der generierten Sprache.
- Feinabstimmung der Aussprache: Unterstützung der feinkörnigen Anpassung von Aussprache und Dauer (in Kürze verfügbar).
- Intelligenzgewichtung: Steuerung der Sprachverständlichkeit über den Parameter p_w.
- Ähnlichkeitsgewichtung: Steuerung der Ähnlichkeit mit der Originalstimme über den Parameter t_w.
Technische Architektur
Hauptkomponenten
- TTS-Hauptmodell
- Basiert auf einem Sparse Alignment Enhanced Latent Diffusion Transformer.
- Unterstützt Zero-Shot-Sprachsynthese.
- Hochwertige Stimmklonfähigkeit.
- Sprach-Text-Aligner (Speech-Text Aligner)
- Trainiert mit Pseudo-Labels, die mit einer großen Anzahl von MFA-Expertenmodellen generiert wurden.
- Verwendung: Datensatzvorbereitung, Rauschfilterung, Phonemerkennung, Sprachsegmentierung.
- Graphem-zu-Phonem-Konverter (G2P)
- Feintuning auf Basis des Qwen2.5-0.5B-Modells.
- Bietet eine robuste Graphem-zu-Phonem-Konvertierung.
- WaveVAE
- Leistungsstarker Variational Autoencoder für Waveforms.
- Komprimiert 24-kHz-Sprache in eine akustische latente Darstellung von 25 Hz.
- Rekonstruiert die ursprüngliche Waveform nahezu verlustfrei.
Installation und Verwendung
Systemanforderungen
- Python 3.10
- Linux/Windows/Docker-Unterstützung
- Optionale GPU-Beschleunigung (empfohlen)
Schnellstart
- Repository klonen
git clone https://github.com/bytedance/MegaTTS3
cd MegaTTS3
- Umgebung konfigurieren
conda create -n megatts3-env python=3.10
conda activate megatts3-env
pip install -r requirements.txt
export PYTHONPATH="/path/to/MegaTTS3:$PYTHONPATH"
- Modell herunterladen
- Laden Sie vortrainierte Modelle von Google Drive oder Huggingface herunter.
- Platzieren Sie die Modelldateien im Verzeichnis
./checkpoints/xxx.
Verwendung
Befehlszeilen-Inferenz (Standard)
# Chinesische Sprachsynthese
python tts/infer_cli.py --input_wav 'assets/Chinese_prompt.wav' --input_text "另一边的桌上,一位读书人嗤之以鼻道,'佛子三藏,神子燕小鱼是什么样的人物,李家的那个李子夜如何与他们相提并论?'" --output_dir ./gen
# Englische Sprachsynthese (hohe Ausdruckskraft)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text 'As his long promised tariff threat turned into reality this week, top human advisers began fielding a wave of calls from business leaders.' --output_dir ./gen --p_w 2.0 --t_w 3.0
Akzentkontrollierte Synthese
# Beibehaltung des ursprünglichen Akzents (p_w ≈ 1.0)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text '这是一条有口音的音频。' --output_dir ./gen --p_w 1.0 --t_w 3.0
# Standardaussprache (p_w > 2.0)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text '这条音频的发音标准一些了吗?' --output_dir ./gen --p_w 2.5 --t_w 2.5
Web-Oberfläche
python tts/gradio_api.py
Parameterbeschreibung
Kernparameter
- p_w (Intelligenzgewichtung): Steuert die Sprachverständlichkeit. Prompts mit viel Rauschen benötigen einen höheren p_w-Wert.
- t_w (Ähnlichkeitsgewichtung): Steuert die Ähnlichkeit mit der Originalstimme, normalerweise 0-3 Punkte höher als p_w.
- Inferenzschritte: Standardmäßig 10 Schritte, CPU-Inferenz dauert ca. 30 Sekunden.
Akzentkontrolle
- p_w ≈ 1.0: Beibehaltung des ursprünglichen Akzents des Sprechers.
- p_w erhöhen: Annäherung an die Standardaussprache.
- t_w-Bereich: Normalerweise zwischen 2.0 und 5.0, eine angemessene Erhöhung kann die Ausdruckskraft verbessern.
Sicherheit und Einschränkungen
Sicherheitsüberlegungen
- WaveVAE-Encoder: Aus Sicherheitsgründen werden die Encoder-Parameter nicht veröffentlicht.
- Vorextrahierte latente Darstellungen: Für die Inferenz können nur vorextrahierte .npy-Latentdateien verwendet werden.
- Akademische Zwecke: Das Projekt ist hauptsächlich für die akademische Forschung gedacht.
Verwendungsprozess
- Bereiten Sie Audiodateien vor (.wav-Format, <24 Sekunden, Dateinamen ohne Leerzeichen).
- Laden Sie sie in die Sprachanfrage-Warteschlange hoch.
- Nach erfolgreicher Sicherheitsüberprüfung erhalten Sie die entsprechende .npy-Latentdatei.
- Verwenden Sie die .wav- und .npy-Dateien für die Inferenz.
Lizenz und Zitation
- Lizenz: Apache-2.0 License
- Veröffentlichungsdatum: 22. März 2025
- Betreuer: ByteDance
Anwendungsbereiche
Hauptanwendungen
- Sprachsyntheseforschung: Bereitstellung einer hochwertigen TTS-Baseline für Forscher.
- Stimmklonen: Realisierung personalisierter Sprachassistenten.
- Mehrsprachige Anwendungen: Unterstützung der Erstellung von chinesisch-englischen Inhalten.
- Akzentforschung: Erforschung und Steuerung von Akzentmerkmalen in der Sprache.
Erweiterte Anwendungen
- Datensatzvorbereitung: Verwendung des Aligners zur Vorbereitung von Daten für das Modelltraining.
- Sprachqualitätsfilterung: Filtern großer Sprachdatensätze.
- Phonemerkennung: Durchführung einer Phonem-Analyse der Sprache.
- Sprachkonvertierung: Realisierung der Sprachkonvertierung zwischen verschiedenen Sprechern.
Hinweise
- Modell-Download: Die vortrainierten Modelldateien müssen manuell heruntergeladen werden.
- Abhängigkeitsverwaltung: Achten Sie auf die Übereinstimmung der pydantic- und gradio-Versionen.
- Umgebungsvariablen: Stellen Sie PYTHONPATH und CUDA_VISIBLE_DEVICES korrekt ein.
- Dateiformat: Die Eingabeaudio muss im .wav-Format vorliegen und kürzer als 24 Sekunden sein.
- Sicherheitsprüfung: Hochgeladene Audiodateien müssen eine Sicherheitsprüfung bestehen.