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 | 下載 |