Voice100 termasuk model TTS/ASR saraf. Inferensi Voice100 adalah biaya rendah karena modelnya kecil dan hanya bergantung pada CNN tanpa rekursi.
Model TTS diselesaikan menjadi dua model sub, model align dan model audio. Penyelarasan teks prediksi model Align yang diberikan teks. Teks yang selaras dihasilkan dari teks dan keselarasan teks. Fitur dunia prediksi model audio (F0, amplop spektrum, aperiodisitas kode) mengingat teks yang selaras.
Jaringan Alignment
grafik td
A [Teks Input] -> | halo | B (penyematan)
B -> C (1D residu terbalik x4)
C -> D (Convolution)
D -> | H: 0,1 E: 0,2 L: 1,1 L: 1,1 O: 1,2 | E [Alignment]
Jaringan audio
grafik td
A [Teks Aligned] -> | _Hee_L_L_OO | B (penyematan)
B -> C (1D residu terbalik x4)
C -> D (konvolusi transpos 1D)
D -> E (1D residu x3 terbalik)
E -> f (konvolusi)
F -> g [parameter dunia]
| 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)
Input dari model Align adalah urutan token dari teks input. Teks input adalah huruf kecil dan tokenized menjadi karakter dan dikodekan oleh encoder teks. Encoder teks memiliki 28 karakter dalam kosakata, yang mencakup huruf yang lebih rendah, ruang dan apostrofi. Semua karakter yang tidak ditemukan dalam kosakata, dihapus.
Output dari model Align adalah urutan pasangan waktu yang panjangnya sama dengan jumlah token input. Pasangan memiliki dua nilai, jumlah frame sebelum token dan jumlah frame untuk token. Satu bingkai adalah 20ms. Teks yang selaras dihasilkan dari teks input dan pasangan waktu. Panjang teks yang selaras adalah jumlah total frame untuk audio.
Input dari model audio adalah teks selaras yang dikodekan, yang dikodekan dengan cara yang sama seperti pra-pemrosesan model Align, kecuali memiliki satu token tambahan dalam kosa kata untuk jarak antar token untuk teks asli.
Output dari model audio adalah urutan keberadaan F0, F0, amplop spektral log, aperiodisitas kode. Keberadaan F0 adalah nilai boolean, yang benar ketika F0 tersedia salah. F0 dipaksa menjadi 0 ketika keberadaan F0 salah. Satu bingkai adalah 10ms. Panjang output dua kali lebih dari panjang input.
Model ASR adalah residu terbalik seperti mobileNet 9-lapis yang dilatih untuk memprediksi kehilangan CTC.
Jaringan ASR
grafik td
A [Mel spectrogram] -> B (1D residu terbalik x 12)
B -> C (konvolusi)
C -> g [logit teks yang disejajarkan]
| 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)
Model Align adalah LSTM dua lapis 2-lapis yang dilatih untuk memprediksi teks yang selaras dari fitur audio MFCC. Model Align digunakan untuk menyiapkan teks yang selaras untuk dataset untuk melatih model TTS.
| 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 Ini menghasilkan teks yang disejajarkan sebagai 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 Ini menghasilkan statistik sebagai 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.ckptModel CMU adalah model yang menggunakan output G2P_EN sebagai representasi teks alih -alih teks mentah.
Perintah-perintah ini mengonversi teks dalam dataset menjadi ./data/[dataset]-phone-[split].txt . Kemudian jalankan voice100-train-[model] dengan --use-phone .
voice100-prepare-dataset
--dataset ljspeech
voice100-prepare-dataset
--dataset librispeech
--split train
voice100-prepare-dataset
--dataset librispeech
--split valModel multitask CMU adalah varian dari model audio TTS yang input adalah teks yang selaras dan output adalah parameter vokoder dunia dan fonem CMU. Untuk melatih model multi-task CMU, kami memerlukan data penyelarasan untuk fonem bahasa Inggris dan CMU.
./data/ljspeech-align-train.txt./data/ljspeech-phone-align-train.txtLalu jalankan
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} Gunakan runtime Voice100 dan mengekspor file ONNX.
| Nama | Kelas Model | Dataset | Unduh |
|---|---|---|---|
| ASR_EN_SMALL-20230225 | AudiotoalignText | Librispeech, LJ Speech 1.1 | unduh |
| ASR_EN_BASE-20230319 | AudiotoalignText | Librispeech, LJ Speech 1.1 | unduh |
| asr_en_phone_small-20230309 | AudiotoalignText | Librispeech, LJ Speech 1.1 | unduh |
| asr_en_phone_base-20230314 | AudiotoalignText | Librispeech, LJ Speech 1.1 | unduh |
| ASR_JA_PHONE_SMALL-20230104 | AudiotoalignText | Suara Umum 12.0 JA | unduh |
| ASR_JA_PHONE_BASE-20230104 | AudiotoalignText | Suara Umum 12.0 JA | unduh |
| align_en_base-20230401 | TextToAlignText | Pidato LJ 1.1 | unduh |
| TTS_EN_BASE-20230407 | AlignTextToAudio | Pidato LJ 1.1 | unduh |
| align_en_phone_base-20230407 | TextToAlignText | Pidato LJ 1.1 | unduh |
| tts_en_phone_base-20230401 | AlignTextToAudio | Pidato LJ 1.1 | unduh |
| align_ja_phone_base-20230203 | TextToAlignText | Pidato kokoro v1.2 besar | unduh |
| TTS_JA_PHONE_BASE-20230204 | AlignTextToAudio | Pidato kokoro v1.2 besar | unduh |
| ASR_EN_BASE-20210628 (sudah usang) | Audioalignctc | Pidato LJ 1.1 | unduh |
| align_en_lstm_base_ctc-20210628 (usang) | Audioalignctc | Pidato LJ 1.1 | unduh |
| align_en_phone_lstm_base_ctc-20220103 (usang) | Audioalignctc | Pidato LJ 1.1 | unduh |
| align_ja_lstm_base_ctc-20211116 (usang) | Audioalignctc | Pidato kokoro v1.1 kecil | unduh |
| align_ja_phone_lstm_base_ctc-20221230 (sudah usang) | Audioalignctc | Pidato kokoro v1.1 kecil | unduh |
| ttsalign_en_conv_base-20220409 (sudah usang) | TextToAlignTextModel | Pidato LJ 1.1 | unduh |
| ttsalign_en_phone_conv_base-20220409 (sudah usang) | TextToAlignTextModel | Pidato LJ 1.1 | unduh |
| ttsalign_ja_conv_base-20220411 (sudah usang) | TextToAlignTextModel | Pidato kokoro v1.1 kecil | unduh |
| ttsaudio_en_conv_base-20220107 (sudah usang) | AlignTextToAudiomodel | Pidato kokoro v1.1 kecil | unduh |
| ttsaudio_en_phone_conv_base-20220105 (usang) | AlignTextToAudiomodel | Pidato LJ 1.1 | unduh |
| ttsaudio_ja_conv_base-20220416 (sudah usang) | AlignTextToAudiomodel | Pidato kokoro v1.1 kecil | unduh |
| ttsaudio_en_mt_conv_base-20220316 (usang) | AlignTextToAudiomultitaskModel | Pidato LJ 1.1 | unduh |
| ASR_EN_CONV_BASE_CTC-20220126 (sudah usang) | AURCIOTOTEXTCTC | Librispeech | unduh |
| asr_en_phone_conv_base_ctc-20220107 (usang) | AURCIOTOTEXTCTC | Librispeech | unduh |
| stt_ja_conv_base_ctc-20211127 (usang) | AURCIOTOTEXTCTC | Suara Umum 6.1 JA | unduh |
| asr_ja_phone_conv_base_ctc-20221225 (usang) | AURCIOTOTEXTCTC | Suara Umum 6.1 JA | unduh |