From 65189f9c08e2a65c3a36839562ad5d1cdfcc1c84 Mon Sep 17 00:00:00 2001 From: Roberts Slisans Date: Mon, 2 Sep 2024 16:50:42 +0300 Subject: [PATCH] bugfix npz loading --- .gitignore | 3 ++- tts_webui/bark/npz_tools.py | 2 ++ tts_webui/history_tab/main.py | 17 +++++++++++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index bec36ff2..964a3773 100644 --- a/.gitignore +++ b/.gitignore @@ -47,5 +47,6 @@ node_modules/ # Ignore temporary Jupiter notebooks *.temp.ipynb -# Temporary file used by some modules +# Temporary files used by some modules output.wav +log.out diff --git a/tts_webui/bark/npz_tools.py b/tts_webui/bark/npz_tools.py index 01dcd07a..e2f87e73 100644 --- a/tts_webui/bark/npz_tools.py +++ b/tts_webui/bark/npz_tools.py @@ -47,6 +47,8 @@ def save_npz_musicgen(filename: str, tokens: torch.Tensor, metadata: dict[str, A def load_npz(filename): def unpack_metadata(metadata: np.ndarray): def join_list(x: list | np.ndarray): + if isinstance(x, np.ndarray): + x = x.tolist() return "".join(x) return json.loads(join_list(metadata)) diff --git a/tts_webui/history_tab/main.py b/tts_webui/history_tab/main.py index dcdb267d..b7aed23c 100644 --- a/tts_webui/history_tab/main.py +++ b/tts_webui/history_tab/main.py @@ -10,7 +10,10 @@ ) from tts_webui.history_tab.get_wav_files import get_wav_files from tts_webui.history_tab.delete_generation_cb import delete_generation_cb -from tts_webui.history_tab.save_to_favorites import save_to_collection, save_to_favorites +from tts_webui.history_tab.save_to_favorites import ( + save_to_collection, + save_to_favorites, +) from tts_webui.history_tab.open_folder import open_folder @@ -23,12 +26,18 @@ def _get_filename(table, index): return table["data"][index][-1] +def get_json_text(filename): + try: + with open(filename) as f: + return json.load(f) + except: + return None + + def _select_audio(table, evt: gr.SelectData): index = _get_row_index(evt) filename = _get_filename(table, index) - with open(filename.replace(".wav", ".json")) as f: - json_text = json.load(f) - return filename, json_text + return filename, get_json_text(filename.replace(".wav", ".json")) def clear_audio():