| import json |
| import os |
| import pathlib |
|
|
| default_param = {} |
| default_param["bins"] = 768 |
| default_param["unstable_bins"] = 9 |
| default_param["reduction_bins"] = 762 |
| default_param["sr"] = 44100 |
| default_param["pre_filter_start"] = 757 |
| default_param["pre_filter_stop"] = 768 |
| default_param["band"] = {} |
|
|
|
|
| default_param["band"][1] = { |
| "sr": 11025, |
| "hl": 128, |
| "n_fft": 960, |
| "crop_start": 0, |
| "crop_stop": 245, |
| "lpf_start": 61, |
| "res_type": "polyphase", |
| } |
|
|
| default_param["band"][2] = { |
| "sr": 44100, |
| "hl": 512, |
| "n_fft": 1536, |
| "crop_start": 24, |
| "crop_stop": 547, |
| "hpf_start": 81, |
| "res_type": "sinc_best", |
| } |
|
|
|
|
| def int_keys(d): |
| r = {} |
| for k, v in d: |
| if k.isdigit(): |
| k = int(k) |
| r[k] = v |
| return r |
|
|
|
|
| class ModelParameters(object): |
| def __init__(self, config_path=""): |
| if ".pth" == pathlib.Path(config_path).suffix: |
| import zipfile |
|
|
| with zipfile.ZipFile(config_path, "r") as zip: |
| self.param = json.loads( |
| zip.read("param.json"), object_pairs_hook=int_keys |
| ) |
| elif ".json" == pathlib.Path(config_path).suffix: |
| with open(config_path, "r") as f: |
| self.param = json.loads(f.read(), object_pairs_hook=int_keys) |
| else: |
| self.param = default_param |
|
|
| for k in [ |
| "mid_side", |
| "mid_side_b", |
| "mid_side_b2", |
| "stereo_w", |
| "stereo_n", |
| "reverse", |
| ]: |
| if not k in self.param: |
| self.param[k] = False |
|
|