Eine Pytorch-Implementierung von CS-Tacotron, einem auf TacoTron basierenden TTS-Modell mit Code-Witching-Sprachsynthese. Eine reguläre Version von Tacotron finden Sie in diesem Repo.
Mit dem breiten Erfolg der Modelle für maschinelles Lernen (Text-to-Speech) haben sich vielversprechende Ergebnisse bei der Synthese der realistischen Sprache bewährt, die die Fähigkeit der Maschine, menschliche Stimmen zu synthetisieren, zu synthetisieren. In der Domäne der chinesisch-englischen Code-Switching-Text-zu-Sprache-Synthese wurden jedoch nur wenige Fortschritte erzielt, in denen die Maschine lernen muss, sowohl Eingabe als auch Ausgabe auf mehrsprachige Weise zu verarbeiten. Der Code-Switching tritt auf, wenn ein Sprecher zwischen zwei oder mehr Sprachen wechselt. Heutzutage kommuniziert die Menschen im Alltag in Code-Switching-Sprachen, daher muss gesprochene Sprachtechnologien wie TTs entwickelt werden, um mehrsprachige Eingaben und Ausgaben zu verarbeiten.
In dieser Arbeit präsentieren wir Tacotron mit dem Code-sankt, das basierend auf dem hochmodernen End-to-End-Generativmodell Tacotron (Wang et al., 2017) basiert. CS-Tacotron ist in der Lage, mit dem RAW-CS-Text konditioniertes Code-Switching-Sprache zu synthetisieren. In Anbetracht von CS-Text- und Audiopaaren kann unser Modell End-to-End mit der richtigen Datenvorverarbeitung geschult werden. Darüber hinaus schulen wir unser Modell im Leser-Datensatz, einem chinesisch-englischen Code-Witching-Vorlesungsdatensatz, der aus der DSP (Digital Signal Processing) an der National Taiwan University (NTU) stammt. Wir präsentieren mehrere wichtige Implementierungstechniken, damit das Tacotron -Modell bei dieser herausfordernden mehrsprachigen Sprachgenerierungsaufgabe eine gute Leistung erbringt. CS-Tacotron besitzt die Fähigkeit, CS-Sprache aus CS-Text zu erzeugen, und spricht lebhaft mit dem Stil des Lautsprechers von LecturedSP.
Weitere Informationen dieser Arbeit finden Sie in Report.pdf .
Pull -Anfragen sind willkommen!
Audioproben von CS-Tacotron. Alle folgenden Phrasen sind während des Trainings unsichtbar.
Installieren Sie Python 3.
Installieren Sie die neueste Version von Pytorch gemäß Ihrer Plattform. Um eine bessere Leistung zu erzielen, installieren Sie bei der GPU -Unterstützung (CUDA), wenn sie lebensfähig sind. Dieser Code funktioniert mit Pytorch 1.0 und später.
(Optional) Installieren Sie die neueste Version von TensorFlow gemäß Ihrer Plattform. Dies kann optional sein, aber vorerst für die Sprachverarbeitung erforderlich.
Anforderungen installieren:
pip3 install -r requirements.txt
Warnung: Sie müssen je nach Plattform Taschenlampen und Tensorflow / TensorFlow-GPU installieren. Hier listen wir die Pytorch- und TensorFlow -Version auf, die wir beim Erstellen dieses Projekts verwenden.
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
Hinweis: Wir haben unser Modell in unserem eigenen Datensatz trainiert: Vorträge. Derzeit ist dieser Datensatz für die Veröffentlichung nicht verfügbar und bleibt eine private Sammlung im Labor. Weitere Informationen zu diesem Datensatz finden Sie in 'Report.pdf'.
Laden Sie einen Code-Switch-Datensatz Ihrer Wahl herunter.
Entpacken Sie den Datensatz in ~/data/text und ~/data/audio .
Nach dem Auspacken sollte Ihr Datenbaum so aussehen, damit die Standardwege funktionieren:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
HINWEIS: Setzen Sie für den folgenden Abschnitt die Pfade gemäß den Dateinamen Ihres Datensatzes, dies ist nur eine Demonstration einiger Beispieldaten. Das Format Ihres Datensatzes sollte mit den angegebenen Beispieldaten für diesen Code übereinstimmen.
Preprocess die Textdaten mit SRC/Precess.py:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
Preprocess die Audiodaten mit SRC/Precess.py:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
Visualisierung der Audio -Präprozess -Unterschiede:
Erstellen Sie modellreiche Meta-Dateien aus Text und Audio mit SRC/Precess.py:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
Trainieren Sie ein Modell mit SRC/Train.py
python3 train.py
Einstellbare Hyperparameter finden Sie in SRC/config.py. Sie können diese Parameter anpassen und einstellen, indem Sie die Datei bearbeiten. Die Standard-Hyperparameter werden für LECTUREDSP und andere chinesisch-englische Code-Switching-Daten empfohlen.
Überwachen Sie mit Tensorboardx (optional)
tensorboard --logdir 'path to log dir'
Der Trainer entfällt standardmäßig Audio und Ausrichtungen alle 2000 Schritte. Sie finden diese in CS-tacotron/ckpt .
Wir möchten der Arbeit von Ryuichi Yamamoto, einer wunderbaren Pytorch -Implementierung von Tacotron, die wir hauptsächlich auf unsere Arbeit basieren, eine wundervolle Pytorch -Implementierung erteilen.
Wir zeigen das Ausrichtungsdiagramm der Testphase unseres Modells, in der die erste die Ausrichtung der einsprachigen chinesischen Eingaben zeigt, die zweite ist ein chinesisch-englischer Code-Schalteingang, und der dritte ist ein moninualer englischer Eingang.