60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
|
import json
|
||
|
import os
|
||
|
import pathlib
|
||
|
|
||
|
default_param = {}
|
||
|
default_param['bins'] = 768
|
||
|
default_param['unstable_bins'] = 9 # training only
|
||
|
default_param['reduction_bins'] = 762 # training only
|
||
|
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, # inference only
|
||
|
'res_type': 'polyphase'
|
||
|
}
|
||
|
|
||
|
default_param['band'][2] = {
|
||
|
'sr': 44100,
|
||
|
'hl': 512,
|
||
|
'n_fft': 1536,
|
||
|
'crop_start': 24,
|
||
|
'crop_stop': 547,
|
||
|
'hpf_start': 81, # inference only
|
||
|
'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
|