Sie können eine Umgebung mit Docker oder Conda bauen.
Wenn Sie Docker nicht installiert haben, befolgen Sie bitte die Links, um Installationsanweisungen für Ubuntu, Mac oder Windows zu finden.
Docker -Bild erstellen:
docker build -t emospeech .
Docker -Bild ausführen:
bash run_docker.sh
Wenn Sie nicht konda installiert sind, finden Sie hier die Installationsanweisungen für Ihr Betriebssystem.
conda create -n etts python=3.10
conda activate etts
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
Wenn Sie eine andere Version von CUDA auf Ihrem Computer haben, finden Sie hier den zutreffenden Link für die Pytorch -Installation.
Wir haben Daten von 10 englischen Sprechern aus dem ESD -Datensatz verwendet. So laden Sie alle .wav .txt zusammen mit .TextGrid -Dateien herunter, die mit MFA erstellt wurden:
bash download_data.sh
Um ein Modell zu trainieren, benötigen wir vorbereitete Dauer, Energie-, Tonhöhen- und Egeemap -Funktionen. Aus src -Verzeichnislauf:
python -m src.preprocess.preprocess
So sollte Ihr Datenordner aussehen:
.
├── data
│ ├── ssw_esd
│ ├── test_ids.txt
│ ├── val_ids.txt
└── └── preprocessed
├── duration
├── egemap
├── energy
├── mel
├── phones.json
├── pitch
├── stats.json
├── test.txt
├── train.txt
├── trimmed_wav
└── val.txt
config/config.py .python -m src.scripts.train aus.Das Testen wird beim Testen der Teilmenge des ESD -Datensatzes implementiert. Audio zu synthetisieren und neuronale MOS (NISQA TTS) zu berechnen:
config/config.py im Abschnitt Inference .python -m src.scripts.test aus. Sie finden Nisqa TTs für originelle, rekonstruierte und generierte Audio in test.log .
Emospeech wird auf Phonemsequenzen ausgebildet. Unterstützte Telefone finden Sie in data/preprocessed/phones.json . Dieser Repositroy wurde für die akademische Forschung erstellt und unterstützt keine automatische Konvertierung von Graphem-Phoneme. Wenn Sie jedoch einen willkürlichen Satz mit Emotionskonditionierung synthetisieren möchten, können Sie:
Erzeugen Sie Phonemsequenz aus Graphemen mit MFA.
1.1 Folgen Sie dem Installationshandbuch
1.2 Download English G2P Model: mfa model download g2p english_us_arpa
1.3 erzeugen Sie phoneme.txt aus graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Führen Sie python -m src.scripts.inference aus und geben Sie Argumente an:
| Аrgument | Bedeutung | Mögliche Werte | Standardwert |
|---|---|---|---|
-sq | Phonemsequenz zu Syntheseze | Finden Sie in data/phones.json . | Nicht gesetzt, erforderliches Argument. |
-emo | Id der gewünschten Sprach Emotion | 0: neutral, 1: wütend, 2: glücklich, 3: traurig, 4: Überraschung. | 1 |
-sp | ID der Sprecherstimme | Von 1 bis 10 entsprechen 0011 ... 0020 in der ursprünglichen ESD -Notation. | 5 |
-p | Pfad, wo synthetisierte Audio speichern kann | Any mit .wav -Erweiterung. | Generation_From_Phoneme_sequence.wav |
Zum Beispiel
python -m src.scripts.inference --sq "S P IY2 K ER1 F AY1 V T AO1 K IH0 NG W IH0 TH AE1 NG G R IY0 IH0 M OW0 SH AH0 N"
Wenn die Ergebnisdatei nicht synthetisiert wird, überprüfen Sie inference.log für OOV -Telefone.