Fix nested audio files bug
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
@@ -15,11 +16,10 @@ from config import config
|
|||||||
from style_bert_vits2.constants import DEFAULT_STYLE, GRADIO_THEME
|
from style_bert_vits2.constants import DEFAULT_STYLE, GRADIO_THEME
|
||||||
from style_bert_vits2.logging import logger
|
from style_bert_vits2.logging import logger
|
||||||
|
|
||||||
|
|
||||||
# Get path settings
|
# Get path settings
|
||||||
with open(os.path.join("configs", "paths.yml"), "r", encoding="utf-8") as f:
|
with open(os.path.join("configs", "paths.yml"), "r", encoding="utf-8") as f:
|
||||||
path_config: dict[str, str] = yaml.safe_load(f.read())
|
path_config: dict[str, str] = yaml.safe_load(f.read())
|
||||||
dataset_root = path_config["dataset_root"]
|
dataset_root = Path(path_config["dataset_root"])
|
||||||
# assets_root = path_config["assets_root"]
|
# assets_root = path_config["assets_root"]
|
||||||
|
|
||||||
MAX_CLUSTER_NUM = 10
|
MAX_CLUSTER_NUM = 10
|
||||||
@@ -28,7 +28,7 @@ MAX_AUDIO_NUM = 10
|
|||||||
tsne = TSNE(n_components=2, random_state=42, metric="cosine")
|
tsne = TSNE(n_components=2, random_state=42, metric="cosine")
|
||||||
umap = UMAP(n_components=2, random_state=42, metric="cosine", n_jobs=1, min_dist=0.0)
|
umap = UMAP(n_components=2, random_state=42, metric="cosine", n_jobs=1, min_dist=0.0)
|
||||||
|
|
||||||
wav_files = []
|
wav_files: list[Path] = []
|
||||||
x = np.array([])
|
x = np.array([])
|
||||||
x_reduced = None
|
x_reduced = None
|
||||||
y_pred = np.array([])
|
y_pred = np.array([])
|
||||||
@@ -36,13 +36,17 @@ mean = np.array([])
|
|||||||
centroids = []
|
centroids = []
|
||||||
|
|
||||||
|
|
||||||
def load(model_name, reduction_method):
|
def load(model_name: str, reduction_method: str):
|
||||||
global wav_files, x, x_reduced, mean
|
global wav_files, x, x_reduced, mean
|
||||||
wavs_dir = os.path.join(dataset_root, model_name, "wavs")
|
# wavs_dir = os.path.join(dataset_root, model_name, "wavs")
|
||||||
style_vector_files = [
|
wavs_dir = dataset_root / model_name / "wavs"
|
||||||
os.path.join(wavs_dir, f) for f in os.listdir(wavs_dir) if f.endswith(".npy")
|
# style_vector_files = [
|
||||||
]
|
# os.path.join(wavs_dir, f) for f in os.listdir(wavs_dir) if f.endswith(".npy")
|
||||||
wav_files = [f.replace(".npy", "") for f in style_vector_files]
|
# ]
|
||||||
|
style_vector_files = [f for f in wavs_dir.rglob("*.npy") if f.is_file()]
|
||||||
|
# foo.wav.npy -> foo.wav
|
||||||
|
wav_files = [f.with_suffix("") for f in style_vector_files]
|
||||||
|
logger.info(f"Found {len(style_vector_files)} style vectors in {wavs_dir}")
|
||||||
style_vectors = [np.load(f) for f in style_vector_files]
|
style_vectors = [np.load(f) for f in style_vector_files]
|
||||||
x = np.array(style_vectors)
|
x = np.array(style_vectors)
|
||||||
mean = np.mean(x, axis=0)
|
mean = np.mean(x, axis=0)
|
||||||
@@ -201,6 +205,7 @@ def save_style_vectors_from_clustering(model_name, style_names_str: str):
|
|||||||
logger.info(f"Backup {style_vector_path} to {style_vector_path}.bak")
|
logger.info(f"Backup {style_vector_path} to {style_vector_path}.bak")
|
||||||
shutil.copy(style_vector_path, f"{style_vector_path}.bak")
|
shutil.copy(style_vector_path, f"{style_vector_path}.bak")
|
||||||
np.save(style_vector_path, style_vectors)
|
np.save(style_vector_path, style_vectors)
|
||||||
|
logger.success(f"Saved style vectors to {style_vector_path}")
|
||||||
|
|
||||||
# config.jsonの更新
|
# config.jsonの更新
|
||||||
config_path = os.path.join(result_dir, "config.json")
|
config_path = os.path.join(result_dir, "config.json")
|
||||||
@@ -222,6 +227,7 @@ def save_style_vectors_from_clustering(model_name, style_names_str: str):
|
|||||||
json_dict["data"]["style2id"] = style_dict
|
json_dict["data"]["style2id"] = style_dict
|
||||||
with open(config_path, "w", encoding="utf-8") as f:
|
with open(config_path, "w", encoding="utf-8") as f:
|
||||||
json.dump(json_dict, f, indent=2, ensure_ascii=False)
|
json.dump(json_dict, f, indent=2, ensure_ascii=False)
|
||||||
|
logger.success(f"Updated {config_path}")
|
||||||
return f"成功!\n{style_vector_path}に保存し{config_path}を更新しました。"
|
return f"成功!\n{style_vector_path}に保存し{config_path}を更新しました。"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user