diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6e9e72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +dataset* +logs/ +hubert +.venv +venv +**/__pycache__ +filelists/ \ No newline at end of file diff --git a/configs/config.json b/configs/config.json index 13a503c..ebc996e 100644 --- a/configs/config.json +++ b/configs/config.json @@ -1 +1,94 @@ -请使用生成的config文件 \ No newline at end of file +{ + "train": { + "log_interval": 200, + "eval_interval": 1000, + "seed": 1234, + "epochs": 10000, + "learning_rate": 0.0001, + "betas": [ + 0.8, + 0.99 + ], + "eps": 1e-09, + "batch_size": 6, + "fp16_run": false, + "lr_decay": 0.999875, + "segment_size": 17920, + "init_lr_ratio": 1, + "warmup_epochs": 0, + "c_mel": 45, + "c_kl": 1.0, + "use_sr": true, + "max_speclen": 384, + "port": "8001" + }, + "data": { + "training_files": "filelists/train.txt", + "validation_files": "filelists/val.txt", + "max_wav_value": 32768.0, + "sampling_rate": 32000, + "filter_length": 1280, + "hop_length": 320, + "win_length": 1280, + "n_mel_channels": 80, + "mel_fmin": 0.0, + "mel_fmax": null + }, + "model": { + "inter_channels": 192, + "hidden_channels": 192, + "filter_channels": 768, + "n_heads": 2, + "n_layers": 6, + "kernel_size": 3, + "p_dropout": 0.1, + "resblock": "1", + "resblock_kernel_sizes": [ + 3, + 7, + 11 + ], + "resblock_dilation_sizes": [ + [ + 1, + 3, + 5 + ], + [ + 1, + 3, + 5 + ], + [ + 1, + 3, + 5 + ] + ], + "upsample_rates": [ + 10, + 8, + 2, + 2 + ], + "upsample_initial_channel": 512, + "upsample_kernel_sizes": [ + 16, + 16, + 4, + 4 + ], + "n_layers_q": 3, + "use_spectral_norm": false, + "gin_channels": 256, + "ssl_dim": 256, + "n_speakers": 10 + }, + "spk": { + "JP_Ayane": 0, + "JP_Hoshino": 1, + "JP_Nonomi": 2, + "JP_Serika": 3, + "JP_Shiroko": 4 + } +} diff --git a/filelists/test.txt b/filelists/test.txt index 5246bc4..2f51ee2 100644 --- a/filelists/test.txt +++ b/filelists/test.txt @@ -1,7 +1,10 @@ -./dataset/32k/yunhao/001829.wav -./dataset/32k/yunhao/001827.wav -./dataset/32k/jishuang/000104.wav -./dataset/32k/nen/kne110_005.wav -./dataset/32k/nen/kne110_004.wav -./dataset/32k/jishuang/000223.wav -./dataset/32k/yunhao/001828.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Cafe_Act_5.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_4.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Growup_4.ogg.wav +./dataset/32k/JP_Serika/Serika_Cafe_Act_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_LogIn_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_3.ogg.wav diff --git a/filelists/train.txt b/filelists/train.txt index e69de29..49a12a3 100644 --- a/filelists/train.txt +++ b/filelists/train.txt @@ -0,0 +1,451 @@ +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Lobby_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_3_3.ogg.wav +./dataset/32k/JP_Serika/Serika_LogIn_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Lobby_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Formation_In_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Gachaget.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_5_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_6_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Lobby_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_LogIn_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_3_a.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_5.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Growup_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Lobby_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_TacticalAction_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_LogIn_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_In_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Season_Birthday.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Cafe_Act_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_0.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLogin_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Cafe_Act_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Lobby_5.ogg.wav +./dataset/32k/JP_Serika/Serika_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Formation_In_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Lobby_5.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_In_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Growup_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_In_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_LogIn_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_In_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_3_b.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Season_Xmas.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_In_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Season_Birthday.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Growup_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Formation_In_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Growup_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Season_Halloween.ogg.wav +./dataset/32k/JP_Serika/Serika_Growup_4.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_CommonSkill.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Growup_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_6_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_LogIn_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Growup_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Formation_In_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Formation_Select.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Buffed_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_6.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_2_2.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Season_Birthday.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_2_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Growup_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Cafe_monolog_1.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_6_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_LogIn_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_CommonSkill.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLobby_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Season_Birthday.ogg.wav +./dataset/32k/JP_Serika/Serika_Formation_In_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Gachaget.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Lobby_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Formation_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Retire.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_6_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Growup_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_0.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Growup_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Season_NewYear.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_5.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Growup_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_1_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Cafe_Act_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_5_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Serika/Serika_LogIn_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Season_Halloween.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_6_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_CommonSkill.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_3_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Defense_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Cafe_monolog_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_2_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Lobby_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Growup_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Cafe_Act_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Cafe_Act_4.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_TacticalAction_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLogin_Season_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_1_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Lobby_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Growup_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Season_Birthday.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Cafe_Act_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_1_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Supply.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_2_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLobby_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_4_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Retire.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_In_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Cafe_monolog_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Lobby_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Move_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Cafe_Act_5.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_CommonSkill.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_2_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Growup_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_5_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLogin_Season_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Lobby_5.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Lobby_4.ogg.wav +./dataset/32k/JP_Serika/Serika_Cafe_Act_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Defense_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Growup_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Season_Halloween.ogg.wav +./dataset/32k/JP_Serika/Serika_Gachaget.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_In_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_In_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_3_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLogin_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_In_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_In_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Growup_4.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Gachaget.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Growup_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Lobby_4.ogg.wav +./dataset/32k/JP_Serika/Serika_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Lobby_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Serika/Serika_Growup_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_In_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Lobby_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Gachaget.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Season_Xmas.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Formation_Select.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_In_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Buffed_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Move_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Cafe_monolog_5.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Move_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Cafe_Act_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Retire.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Formation_In_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Move_1.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Cafe_Act_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_In_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_4_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Lobby_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Formation_In_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Season_Xmas.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Season_Halloween.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_CommonSkill.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_In_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_2_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_3_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Lobby_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Cafe_monolog_3.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_3_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_1_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Formation_In_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Formation_Select.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Growup_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Lobby_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Relationship_Up_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_In_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Lobby_5.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Growup_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_4_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Formation_In_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_1.ogg.wav +./dataset/32k/JP_Serika/Serika_ExSkill_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Lobby_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Growup_3.ogg.wav +./dataset/32k/JP_Serika/Serika_Formation_Select.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Lobby_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Lobby_5.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Cafe_monolog_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Serika/Serika_Season_Halloween.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Season_NewYear.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Season_Xmas.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Buffed_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Season_NewYear.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Season_Xmas.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_In_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_In_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Shout_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Lobby_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Cafe_monolog_4.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_4_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Cafe_monolog_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Growup_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Retire.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Recovery_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Move_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLobby_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_3_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_4_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Season_Birthday_Player.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Move_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_LogIn_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Shout_6.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Lobby_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Season_Birthday.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_4_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Season_Birthday.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_ExSkill_Level_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_BuffSelf_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Formation_Select.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Defense_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Victory_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Growup_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Growup_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Buffed_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Lobby_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Damage_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Covered_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_LogIn_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_LogIn_2.ogg.wav +./dataset/32k/JP_Serika/Serika_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Season_NewYear.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Lobby_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Lobby_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Move_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_BuffSelf_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_In_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_MemorialLobby_3_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_6_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Formation_In_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Lobby_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_ExSkill_1.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_4_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Lobby_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_Shout_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Cafe_monolog_4.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Growup_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_4_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Season_Halloween.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_MemorialLobby_5.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Cafe_Act_4.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Tactic_In_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_4_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_Defeat_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Formation_Select.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_3_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Formation_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_5.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Gachaget.ogg.wav +./dataset/32k/JP_Serika/Serika_Formation_In_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_LogIn_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_BuffSelf_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Lobby_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Battle_Covered_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_LogIn_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Relationship_Up_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_5_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_5_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_3_2.ogg.wav +./dataset/32k/JP_Serika/Serika_Lobby_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Growup_4.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Cafe_Act_5.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_ExSkill_Level_3.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Cafe_monolog_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLobby_3.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_ExSkill_Level_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Formation_In_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_3_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Relationship_Up_4.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Retire.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Lobby_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Season_NewYear.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Cafe_monolog_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_5_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Season_Xmas.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Victory_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_In_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_MemorialLobby_4_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_Move_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Cafe_monolog_5.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Serika/Serika_Tactic_Victory_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Tactic_Victory_1.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Growup_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_5_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_5_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Season_Xmas.ogg.wav +./dataset/32k/JP_Ayane/Ayane_MemorialLobby_2_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Lobby_3.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_TacticalAction_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Gachaget.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Lobby_5.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Defense_1.ogg.wav +./dataset/32k/JP_Ayane/Ayane_LogIn_2.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_MemorialLobby_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Season_NewYear.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Relationship_Up_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_ExSkill_2.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_EventLogin_Season_End.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Cafe_Act_3.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_6_3.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_2_2.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_MemorialLobby_3_1.ogg.wav +./dataset/32k/JP_Shiroko/Shiroko_Battle_BuffSelf_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Battle_Retire.ogg.wav +./dataset/32k/JP_Hoshino/HoshinoSwimsuit_Battle_TacticalAction_1.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Cafe_Act_1.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Season_NewYear.ogg.wav diff --git a/filelists/val.txt b/filelists/val.txt index 40d9d47..8916e1e 100644 --- a/filelists/val.txt +++ b/filelists/val.txt @@ -1,6 +1,10 @@ -./dataset/32k/nen/kne110_005.wav -./dataset/32k/yunhao/001827.wav -./dataset/32k/jishuang/000104.wav -./dataset/32k/jishuang/000223.wav -./dataset/32k/nen/kne110_004.wav -./dataset/32k/yunhao/001828.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_Tactic_Defeat_2.ogg.wav +./dataset/32k/JP_Shiroko/ShirokoRidingSuit_ExWeapon_Get.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_Damage_2.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Season_Halloween.ogg.wav +./dataset/32k/JP_Hoshino/Hoshino_Battle_In_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Cafe_Act_5.ogg.wav +./dataset/32k/JP_Serika/Serika_Battle_Damage_3.ogg.wav +./dataset/32k/JP_Ayane/Ayane_Cafe_monolog_2.ogg.wav +./dataset/32k/JP_Serika/Serika_MemorialLobby_4_1.ogg.wav +./dataset/32k/JP_Nonomi/Nonomi_Cafe_Act_2.ogg.wav diff --git a/requirements.txt b/requirements.txt index e7c8176..07ead05 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ Flask_Cors==3.0.10 gradio==3.4.1 numpy==1.19.2 playsound==1.3.0 -PyAudio==0.2.12 pydub==0.25.1 pyworld==0.3.0 requests==2.28.1 diff --git a/train.py b/train.py index 9755741..47d9a6b 100644 --- a/train.py +++ b/train.py @@ -105,8 +105,12 @@ def run(rank, n_gpus, hps): for epoch in range(epoch_str, hps.train.epochs + 1): if rank == 0: + import time + t1 = time.monotonic() train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, [train_loader, eval_loader], logger, [writer, writer_eval]) + t2 = time.monotonic() + print("epoch #{} : {:.2f}s".format(epoch, t2 - t1)) else: train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, [train_loader, None], None, None) diff --git a/train_format.py b/train_format.py new file mode 100644 index 0000000..7aa39c0 --- /dev/null +++ b/train_format.py @@ -0,0 +1,235 @@ +import logging + +logging.getLogger('matplotlib').setLevel(logging.WARNING) +import os +import json +import argparse +import itertools +import math +import torch +from torch import nn, optim +from torch.nn import functional as F +from torch.utils.data import DataLoader +from torch.utils.tensorboard import SummaryWriter +import torch.multiprocessing as mp +import torch.distributed as dist +from torch.nn.parallel import DistributedDataParallel as DDP +from torch.cuda.amp import autocast, GradScaler + +import commons +import utils +from data_utils import TextAudioSpeakerLoader, EvalDataLoader +from models import ( + SynthesizerTrn, + MultiPeriodDiscriminator, +) +from losses import (kl_loss, generator_loss, discriminator_loss, feature_loss) + +from mel_processing import mel_spectrogram_torch, spec_to_mel_torch + +from tqdm import tqdm + +torch.backends.cudnn.benchmark = True +global_step = 0 + +# os.environ['TORCH_DISTRIBUTED_DEBUG'] = 'INFO' + + +def main(): + """Assume Single Node Multi GPUs Training Only""" + assert torch.cuda.is_available(), "CPU training is not allowed." + hps = utils.get_hparams() + + n_gpus = torch.cuda.device_count() + os.environ['MASTER_ADDR'] = 'localhost' + os.environ['MASTER_PORT'] = hps.train.port + + mp.spawn(run, nprocs=n_gpus, args=( + n_gpus, + hps, + )) + + +def run(rank, n_gpus, hps): + global global_step + if rank == 0: + logger = utils.get_logger(hps.model_dir) + logger.info(hps) + utils.check_git_hash(hps.model_dir) + writer = SummaryWriter(log_dir=hps.model_dir) + writer_eval = SummaryWriter(log_dir=os.path.join(hps.model_dir, "eval")) + + dist.init_process_group(backend='nccl', init_method='env://', world_size=n_gpus, rank=rank) + torch.manual_seed(hps.train.seed) + torch.cuda.set_device(rank) + + train_dataset = TextAudioSpeakerLoader(hps.data.training_files, hps) + train_loader = DataLoader(train_dataset, num_workers=8, shuffle=False, pin_memory=True, batch_size=hps.train.batch_size) + if rank == 0: + eval_dataset = EvalDataLoader(hps.data.validation_files, hps) + eval_loader = DataLoader(eval_dataset, num_workers=1, shuffle=False, batch_size=1, pin_memory=False, drop_last=False) + + net_g = SynthesizerTrn(hps.data.filter_length // 2 + 1, hps.train.segment_size // hps.data.hop_length, + **hps.model).cuda(rank) + net_d = MultiPeriodDiscriminator(hps.model.use_spectral_norm).cuda(rank) + optim_g = torch.optim.AdamW(net_g.parameters(), hps.train.learning_rate, betas=hps.train.betas, eps=hps.train.eps) + optim_d = torch.optim.AdamW(net_d.parameters(), hps.train.learning_rate, betas=hps.train.betas, eps=hps.train.eps) + net_g = DDP(net_g, device_ids=[rank]) # , find_unused_parameters=True) + net_d = DDP(net_d, device_ids=[rank]) + + try: + _, _, _, epoch_str = utils.load_checkpoint(utils.latest_checkpoint_path(hps.model_dir, "G_*.pth"), net_g, optim_g) + _, _, _, epoch_str = utils.load_checkpoint(utils.latest_checkpoint_path(hps.model_dir, "D_*.pth"), net_d, optim_d) + global_step = (epoch_str - 1) * len(train_loader) + except: + epoch_str = 1 + global_step = 0 + + scheduler_g = torch.optim.lr_scheduler.ExponentialLR(optim_g, gamma=hps.train.lr_decay, last_epoch=epoch_str - 2) + scheduler_d = torch.optim.lr_scheduler.ExponentialLR(optim_d, gamma=hps.train.lr_decay, last_epoch=epoch_str - 2) + + scaler = GradScaler(enabled=hps.train.fp16_run) + + for epoch in tqdm(range(epoch_str, hps.train.epochs + 1), description="Epoch"): + if rank == 0: + train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, + [train_loader, eval_loader], logger, [writer, writer_eval]) + else: + train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, + [train_loader, None], None, None) + scheduler_g.step() + scheduler_d.step() + + +def train_and_evaluate(rank, epoch, hps, nets, optims, schedulers, scaler, loaders, logger, writers): + net_g, net_d = nets + optim_g, optim_d = optims + scheduler_g, scheduler_d = schedulers + train_loader, eval_loader = loaders + if writers is not None: + writer, writer_eval = writers + + # train_loader.batch_sampler.set_epoch(epoch) + global global_step + + net_g.train() + net_d.train() + pbar_train_loader = tqdm(train_loader, keep=False) + for items in pbar_train_loader: + c, f0, spec, y, spk = items + g = spk.cuda(rank, non_blocking=True) + spec, y = spec.cuda(rank, non_blocking=True), y.cuda(rank, non_blocking=True) + c = c.cuda(rank, non_blocking=True) + f0 = f0.cuda(rank, non_blocking=True) + mel = spec_to_mel_torch(spec, hps.data.filter_length, hps.data.n_mel_channels, hps.data.sampling_rate, + hps.data.mel_fmin, hps.data.mel_fmax) + + with autocast(enabled=hps.train.fp16_run): + y_hat, ids_slice, z_mask, \ + (z, z_p, m_p, logs_p, m_q, logs_q) = net_g(c, f0, spec, g=g, mel=mel) + + y_mel = commons.slice_segments(mel, ids_slice, hps.train.segment_size // hps.data.hop_length) + y_hat_mel = mel_spectrogram_torch(y_hat.squeeze(1), hps.data.filter_length, hps.data.n_mel_channels, + hps.data.sampling_rate, hps.data.hop_length, hps.data.win_length, + hps.data.mel_fmin, hps.data.mel_fmax) + y = commons.slice_segments(y, ids_slice * hps.data.hop_length, hps.train.segment_size) # slice + + # Discriminator + y_d_hat_r, y_d_hat_g, _, _ = net_d(y, y_hat.detach()) + + with autocast(enabled=False): + loss_disc, losses_disc_r, losses_disc_g = discriminator_loss(y_d_hat_r, y_d_hat_g) + loss_disc_all = loss_disc + + optim_d.zero_grad() + scaler.scale(loss_disc_all).backward() + scaler.unscale_(optim_d) + grad_norm_d = commons.clip_grad_value_(net_d.parameters(), None) + scaler.step(optim_d) + + with autocast(enabled=hps.train.fp16_run): + # Generator + y_d_hat_r, y_d_hat_g, fmap_r, fmap_g = net_d(y, y_hat) + with autocast(enabled=False): + loss_mel = F.l1_loss(y_mel, y_hat_mel) * hps.train.c_mel + loss_kl = kl_loss(z_p, logs_q, m_p, logs_p, z_mask) * hps.train.c_kl + loss_fm = feature_loss(fmap_r, fmap_g) + loss_gen, losses_gen = generator_loss(y_d_hat_g) + loss_gen_all = loss_gen + loss_fm + loss_mel + loss_kl + optim_g.zero_grad() + scaler.scale(loss_gen_all).backward() + scaler.unscale_(optim_g) + grad_norm_g = commons.clip_grad_value_(net_g.parameters(), None) + scaler.step(optim_g) + scaler.update() + + if rank == 0: + # logger.info('====> Epoch: {}'.format(epoch)) + lr = optim_g.param_groups[0]['lr'] + losses = [loss_disc, loss_gen, loss_fm, loss_mel, loss_kl] + # logger.info('Train Epoch: {} [{:.0f}%]'.format(epoch, 100. * batch_idx / len(train_loader))) + # logger.info([x.item() for x in losses] + [global_step, lr]) + pbar_train_loader.set_postfix(str([x.item() for x in losses] + [global_step, lr])) + + scalar_dict = { + "loss/g/total": loss_gen_all, + "loss/d/total": loss_disc_all, + "learning_rate": lr, + "grad_norm_d": grad_norm_d, + "grad_norm_g": grad_norm_g + } + scalar_dict.update({"loss/g/fm": loss_fm, "loss/g/mel": loss_mel, "loss/g/kl": loss_kl}) + + scalar_dict.update({"loss/g/{}".format(i): v for i, v in enumerate(losses_gen)}) + scalar_dict.update({"loss/d_r/{}".format(i): v for i, v in enumerate(losses_disc_r)}) + scalar_dict.update({"loss/d_g/{}".format(i): v for i, v in enumerate(losses_disc_g)}) + image_dict = { + "slice/mel_org": utils.plot_spectrogram_to_numpy(y_mel[0].data.cpu().numpy()), + "slice/mel_gen": utils.plot_spectrogram_to_numpy(y_hat_mel[0].data.cpu().numpy()), + "all/mel": utils.plot_spectrogram_to_numpy(mel[0].data.cpu().numpy()), + } + + utils.summarize(writer=writer, global_step=global_step, images=image_dict, scalars=scalar_dict) + + if epoch % hps.train.eval_interval == 0: + evaluate(hps, net_g, eval_loader, writer_eval) + utils.save_checkpoint(net_g, optim_g, hps.train.learning_rate, epoch, + os.path.join(hps.model_dir, "G_{}.pth".format(epoch))) + utils.save_checkpoint(net_d, optim_d, hps.train.learning_rate, epoch, + os.path.join(hps.model_dir, "D_{}.pth".format(epoch))) + + +def evaluate(hps, generator, eval_loader, writer_eval): + generator.eval() + image_dict = {} + audio_dict = {} + with torch.no_grad(): + for batch_idx, items in enumerate(eval_loader): + c, f0, spec, y, spk = items + g = spk[:1].cuda(0) + spec, y = spec[:1].cuda(0), y[:1].cuda(0) + c = c[:1].cuda(0) + f0 = f0[:1].cuda(0) + mel = spec_to_mel_torch(spec, hps.data.filter_length, hps.data.n_mel_channels, hps.data.sampling_rate, + hps.data.mel_fmin, hps.data.mel_fmax) + y_hat = generator.module.infer(c, f0, g=g, mel=mel) + + y_hat_mel = mel_spectrogram_torch( + y_hat.squeeze(1).float(), hps.data.filter_length, hps.data.n_mel_channels, hps.data.sampling_rate, + hps.data.hop_length, hps.data.win_length, hps.data.mel_fmin, hps.data.mel_fmax) + + audio_dict.update({f"gen/audio_{batch_idx}": y_hat[0], f"gt/audio_{batch_idx}": y[0]}) + image_dict.update({ + f"gen/mel": utils.plot_spectrogram_to_numpy(y_hat_mel[0].cpu().numpy()), + "gt/mel": utils.plot_spectrogram_to_numpy(mel[0].cpu().numpy()) + }) + utils.summarize(writer=writer_eval, + global_step=global_step, + images=image_dict, + audios=audio_dict, + audio_sampling_rate=hps.data.sampling_rate) + generator.train() + + +if __name__ == "__main__": + main()