Remove: code that is not referenced anywhere
This commit is contained in:
87
spec_gen.py
87
spec_gen.py
@@ -1,87 +0,0 @@
|
||||
import torch
|
||||
from tqdm import tqdm
|
||||
from multiprocessing import Pool
|
||||
from mel_processing import spectrogram_torch, mel_spectrogram_torch
|
||||
from utils import load_wav_to_torch
|
||||
|
||||
|
||||
class AudioProcessor:
|
||||
def __init__(
|
||||
self,
|
||||
max_wav_value,
|
||||
use_mel_spec_posterior,
|
||||
filter_length,
|
||||
n_mel_channels,
|
||||
sampling_rate,
|
||||
hop_length,
|
||||
win_length,
|
||||
mel_fmin,
|
||||
mel_fmax,
|
||||
):
|
||||
self.max_wav_value = max_wav_value
|
||||
self.use_mel_spec_posterior = use_mel_spec_posterior
|
||||
self.filter_length = filter_length
|
||||
self.n_mel_channels = n_mel_channels
|
||||
self.sampling_rate = sampling_rate
|
||||
self.hop_length = hop_length
|
||||
self.win_length = win_length
|
||||
self.mel_fmin = mel_fmin
|
||||
self.mel_fmax = mel_fmax
|
||||
|
||||
def process_audio(self, filename):
|
||||
audio, sampling_rate = load_wav_to_torch(filename)
|
||||
audio_norm = audio / self.max_wav_value
|
||||
audio_norm = audio_norm.unsqueeze(0)
|
||||
spec_filename = filename.replace(".wav", ".spec.pt")
|
||||
if self.use_mel_spec_posterior:
|
||||
spec_filename = spec_filename.replace(".spec.pt", ".mel.pt")
|
||||
try:
|
||||
spec = torch.load(spec_filename)
|
||||
except:
|
||||
if self.use_mel_spec_posterior:
|
||||
spec = mel_spectrogram_torch(
|
||||
audio_norm,
|
||||
self.filter_length,
|
||||
self.n_mel_channels,
|
||||
self.sampling_rate,
|
||||
self.hop_length,
|
||||
self.win_length,
|
||||
self.mel_fmin,
|
||||
self.mel_fmax,
|
||||
center=False,
|
||||
)
|
||||
else:
|
||||
spec = spectrogram_torch(
|
||||
audio_norm,
|
||||
self.filter_length,
|
||||
self.sampling_rate,
|
||||
self.hop_length,
|
||||
self.win_length,
|
||||
center=False,
|
||||
)
|
||||
spec = torch.squeeze(spec, 0)
|
||||
torch.save(spec, spec_filename)
|
||||
return spec, audio_norm
|
||||
|
||||
|
||||
# 使用示例
|
||||
processor = AudioProcessor(
|
||||
max_wav_value=32768.0,
|
||||
use_mel_spec_posterior=False,
|
||||
filter_length=2048,
|
||||
n_mel_channels=128,
|
||||
sampling_rate=44100,
|
||||
hop_length=512,
|
||||
win_length=2048,
|
||||
mel_fmin=0.0,
|
||||
mel_fmax="null",
|
||||
)
|
||||
|
||||
with open("filelists/train.list", "r") as f:
|
||||
filepaths = [line.split("|")[0] for line in f] # 取每一行的第一部分作为audiopath
|
||||
|
||||
# 使用多进程处理
|
||||
with Pool(processes=32) as pool: # 使用4个进程
|
||||
with tqdm(total=len(filepaths)) as pbar:
|
||||
for i, _ in enumerate(pool.imap_unordered(processor.process_audio, filepaths)):
|
||||
pbar.update()
|
||||
@@ -1,93 +0,0 @@
|
||||
import os
|
||||
import gradio as gr
|
||||
|
||||
lang_dict = {"EN(英文)": "_en", "ZH(中文)": "_zh", "JP(日语)": "_jp"}
|
||||
|
||||
|
||||
def raw_dir_convert_to_path(target_dir: str, lang):
|
||||
res = target_dir.rstrip("/").rstrip("\\")
|
||||
if (not target_dir.startswith("raw")) and (not target_dir.startswith("./raw")):
|
||||
res = os.path.join("./raw", res)
|
||||
if (
|
||||
(not res.endswith("_zh"))
|
||||
and (not res.endswith("_jp"))
|
||||
and (not res.endswith("_en"))
|
||||
):
|
||||
res += lang_dict[lang]
|
||||
return res
|
||||
|
||||
|
||||
def update_g_files():
|
||||
g_files = []
|
||||
cnt = 0
|
||||
for root, dirs, files in os.walk(os.path.abspath("./logs")):
|
||||
for file in files:
|
||||
if file.startswith("G_") and file.endswith(".pth"):
|
||||
g_files.append(os.path.join(root, file))
|
||||
cnt += 1
|
||||
print(g_files)
|
||||
return f"更新模型列表完成, 共找到{cnt}个模型", gr.Dropdown.update(choices=g_files)
|
||||
|
||||
|
||||
def update_c_files():
|
||||
c_files = []
|
||||
cnt = 0
|
||||
for root, dirs, files in os.walk(os.path.abspath("./logs")):
|
||||
for file in files:
|
||||
if file.startswith("config.json"):
|
||||
c_files.append(os.path.join(root, file))
|
||||
cnt += 1
|
||||
print(c_files)
|
||||
return f"更新模型列表完成, 共找到{cnt}个配置文件", gr.Dropdown.update(
|
||||
choices=c_files
|
||||
)
|
||||
|
||||
|
||||
def update_model_folders():
|
||||
subdirs = []
|
||||
cnt = 0
|
||||
for root, dirs, files in os.walk(os.path.abspath("./logs")):
|
||||
for dir_name in dirs:
|
||||
if os.path.basename(dir_name) != "eval":
|
||||
subdirs.append(os.path.join(root, dir_name))
|
||||
cnt += 1
|
||||
print(subdirs)
|
||||
return f"更新模型文件夹列表完成, 共找到{cnt}个文件夹", gr.Dropdown.update(
|
||||
choices=subdirs
|
||||
)
|
||||
|
||||
|
||||
def update_wav_lab_pairs():
|
||||
wav_count = tot_count = 0
|
||||
for root, _, files in os.walk("./raw"):
|
||||
for file in files:
|
||||
# print(file)
|
||||
file_path = os.path.join(root, file)
|
||||
if file.lower().endswith(".wav"):
|
||||
lab_file = os.path.splitext(file_path)[0] + ".lab"
|
||||
if os.path.exists(lab_file):
|
||||
wav_count += 1
|
||||
tot_count += 1
|
||||
return f"{wav_count} / {tot_count}"
|
||||
|
||||
|
||||
def update_raw_folders():
|
||||
subdirs = []
|
||||
cnt = 0
|
||||
script_path = os.path.dirname(os.path.abspath(__file__)) # 获取当前脚本的绝对路径
|
||||
raw_path = os.path.join(script_path, "raw")
|
||||
print(raw_path)
|
||||
os.makedirs(raw_path, exist_ok=True)
|
||||
for root, dirs, files in os.walk(raw_path):
|
||||
for dir_name in dirs:
|
||||
relative_path = os.path.relpath(
|
||||
os.path.join(root, dir_name), script_path
|
||||
) # 获取相对路径
|
||||
subdirs.append(relative_path)
|
||||
cnt += 1
|
||||
print(subdirs)
|
||||
return (
|
||||
f"更新raw音频文件夹列表完成, 共找到{cnt}个文件夹",
|
||||
gr.Dropdown.update(choices=subdirs),
|
||||
gr.Textbox.update(value=update_wav_lab_pairs()),
|
||||
)
|
||||
Reference in New Issue
Block a user