Voice100 enthält neuronale TTS/ASR -Modelle. Die Inferenz von Voice100 ist kostengünstig, da seine Modelle winzig sind und nur von CNN ohne Rekursion abhängen.
Das TTS -Modell ist in zwei Sub -Modelle, Align Model und Audio -Modell, eingewiesen. Die ausgerichteten Model -Vorhersagen Textausrichtungen haben einen Text angegeben. Ein ausgerichteter Text wird aus dem Text und den Textausrichtungen generiert. Die Audiomodell -Vorhersagen der Weltfunktionen (F0, Spektrumumschlag, codierte Aperiodizität) angesichts des ausgerichteten Textes.
Ausrichtungsnetzwerk
Graph TD
A [Eingabetext] -> | Hallo | B (Einbettung)
B -> c (1d invertiertes Rest x4)
C -> D (Faltung)
D -> | H: 0,1 E: 0,2 L: 1,1 L: 1,1 O: 1,2 | E [Ausrichtung]
Audio -Netzwerk
Graph TD
A [ausgerichteter Text] -> | _hee_l_l_oo | B (Einbettung)
B -> c (1d invertiertes Rest x4)
C -> D (1D -Transponierung der Faltung)
D -> e (1d umgekehrter Rest x3)
E -> f (Faltung)
F -> g [Weltparameter]
| Name | Type | Params
-----------------------------------------
0 | embedding | Embedding | 14.8 K
1 | layers | Sequential | 8.6 M
-----------------------------------------
8.6 M Trainable params
0 Non-trainable params
8.6 M Total params
17.137 Total estimated model params size (MB)
| Name | Type | Params
-------------------------------------------
0 | embedding | Embedding | 14.8 K
1 | decoder | VoiceDecoder | 11.0 M
2 | norm | WORLDNorm | 518
3 | criterion | WORLDLoss | 0
-------------------------------------------
11.1 M Trainable params
518 Non-trainable params
11.1 M Total params
22.120 Total estimated model params size (MB)
Die Eingabe des Align -Modells ist die Abfolge von Token des Eingabetxtes. Der Eingangstext ist niedrigerer Fall und tokenisiert in Zeichen und wird vom Text -Encoder codiert. Der Textcodierer verfügt über 28 Zeichen im Wortschatz, das niedrigere Alphabete, einen Raum und eine Apostrophie enthält. Alle Zeichen, die nicht im Wortschatz gefunden werden, werden entfernt.
Die Ausgabe des Align -Modells ist die Abfolge von Timingspaaren, die der Anzahl der Eingangs -Token übereinstimmen. Ein Paar hat zwei Werte, die Anzahl der Frames vor dem Token und die Anzahl der Frames für das Token. Ein Rahmen ist 20 ms. Ein ausgerichteter Text wird aus dem Eingangstext und den Zeitpaaren erzeugt. Die Länge des ausgerichteten Textes ist die Anzahl der Gesamtrahmen für den Audio.
Die Eingabe des Audiomodells ist der codierte ausgerichtete Text, der genauso codiert ist wie die Vorverarbeitung des Align-Modells, außer dass ein Token im Wortschatz für den Abstand zwischen Token für den ursprünglichen Text hinzugefügt wird.
Die Ausgabe des Audiomodells ist die Abfolge von F0, F0 -Existenzen, logarithmischer Spektralhülle, codierter Aperiodizität. Eine F0 -Existenz ist ein boolescher Wert, der wahr ist, wenn F0 ansonsten falsch verfügbar ist. F0 wird in 0 gezwungen, wenn F0 Existenz falsch ist. Ein Rahmen ist 10 ms. Die Länge des Ausgangs ist doppelt so hoch wie die Länge des Eingangs.
Das ASR-Modell ist 9-layer-Mobilenet-ähnlicher invertierter Rest, der für den CTC-Verlust ausgebildet ist.
ASR -Netzwerk
Graph TD
A [MEL -Spektrogramm] -> B (1d invertiertes Rest x 12)
B -> C (Faltung)
C -> G [Protokolls des ausgerichteten Textes]
| Name | Type | Params
----------------------------------------------------------------
0 | encoder | ConvVoiceEncoder | 11.6 M
1 | decoder | LinearCharDecoder | 14.9 K
2 | loss_fn | CTCLoss | 0
3 | batch_augment | BatchSpectrogramAugumentation | 0
----------------------------------------------------------------
11.6 M Trainable params
0 Non-trainable params
11.6 M Total params
23.243 Total estimated model params size (MB)
Das Align-Modell ist 2-layer-bidirektionales LSTM, das ausgebildet ist, um ausgerichtete Texte von MFCC-Audiofunktionen vorherzusagen. Das Align -Modell wird verwendet, um ausgerichtete Texte für den Datensatz zum Training der TTS -Modelle vorzubereiten.
| Name | Type | Params
----------------------------------------------------------------
0 | conv | Conv1d | 24.7 K
1 | lstm | LSTM | 659 K
2 | dense | Linear | 7.5 K
3 | loss_fn | CTCLoss | 0
4 | batch_augment | BatchSpectrogramAugumentation | 0
----------------------------------------------------------------
691 K Trainable params
0 Non-trainable params
691 K Total params
1.383 Total estimated model params size (MB)
voice100-prepare-dataset
--dataset ljspeech
--language en
--use_phone
voice100-prepare-dataset
--dataset librispeech
--language en
--use_phone
voice100 fit
--config config/asr_en_phone_base.yaml
--trainer.accelerator gpu
--trainer.devices 1
--trainer.precision 16
--trainer.default_root_dir ./outputs/asr_en_phone_base Dies generiert den ausgerichteten Text als data/${DATASET}-phone-align.txt .
voice100-align-text
--batch_size 4
--dataset ljspeech
--language en
--use_phone
--checkpoint asr_en_phone_small-20230309.ckptvoice100 fit --config voice100/config/align_en_phone_base.yaml
--trainer.accelerator gpu
--trainer.devices 1
--trainer.precision 16
--trainer.default_root_dir=./outputs/align_en_phone_base Dies generiert die Statistiken als data/${DATASET}-stat.pt
voice100-calc-stat
--dataset ljspeech
--language en
--output data/audio-stat.pyvoice100 fit --config voice100/config/tts_en_phone_base.yaml
--trainer.accelerator gpu
--gpus 1
--precision 16
--trainer.default_root_dir=./outputs/tts_en_phone_basevoice100-export-onnx
--checkpoint model/ ${MODEL} /lightning_logs/version_0/checkpoints/last.ckptCMU -Modelle sind ein Modell, das die Ausgabe von g2p_en als Textdarstellung anstelle von Rohtext verwendet.
Diese Befehle konvertieren Texte im Datensatz in ./data/[dataset]-phone-[split].txt weibliche-phone- -Plit weibliche.txt. Dann führen Sie voice100-train-[model] mit --use-phone aus.
voice100-prepare-dataset
--dataset ljspeech
voice100-prepare-dataset
--dataset librispeech
--split train
voice100-prepare-dataset
--dataset librispeech
--split valDas CMU -Multitask -Modell ist eine Variante des TTS -Audiomodells, bei dem Eingabe ein ausgerichteter Text ist, und die Ausgänge sind World Vocoder -Parameter und CMU -Phoneme. Um das CMU-Multitask-Modell auszubilden, benötigen wir Ausrichtungsdaten für Englisch- und CMU-Phoneme.
./data/ljspeech-align-train.txt./data/ljspeech-phone-align-train.txtDann rennen
MODEL=ttsaudio_en_mt_conv_base
voice100-train-ttsaudio-mt
--gpus 1
--dataset ${DATASET}
--language ${LANGUAGE}
--batch_size 32
--precision 16
--max_epochs 150
--default_root_dir ./model/ ${MODEL} Verwenden Sie Voice100 -Laufzeit und exportierten ONNX -Dateien.
| Name | Modellklasse | Datensatz | Herunterladen |
|---|---|---|---|
| ASR_EN_SMALL-20230225 | AudiotoAnignText | Librispeech, lj rede 1.1 | herunterladen |
| ASR_EN_BASE-20230319 | AudiotoAnignText | Librispeech, lj rede 1.1 | herunterladen |
| ASR_EN_PONE_SMALL-20230309 | AudiotoAnignText | Librispeech, lj rede 1.1 | herunterladen |
| ASR_EN_PONE_BASE-20230314 | AudiotoAnignText | Librispeech, lj rede 1.1 | herunterladen |
| ASR_JA_PONE_SMALL-20230104 | AudiotoAnignText | Gemeinsame Stimme 12.0 Ja | herunterladen |
| ASR_JA_PONE_BASE-20230104 | AudiotoAnignText | Gemeinsame Stimme 12.0 Ja | herunterladen |
| align_en_base-20230401 | TextToAlignText | LJ Sprache 1.1 | herunterladen |
| tts_en_base-20230407 | AlignTextToaudio | LJ Sprache 1.1 | herunterladen |
| Align_en_Pon_base-20230407 | TextToAlignText | LJ Sprache 1.1 | herunterladen |
| tts_en_phone_base-20230401 | AlignTextToaudio | LJ Sprache 1.1 | herunterladen |
| Align_ja_Pon_base-20230203 | TextToAlignText | Kokoro Sprache v1.2 groß | herunterladen |
| tts_ja_phone_base-20230204 | AlignTextToaudio | Kokoro Sprache v1.2 groß | herunterladen |
| ASR_EN_BASE-20210628 (veraltet) | Audioalignctc | LJ Sprache 1.1 | herunterladen |
| align_en_lstm_base_ctc-20210628 (veraltet) | Audioalignctc | LJ Sprache 1.1 | herunterladen |
| align_en_phone_lstm_base_ctc-20220103 (veraltet) | Audioalignctc | LJ Sprache 1.1 | herunterladen |
| align_ja_lstm_base_ctc-20211116 (veraltet) | Audioalignctc | Kokoro Sprache v1.1 klein | herunterladen |
| Align_ja_Pon_lstm_base_ctc-20221230 (veraltet) | Audioalignctc | Kokoro Sprache v1.1 klein | herunterladen |
| ttsalign_en_conv_base-20220409 (veraltet) | TextToAlignTextModel | LJ Sprache 1.1 | herunterladen |
| ttsalign_en_phone_conv_base-20220409 (veraltet) | TextToAlignTextModel | LJ Sprache 1.1 | herunterladen |
| ttsalign_ja_conv_base-20220411 (veraltet) | TextToAlignTextModel | Kokoro Sprache v1.1 klein | herunterladen |
| ttsaudio_en_conv_base-20220107 (veraltet) | AlignTextttoaudiomodel | Kokoro Sprache v1.1 klein | herunterladen |
| ttsaudio_en_phone_conv_base-20220105 (veraltet) | AlignTextttoaudiomodel | LJ Sprache 1.1 | herunterladen |
| ttsaudio_ja_conv_base-20220416 (veraltet) | AlignTextttoaudiomodel | Kokoro Sprache v1.1 klein | herunterladen |
| ttsaudio_en_mt_conv_base-20220316 (veraltet) | AlignTextToaudiomultitaskmodel | LJ Sprache 1.1 | herunterladen |
| ASR_EN_CONV_BASE_CTC-20220126 (veraltet) | AUDIOTOTOTTCTC | Librispeech | herunterladen |
| ASR_EN_PONE_CONV_BASE_CTC-20220107 (veraltet) | AUDIOTOTOTTCTC | Librispeech | herunterladen |
| STT_JA_CONV_BASE_CTC-20211127 (veraltet) | AUDIOTOTOTTCTC | Gemeinsame Stimme 6.1 Ja | herunterladen |
| ASR_JA_PONE_CONV_BASE_CTC-20221225 (veraltet) | AUDIOTOTOTTCTC | Gemeinsame Stimme 6.1 Ja | herunterladen |