Voice100包括神经TTS/ASR模型。语音100的推断是低成本,因为它的模型很小,仅取决于无递归的CNN。
TTS模型分为两个子模型,即对齐模型和音频模型。对齐模型预测文本对齐文本。从文本和文本对齐中生成一个对齐文本。音频模型预测世界特征(F0,频谱包络,编码的多个拟合性)给定对齐的文本。
对齐网络
图TD
[输入文本] - > | hello | B(嵌入)
b-> c(1D反向残留x4)
C-> D(卷积)
D-> | H:0,1 E:0,2 L:1,1 L:1,1 O:1,2 | E [对齐]
音频网络
图TD
一个[校准文本] - > | _hee_l_l_oo | B(嵌入)
b-> c(1D反向残留x4)
C-> D(1D转置卷积)
d-> e(1d倒残留x3)
E-> F(卷积)
f-> g [世界参数]
| 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)
对齐模型的输入是输入文本的令牌的序列。输入文本是较低的情况,并将其标记为字符,并由文本编码编码。文本编码器在词汇中有28个字符,其中包括较低的字母,一个空间和座位哲学。词汇中未找到的所有字符都被删除。
对齐模型的输出是时间对的序列,长度与输入令牌的数量相同。一对有两个值,即令牌之前的帧数和令牌的帧数。一个帧是20ms。从输入文本和时间对生成一个对齐的文本。对齐文本的长度是音频的总帧数。
音频模型的输入是编码的对齐文本,该文本的编码方式与Align模型预处理相同,只是它在词汇中添加了一个令牌,用于在词汇中添加了用于原始文本的代币之间的间距。
音频模型的输出是F0,F0存在,对数光谱包络的序列,编码的多个神经性。 F0存在是一个布尔值,当F0可用false否则时,这是正确的。当F0存在为错误时,F0被迫进入0。一个帧是10ms。输出的长度是输入长度的两倍。
ASR模型是9层Mobilenet样倒残留物,训练以预测CTC丢失。
ASR网络
图TD
a [mel频谱图] - > b(1D反向残留x 12)
B-> c(卷积)
c-> g [对齐文本的ligits]
| 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)
Align模型是2层双向LSTM,经过训练,可以预测MFCC音频功能的对齐文本。 Align模型用于为数据集准备对齐文本以训练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 这将对齐的文本作为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这将统计信息作为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模型是一种使用G2P_EN的输出作为文本表示的模型,而不是原始文本。
这些命令将数据集中的文本转换为./data/[dataset]-phone-[split].txt [dataset] - phone- [split] .txt。然后使用--use-phone运行voice100-train-[model] 。
voice100-prepare-dataset
--dataset ljspeech
voice100-prepare-dataset
--dataset librispeech
--split train
voice100-prepare-dataset
--dataset librispeech
--split valCMU多任务模型是TTS音频模型的变体,输入是一个对齐的文本,输出是世界Vocoder参数和CMU音素。为了培训CMU多任务模型,我们需要英语和CMU音素的对齐数据。
./data/ljspeech-align-train.txt./data/ljspeech-phone-align-train.txt然后运行
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} 使用Voice100运行时并导出ONNX文件。
| 姓名 | 模型类 | 数据集 | 下载 |
|---|---|---|---|
| ASR_EN_SMALL-20230225 | AudiotoAlignText | Librispeech,LJ演讲1.1 | 下载 |
| ASR_EN_BASE-20230319 | AudiotoAlignText | Librispeech,LJ演讲1.1 | 下载 |
| ASR_EN_PHONE_SMALL-20230309 | AudiotoAlignText | Librispeech,LJ演讲1.1 | 下载 |
| ASR_EN_PHONE_BASE-20230314 | AudiotoAlignText | Librispeech,LJ演讲1.1 | 下载 |
| ASR_JA_PHONE_SMALL-20230104 | AudiotoAlignText | 普通的声音12.0 JA | 下载 |
| ASR_JA_PHONE_BASE-20230104 | AudiotoAlignText | 普通的声音12.0 JA | 下载 |
| align_en_base-20230401 | TextToAlignText | LJ演讲1.1 | 下载 |
| TTS_EN_BASE-20230407 | AlignTextToAudio | LJ演讲1.1 | 下载 |
| align_en_phone_base-20230407 | TextToAlignText | LJ演讲1.1 | 下载 |
| tts_en_phone_base-20230401 | AlignTextToAudio | LJ演讲1.1 | 下载 |
| align_ja_phone_base-20230203 | TextToAlignText | Kokoro演讲v1.2大型 | 下载 |
| tts_ja_phone_base-20230204 | AlignTextToAudio | Kokoro演讲v1.2大型 | 下载 |
| ASR_EN_BASE-20210628(已弃用) | AudioAlignctc | LJ演讲1.1 | 下载 |
| align_en_lstm_base_ctc-20210628(已弃用) | AudioAlignctc | LJ演讲1.1 | 下载 |
| align_en_phone_lstm_base_ctc-20220103(已弃用) | AudioAlignctc | LJ演讲1.1 | 下载 |
| align_ja_lstm_base_ctc-2021116(弃用) | AudioAlignctc | Kokoro演讲v1.1小型 | 下载 |
| align_ja_phone_lstm_base_ctc-20221230(已弃用) | AudioAlignctc | Kokoro演讲v1.1小型 | 下载 |
| ttsalign_en_conv_base-20220409(已弃用) | TextToAlignTextModel | LJ演讲1.1 | 下载 |
| ttsalign_en_phone_conv_base-20220409(已弃用) | TextToAlignTextModel | LJ演讲1.1 | 下载 |
| ttsalign_ja_conv_base-20220411(已弃用) | TextToAlignTextModel | Kokoro演讲v1.1小型 | 下载 |
| ttsaudio_en_conv_base-20220107(弃用) | AlignTextToAudiomodel | Kokoro演讲v1.1小型 | 下载 |
| ttsaudio_en_phone_conv_base-20220105(已弃用) | AlignTextToAudiomodel | LJ演讲1.1 | 下载 |
| ttsaudio_ja_conv_base-20220416(已弃用) | AlignTextToAudiomodel | Kokoro演讲v1.1小型 | 下载 |
| ttsaudio_en_mt_conv_base-20220316(已弃用) | AlignTextToAudiOmultitAskModel | LJ演讲1.1 | 下载 |
| ASR_EN_CONV_BASE_CTC-20220126(已弃用) | iDiototextctc | librispeech | 下载 |
| ASR_EN_PHONE_CONV_BASE_CTC-20220107(已弃用) | iDiototextctc | librispeech | 下载 |
| STT_JA_CONV_BASE_CTC-20211127(已弃用) | iDiototextctc | 常见的声音6.1 JA | 下载 |
| ASR_JA_PHONE_CONV_BASE_CTC-20221225(已弃用) | iDiototextctc | 常见的声音6.1 JA | 下载 |