Pitchtron

- Prosody Transfer Toolkit, mit dem Sie stilvolle Reden generieren können, obwohl Ihr Trainings -DB neutrale Stimmen von normalen Menschen ist.
- Wir können koreanische Dialekte (Kyongsang, Cheolla) und emotionale Prosodien sowie neutrale Dialoge übertragen.
- Hard Pitchtron ist für die strikte Übertragung der Prosodie daher die Satzstruktur von Referenz -Audio und Zielen besser überein.
- Soft Pitchtron verfolgt den natürlichen Klang -Prosodie -Transfer Auch der Referenz -Audio und der Zielsatz sind inhaltlich völlig unterschiedlich.
- Die DB, die wir mit diesem Projekt veröffentlichen, ist bei emotion_tts verfügbar
- Audio-Samples finden Sie unter http://jsh-tts.tistory.com/entry/pitchtron
- Pitchtron Paper: https://arxiv.org/abs/2005.10456
Unterschiede von drei Zweigen
- Alle drei hier bereitgestellten Filialen dienen zum Profikentransfer.
- Sie können Sprache von gewünschtem Stil, Satz und Stimme erzeugen.
- Der Referenz -Audio -Sprecher kann jeder sein und diese Person ist nicht erforderlich, um in die Trainingsdaten aufgenommen zu werden.
- Der Ziellautsprecher (die Stimme des synthetisierten Audios) muss in die Trainingsdaten aufgenommen werden.
- Mit hartem und weichem Pitorn können Sie in 'Kyongsang' Dialekt, 'Cheolla' Dialekt und emotionalem Stil synthetisieren, auch wenn das Modell nur mit einer einfachen, neutralen Sprache trainiert ist.
- Andererseits benötigen Sie für den globalen Stil des Stils während der Trainingszeit die dB des gewünschten Stils.
- Ich habe dieses Pitchtron vorgeschlagen, um im koreanischen Kyongsang ANC Cheolla -Dialekt zu sprechen.
- Der DB dieser Dialekte ist sehr begrenzt und die "Tonhöhekontur" ist der Schlüssel, um sie auf natürliche Weise zu verweisen. Dies gilt auch für viele andere Sprache, die in der Pitchakzentin (Japanisch), Tonal Langauge (Chinesen) und emotionaler Sprechstil.
| Zeitliche Auflösung | Lineare Kontrolle | Einstellung des Stimmbereichs | Nichtparallele Referenzierung | Support für unsichtbare Stil | Abmessungsanalyse |
|---|
| GST | X | X | X | O | X | O |
| Soft Pitchtron | O | * | O | O | O | X |
| Hartes Pitchtron | O | O | O | ** | O | X |
- *: Soft Pitchtron lässt Sie die Tonhöhe steuern, solange es natürlich klingen kann. Wenn es außerhalb des Gesangsbereichs des Ziellautsprechers ist, wird es geschnitten, um natürlichen Klang zu erzeugen.
- **: Hard pitchtron ermöglicht eine begrenzte nichtparallele Referenzierung.
- Begrenzte nicht parallele: Der Text kann unterschiedlich sein, aber die Struktur des Satzes muss übereinstimmen.
| Satz |
|---|
| Referenz | "아니요 지는 그짝허고 이야기허고 싶지 않아요" |
| Ziel | "그래요 갸는 친구허고 나들이가고 싶은것 같아요" |
- Temporale Auflösung: Können wir den Stil mit dem Zeitschritt unterschiedlich steuern?
- Lineare Steuerung: Kann ich genau so steuern, welchen Betrag die Tonhöhe (Anmerkung) skaliert wird? Ich muss den Einbettungsraum nicht untersuchen, um die Skalierungsänderung der Einbettungsdimension zu ermitteln, wenn sich die Eingabe ändert?
- Einstellung des Stimmbereichs: Wenn sich der Stimmbereich von Referenzlautsprechern und Ziellautsprechern drastisch unterscheidet, kann ich auf natürliche Weise in den Stimmbereich des Ziellautsprechers referenzieren?
- Nichtparallele Referenzierung: Wenn der Referenzsatz und der Zielsatz unterschiedlich sind, kann ich ihn natürlich synthetisieren?
- Support für unsichtbare Stile: Wenn das gewünschte Referenz -Audio den Stil ist, der während des Trainings noch nie gesehen wurde, kann es auf natürliche Weise übertragen werden?
- Anforderung an Dimensionsanalyse: Muss ich analysieren, welches Token/Dimension steuert, welches Attribut für dieses Modell die Kontrolle über dieses Modell hat?
1. Soft Pitontron
- Dieser Zweig bietet unbeaufsichtigte Profisübertragung paralleler, begrenzter nicht paralleler und nichtparalleler Sätze.
- Parallele: Referenz -Audio -Satz und Zielsynthese -Satzübereinstimmungen.
- Limited Nichtparallel: oben erwähnt.
- Nichtparallel: Referenz-Audio-Satz und Zielsynthese-Satz müssen nicht übereinstimmen.
- Ähnlich wie bei Global Style Token, aber es gibt mehrere Vorteile.
- Es ist viel robuster für Stile, die während des Trainings unsichtbar sind.
- Es ist viel einfacher zu kontrollieren.
- Sie müssen keine Token oder Dimensionen analysieren, um zu sehen, was jedes Token tut.
- Sie können den Pitch-Reichweite des Referenz-Audios so skalieren, dass der Ziellautsprecher entspricht, sodass die Übertragung zwischen Geschlechtern natürlicher ist.
- Sie können die Tonhöhe auch für jeden Phonemeingang steuern
- Der Pitch-Reichweite des Referenz-Audio ist so skaliert, dass er dem des Ziellautsprechers passt, sodass die Übertragung zwischen Geschlechtern natürlicher ist.
- Ihre Kontrolle über die Tonhöhe ist nicht so streng, dass sie nur auf die Menge, die sie natürlich klingt, skaliert wird.
2. Hard Pitontron
- Dieser Zweig bietet unbeaufsichtigte parallele und nicht parallele „begrenzte nicht parallele“ Profisübertragung.
- Stattdessen entsprechen der Rhythmus und die Tonhöhe genau wie Referenz -Audio.
- Der Pitch-Reichweite des Referenz-Audio ist so skaliert, dass er dem des Ziellautsprechers passt, sodass die Übertragung zwischen Geschlechtern natürlicher ist.
- Sie haben strenge Kontrolle über den Tonhöhenbereich, bis zu dem Betrag, in dem sie skaliert werden, auch wenn er zu unnatürlichen Klang führt.
3. Global Style Token
- Global Style Token Implementierung. Global Style Token
- Im Gegensatz zu Pitchtron funktioniert Global Style Token nur für die Stile, die während der Trainingsphase gesehen werden.
- Die Pitch -Reichweite kann nicht skaliert werden, was lautstarken Sound resultiert, wenn Referenz -Audio außerhalb des Stimmbereichs des Ziellautsprechers ist.
- Da es während des Trainings nicht robust für den neuen Stil ist, erzeugt es manchmal Sprache mit zu lautem Energie oder zu langer Pause.
Vorverarbeitungsschritte für mehrsprachige koreanische TTs mit mehreren Sprechern laufen
python preprocess.py --dataset={following keywords}
Führen Sie sie in der folgenden Reihenfolge aus. Sie können einige Teile abhängig von Ihren Anforderungen abstellen.
- selvas_multispeaker_pron
- public_korean_pron
- Integrate_dataset
- check_file_integrity
- generate_mel_f0
1.. SELVAS_MULTISPEAKER_PRON
- RAW PCM zu WAV_22050 unter jedem Lautsprecher
- src: '{data_root}/{sprecher}/raw/*. pcm'
- DST: '{data_root}/{Sprecher}/Wav_22050/*. WAV'
- Trimmen Sie mit 25 Top -DB
- Datenaufteilung: Machen Sie für jeweils 400 Audio es eval & das gleiche für den Test
- Zug: 33194 WAVs
- Eval: 83 WAVs
- Test: 84 WAVs
- Generieren Sie die Meta -Datei mit Skript, die in Phonem *Filelisten/einzeln_slanguage_selvas/train_file_list_pron.txt ist
2. Public_Korean_pron
- Wo heruntergeladen werden: 서울말 낭독체 발화 말뭉치
- Regularisierung der Stichprobenrate auf 22050 Hz (dieser DB hat unregelmäßige SR)
- Trimmen Sie mit Top 25 dB
- Quelle:
- WAV_16000/{Sprecher}/*. WAV
- Pron/{Speaker}/t **. Txt
- Ausgeschlossen vom Skript:
- Das Skript zum Entpacken und Verschieben der WAVs in WAV_16000 ist nicht enthalten. Sie müssen es in dieser Form selbst schaffen
- Die Textdatei für alle Sprecher sind in dieser DB gleich. Deshalb habe ich dieses gemeinsame Skript durch Literatur manuell geteilt.
- Auch das Skript für G2P ist auch nicht enthalten
- Zusätzliche Fehler in dieser DB sind
1. Missing speaker: fy15, mw12
2. Wrong data format: mw13_t01_s11.wav, mw13_t01_s12.wav, mw02_t10_s08.wav
3. Overlapping files and naming mistakes: mv11_t07_s4' (==mv11_t07_s40), fy17_t15_s18(==fy17_t16_s01), fv18_t07_s63(==fv18_t07_s62)
- DST: WAV_22050/{Sprecher}/*. WAV
3.. Integrate_dataset
- Ich integriere über zwei koreanische DBs.
- Dies kann auf mehrsprachige TTs verallgemeinert werden, bei denen mehrere DBs verschiedener Sprachen vorhanden sind.
- Somit wird der Sprachcode, der sich auf jede DB korrigiert, an die in diesem Schritt erstellte integrierte Meta -Textdatei angehängt.
- Wie zu
- Ändern Sie die Quelldateilisten ('Train_File_Lists', 'eval_file_lists', 'test_file_lists') und die Zieldatei -Listen (target_train_file_list, target_eval_file_list, target_test_file_list) von precess.proprocess.inte-dataset (argseta
- Möglicherweise möchten Sie die Methode _integrate () ändern, um Sprachcode für jeden DB zu bezeichnen. Tut mir leid, dass es vorerst hart entschärft ist.
- Precess.py rennen
python preprocess.py --dataset=integrate_dataset
4. Check_file_integrity
- Dieser Schritt generiert eine Meta -Datei mit WAV -Pfaden, die nicht lesen konnten.
- Vielleicht möchten Sie sie von Ihren letzten Filelisten entfernen oder einige Untersuchungen durchlaufen. Es ist auf dir. In diesem Schritt werden diese erkannten Dateien nicht von den Filelisten entfernt.
- out: problematic_merge_korean_pron _ {}. txt
5. generate_mel_f0 (optional)
- Dieser Schritt ist optional. Dieser Schritt extrahiert Funktionen für das Training und Speichern als Dateien.
- SRC: WAV_22050/*. WAV
- dst: mel/*. pt und f0/*. pt
6. Initialisieren Sie die ersten Epochen mit Single -Lautsprecher DB
- Bereiten Sie separate Zug, gültige Filelisten für Einzelredner vor
- Dateien für das Training und die Validierung von Einzellautsprechern sind auch in Multispeaker -Filelisten enthalten.
- Ich habe das Training anfänglich 30 Epochen mit Einzellautsprecher DB experimentiert und half dabei, die Ausrichtung der Encoder-Decoder-Ausrichtung sehr zu lernen.
Wie trainiere ich?
1. Befehle
python train.py {program arguments}
2. Programmargumente
| Option | Obligatorisch | Zweck |
|---|
| -O | O | Verzeichnispfad zum Speichern von Kontrollpunkten. |
| -C | X | Pfad des vorbereiteten Kontrollpunkts zum Laden. |
| -l | O | Log -Verzeichnis, um Protokolle für Tensorboard abzugeben. |
3. Vorbereitete Modelle
*Vorbereitete Modelle sind auf Phonem ausgebildet. Sie erwarten Phonem als Eingabe, wenn Sie Texte zur Synthese geben.
| Modell | Vorbereiteter Kontrollpunkt | Übereinstimmende Hyperparameter |
|---|
| Soft Pitchtron | Soft Pitchtron | Konfigurationen |
| Hartes Pitchtron | Hartes Pitchtron | Konfigurationen |
| Global Style Token | GST | Konfigurationen |
| Wellenlow -Vocoder | Wellenlow | - - |
Wie synthetisieren Sie?
1. Soft Pitontron
python inferent_soft_pitchtron.py
2. Hard Pitontron
python inference_hard_pitchtron.py
3. GST
python inference_gst_tts.py
Tipps!
- Um das Riss -Sound zu verhindern, muss der Referenz -Audio -Stimmbereich auf den Vokalbereich der Ziellautsprecher skaliert werden.
- Dieser Teil wird in unserem Code implementiert, aber der Vokalbereich des Ziellautsprechers wird grob berechnet, indem nur 10 Audios abgetastet und die maximale MIN als Varianz genommen werden.
- Sie erhalten einen viel besseren Klang , wenn Sie genauere Statistiken für den Vokalbereich für Ziellautsprecher verwenden.
Anerkennung
- Dieses Material basiert auf Arbeiten, die vom Ministerium für Handel, Industrie und Energie (Motie, Korea) im Rahmen des Innovationsprogramms für Industrial Technology (Nr. 10080667, Entwicklung der Technologie der Konversationssprachsynthesis, um Emotionen und Persönlichkeit von Robotern durch eine fundierte Quellendiversifizierung auszudrücken, unterstützt.
- Ich habe Hilfe in Bezug auf Graphem to Phoneme -Deckung von diesem großartigen Kerl
- Dieses Repository ist die Autorenimplementierung von folgenden Papier => (Pitchtron) https://arxiv.org/abs/2005.10456
- Referenzierte Repositories
| Beitrag | URL |
|---|
| Tacotron2 | https://github.com/nvidia/tacotron2 |
| Mellotron | https://github.com/nvidia/mellotron |
| Wellenlow | https://github.com/nvidia/waveglow |
| Koreanische Textverarbeitung | https://github.com/keithito/tacotron |