O Voice100 inclui modelos neurais TTS/ASR. A inferência do Voice100 é de baixo custo, pois seus modelos são pequenos e dependem apenas da CNN sem recursão.
O modelo TTS é dividido em dois sub -modelos, alinhar modelo e modelo de áudio. O modelo de alinhamento prevê alinhamentos de texto com um texto. Um texto alinhado é gerado a partir do texto e dos alinhamentos de texto. Os recursos do mundo das previsões de modelos de áudio (F0, envelope de espectro, aperiticidade codificada), dado o texto alinhado.
Rede de alinhamento
Gráfico TD
A [texto de entrada] -> | Olá | B (incorporação)
B -> C (1D residual invertido x4)
C -> D (convolução)
D -> | H: 0,1 E: 0,2 L: 1,1 L: 1,1 O: 1,2 | E [alinhamento]
Rede de áudio
Gráfico TD
A [texto alinhado] -> | _hee_l_l_oo | B (incorporação)
B -> C (1D residual invertido x4)
C -> D (1D Transpost Convolution)
D -> E (1D residual invertido x3)
E -> f (convolução)
F -> G [parâmetros mundiais]
| 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)
A entrada do modelo alinhado é a sequência de tokens do texto de entrada. O texto de entrada é menor e tokenizado em caracteres e codificado pelo codificador de texto. O codificador de texto possui 28 caracteres no vocabulário, que inclui alfabetos mais baixos, um espaço e uma apóstrofia. Todos os personagens que não são encontrados no vocabulário são removidos.
A saída do modelo alinhado é a sequência de pares de horários que o comprimento é o mesmo que o número de tokens de entrada. Um par possui dois valores, número de quadros antes do token e número de quadros para o token. Um quadro é 20ms. Um texto alinhado é gerado a partir do texto de entrada e pares de horários. O comprimento do texto alinhado é o número de quadros totais para o áudio.
A entrada do modelo de áudio é o texto alinhado codificado, que é codificado da mesma maneira que o pré-processamento do modelo alinhado, exceto que possui um token adicionado no vocabulário para espaçar os tokens para o texto original.
A saída do modelo de áudio é a sequência de existências de F0, F0, envelope espectral de log, aberiodicidade codificada. Uma existência F0 é um valor booleano, o que é verdadeiro quando F0 está disponível FALSO. Caso contrário. F0 é forçado a 0 quando a existência f0 é falsa. Um quadro é 10ms. O comprimento da saída é duas vezes como o comprimento da entrada.
O modelo ASR é resíduo invertido do tipo MobileNet de 9 camadas, que é treinado para prever a perda de CTC.
Rede ASR
Gráfico TD
A [Mel Spectrogram] -> B (1D residual invertido x 12)
B -> C (convolução)
C -> G [logits do texto alinhado]
| 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)
O modelo alinhado é o LSTM bidirecional de duas camadas, que é treinado para prever textos alinhados dos recursos de áudio MFCC. O modelo alinhado é usado para preparar textos alinhados para o conjunto de dados para treinar os modelos 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 Isso gera o texto alinhado como 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 Isso gera as estatísticas como 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.ckptOs modelos CMU são um modelo que usa a saída de G2P_EN como representação de texto em vez de texto bruto.
Esses comandos convertem textos no conjunto de dados em ./data/[dataset]-phone-[split].txt .txt. Em seguida, execute voice100-train-[model] com --use-phone .
voice100-prepare-dataset
--dataset ljspeech
voice100-prepare-dataset
--dataset librispeech
--split train
voice100-prepare-dataset
--dataset librispeech
--split valO modelo CMU Multitarasco é uma variante do modelo de áudio TTS que a entrada é um texto alinhado e as saídas são parâmetros do vocoder mundial e fonemas da CMU. Para treinar o modelo de várias tarefas da CMU, precisamos de dados de alinhamento para fonemas em inglês e CMU.
./data/ljspeech-align-train.txt./data/ljspeech-phone-align-train.txtEm seguida, corra
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} Use o Voice100 Runtime e exportou arquivos ONNX.
| Nome | Classe modelo | Conjunto de dados | Download |
|---|---|---|---|
| ASR_EN_SMALL-20230225 | Audiotoaligntext | Librispeech, LJ Discurso 1.1 | download |
| ASR_EN_BASE-20230319 | Audiotoaligntext | Librispeech, LJ Discurso 1.1 | download |
| asr_en_phone_small-20230309 | Audiotoaligntext | Librispeech, LJ Discurso 1.1 | download |
| asr_en_phone_base-20230314 | Audiotoaligntext | Librispeech, LJ Discurso 1.1 | download |
| asr_ja_phone_small-20230104 | Audiotoaligntext | Voz comum 12.0 JA | download |
| asr_ja_phone_base-20230104 | Audiotoaligntext | Voz comum 12.0 JA | download |
| align_en_base-20230401 | TextToaligntext | LJ Discurso 1.1 | download |
| TTS_EN_BASE-20230407 | Aligntexttoudio | LJ Discurso 1.1 | download |
| align_en_phone_base-20230407 | TextToaligntext | LJ Discurso 1.1 | download |
| tts_en_phone_base-20230401 | Aligntexttoudio | LJ Discurso 1.1 | download |
| align_ja_phone_base-20230203 | TextToaligntext | Kokoro discurso v1.2 grande | download |
| tts_ja_phone_base-20230204 | Aligntexttoudio | Kokoro discurso v1.2 grande | download |
| asr_en_base-20210628 (depreciado) | AudioalignCtc | LJ Discurso 1.1 | download |
| align_en_lstm_base_ctc-20210628 (depreciado) | AudioalignCtc | LJ Discurso 1.1 | download |
| align_en_phone_lstm_base_ctc-20220103 (depreciado) | AudioalignCtc | LJ Discurso 1.1 | download |
| ALIGN_JA_LSTM_BASE_CTC-20211116 (depreciado) | AudioalignCtc | Kokoro discurso v1.1 pequeno | download |
| align_ja_phone_lstm_base_ctc-20221230 (depreciado) | AudioalignCtc | Kokoro discurso v1.1 pequeno | download |
| ttsalign_en_conv_base-20220409 (depreciado) | TextToaligntextModel | LJ Discurso 1.1 | download |
| ttsalign_en_phone_conv_base-20220409 (depreciado) | TextToaligntextModel | LJ Discurso 1.1 | download |
| ttsalign_ja_conv_base-20220411 (depreciado) | TextToaligntextModel | Kokoro discurso v1.1 pequeno | download |
| TTSAUDIO_EN_CONV_BASE-20220107 (depreciado) | Aligntexttoudiomodel | Kokoro discurso v1.1 pequeno | download |
| TTSAUDIO_EN_PHONE_CONV_BASE-20220105 (depreciado) | Aligntexttoudiomodel | LJ Discurso 1.1 | download |
| TTSAUDIO_JA_CONV_BASE-20220416 (depreciado) | Aligntexttoudiomodel | Kokoro discurso v1.1 pequeno | download |
| TTSAUDIO_EN_MT_CONV_BASE-20220316 (depreciado) | AligntextToudiomultiStaskModel | LJ Discurso 1.1 | download |
| ASR_EN_CONV_BASE_CTC-20220126 (depreciado) | AIOTOTOTEXTCTC | Librispeech | download |
| asr_en_phone_conv_base_ctc-20220107 (depreciado) | AIOTOTOTEXTCTC | Librispeech | download |
| STT_JA_CONV_BASE_CTC-20211127 (depreciado) | AIOTOTOTEXTCTC | Voz comum 6.1 JA | download |
| asr_ja_phone_conv_base_ctc-20221225 (depreciado) | AIOTOTOTEXTCTC | Voz comum 6.1 JA | download |