diff --git a/.gitignore b/.gitignore index 98d554c..8122ba1 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ venv filelists/ data*/ raw/ -results/ \ No newline at end of file +results/ +model*/ \ No newline at end of file diff --git a/configs/config.json b/configs/config.json index 36613c3..7755a1f 100644 --- a/configs/config.json +++ b/configs/config.json @@ -1,7 +1,7 @@ { "train": { - "log_interval": 200, - "eval_interval": 200, + "log_interval": 100, + "eval_interval": 100, "seed": 1234, "epochs": 10000, "learning_rate": 0.0001, @@ -27,9 +27,9 @@ "validation_files": "filelists/val.txt", "max_wav_value": 32768.0, "sampling_rate": 32000, - "filter_length": 1280, + "filter_length": 1024, "hop_length": 320, - "win_length": 1280, + "win_length": 1024, "n_mel_channels": 80, "mel_fmin": 0.0, "mel_fmax": null @@ -85,6 +85,6 @@ "n_speakers": 2 }, "spk": { - "JP_Serika": 0 + "JP_Arona": 0 } } \ No newline at end of file diff --git a/filelists/test.txt b/filelists/test.txt deleted file mode 100644 index b629302..0000000 --- a/filelists/test.txt +++ /dev/null @@ -1,2 +0,0 @@ -./dataset/32k/JP_Serika/Serika_Battle_Victory_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_5.ogg.wav diff --git a/filelists/train.txt b/filelists/train.txt deleted file mode 100644 index 22e628f..0000000 --- a/filelists/train.txt +++ /dev/null @@ -1,146 +0,0 @@ -./dataset/32k/JP_Serika/Serika_Cafe_Act_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Lobby_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Formation_In_2.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_1_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_NewYear.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_Defeat_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_LogIn_2.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Birthday.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_6.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Victory_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_5.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_Victory_2.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_6.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_5.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_3_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Halloween.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_1_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_In_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_Victory_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Recovery_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Xmas.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_4.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_3_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_4.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_3_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Victory_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Season_Birthday_Player.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_5_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_In_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Gachaget.ogg.wav -./dataset/32k/JP_Serika/Serika_LogIn_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Victory_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_Defeat_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_5.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Gachaget.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_Defeat_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Formation_In_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_2_2.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_ExWeapon_Get.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_In_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_5.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_1_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_Defeat_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_2_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Lobby_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_ExSkill_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Recovery_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_6.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_4.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_Level_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_In_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_Victory_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_4.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_In_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Tactic_Victory_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_1_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Tactic_In_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_In_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Formation_Select.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_5_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Lobby_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_LogIn_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_In_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Lobby_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_3_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Birthday_Player.ogg.wav -./dataset/32k/JP_Serika/Serika_Lobby_4.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_4.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Retire.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Halloween.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_5.ogg.wav -./dataset/32k/JP_Serika/Serika_Season_NewYear.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_2_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_6.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Shout_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Formation_In_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Xmas.ogg.wav -./dataset/32k/JP_Serika/Serika_Lobby_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Formation_Select.ogg.wav -./dataset/32k/JP_Serika/Serika_ExSkill_1.ogg.wav -./dataset/32k/JP_Serika/Serika_LogIn_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Season_Birthday.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_5_1.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_4.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_4.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_2.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_1.ogg.wav -./dataset/32k/JP_Serika/Serika_Battle_Retire.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Lobby_3.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_2_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_4_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_ExSkill_3.ogg.wav -./dataset/32k/JP_Serika/Serika_ExWeapon_Get.ogg.wav -./dataset/32k/JP_Serika/Serika_Cafe_Act_3.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_5_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Growup_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_3.ogg.wav -./dataset/32k/JP_Serika/Serika_Formation_In_2.ogg.u8.wav -./dataset/32k/JP_Serika/Serika_Battle_Damage_1.ogg.wav -./dataset/32k/JP_Serika/Serika_MemorialLobby_6_2.ogg.wav diff --git a/filelists/val.txt b/filelists/val.txt deleted file mode 100644 index 60fb337..0000000 --- a/filelists/val.txt +++ /dev/null @@ -1,2 +0,0 @@ -./dataset/32k/JP_Serika/Serika_Lobby_2.ogg.wav -./dataset/32k/JP_Serika/Serika_Relationship_Up_4.ogg.wav diff --git a/inference/slicer.py b/inference/slicer.py index 659445c..15c3e9c 100644 --- a/inference/slicer.py +++ b/inference/slicer.py @@ -123,7 +123,7 @@ def cut(audio_path, db_thresh=-30, min_len=5000): sr=sr, threshold=db_thresh, min_length=min_len, - min_interval=100, + # min_interval=100, ) chunks = slicer.slice(audio) return chunks diff --git a/long_sample_split.py b/long_sample_split.py new file mode 100644 index 0000000..7b6077e --- /dev/null +++ b/long_sample_split.py @@ -0,0 +1,20 @@ +from glob import glob +import soundfile +from inference import slicer +import os +from tqdm.auto import tqdm + +files = glob("dataset_prepare/arona_channel/**/vocals.wav", recursive=True) +target_prefix = ("dataset_prepare/arona_channel_slice/") + +if not os.path.exists(target_prefix): + os.mkdir(target_prefix) + +for idx, f in enumerate(tqdm(files)): + tqdm.write(f) + chunks = slicer.cut(f, db_thresh=-50) + audio_data, audio_sr = slicer.chunks2audio(f, chunks) + for idx2, (slice_tag, data) in enumerate(tqdm(audio_data, leave=False)): + if not slice_tag: + res_path = target_prefix + f'aronach_{idx:02d}_{idx2:03d}.wav' + soundfile.write(res_path, data, audio_sr, format="wav") \ No newline at end of file diff --git a/preprocess_flist_config.py b/preprocess_flist_config.py index 552e1ba..3445af3 100644 --- a/preprocess_flist_config.py +++ b/preprocess_flist_config.py @@ -7,14 +7,14 @@ from random import shuffle import json config_template = { "train": { - "log_interval": 200, - "eval_interval": 1000, + "log_interval": 100, + "eval_interval": 100, "seed": 1234, "epochs": 10000, "learning_rate": 1e-4, "betas": [0.8, 0.99], "eps": 1e-9, - "batch_size": 12, + "batch_size": 6, "fp16_run": False, "lr_decay": 0.999875, "segment_size": 17920, @@ -31,9 +31,9 @@ config_template = { "validation_files":"filelists/val.txt", "max_wav_value": 32768.0, "sampling_rate": 32000, - "filter_length": 1280, + "filter_length": 1024, "hop_length": 320, - "win_length": 1280, + "win_length": 1024, "n_mel_channels": 80, "mel_fmin": 0.0, "mel_fmax": None @@ -92,9 +92,10 @@ if __name__ == "__main__": print(f"warning:{speaker}数据集数量小于10条,请补充数据") wavs = [i for i in wavs if i.endswith("wav")] shuffle(wavs) - train += wavs[2:-2] - val += wavs[:2] - test += wavs[-2:] + sp=max(2,int(len(wavs)/20)) + train += wavs[sp:-sp] + val += wavs[:sp] + test += wavs[-sp:] n_speakers = len(spk_dict.keys())*2 shuffle(train) shuffle(val)