|
import json |
|
|
|
default_param = {} |
|
default_param['bins'] = -1 |
|
default_param['unstable_bins'] = -1 |
|
default_param['stable_bins'] = -1 |
|
default_param['sr'] = 44100 |
|
default_param['pre_filter_start'] = -1 |
|
default_param['pre_filter_stop'] = -1 |
|
default_param['band'] = {} |
|
|
|
N_BINS = 'n_bins' |
|
|
|
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=''): |
|
with open(config_path, 'r') as f: |
|
self.param = json.loads(f.read(), object_pairs_hook=int_keys) |
|
|
|
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 |
|
|
|
if N_BINS in self.param: |
|
self.param['bins'] = self.param[N_BINS] |