| 213 | |
| 214 | |
| 215 | def preprocess_dataset(trainset_dir, exp_dir, sr, n_p): |
| 216 | sr = sr_dict[sr] |
| 217 | os.makedirs("%s/logs/%s" % (now_dir, exp_dir), exist_ok=True) |
| 218 | f = open("%s/logs/%s/preprocess.log" % (now_dir, exp_dir), "w") |
| 219 | f.close() |
| 220 | per = 3.0 if config.is_half else 3.7 |
| 221 | cmd = '"%s" infer/modules/train/preprocess.py "%s" %s %s "%s/logs/%s" %s %.1f' % ( |
| 222 | config.python_cmd, |
| 223 | trainset_dir, |
| 224 | sr, |
| 225 | n_p, |
| 226 | now_dir, |
| 227 | exp_dir, |
| 228 | config.noparallel, |
| 229 | per, |
| 230 | ) |
| 231 | logger.info(cmd) |
| 232 | # , stdin=PIPE, stdout=PIPE,stderr=PIPE,cwd=now_dir |
| 233 | p = Popen(cmd, shell=True) |
| 234 | # 煞笔gr, popen read都非得全跑完了再一次性读取, 不用gr就正常读一句输出一句;只能额外弄出一个文本流定时读 |
| 235 | done = [False] |
| 236 | threading.Thread( |
| 237 | target=if_done, |
| 238 | args=( |
| 239 | done, |
| 240 | p, |
| 241 | ), |
| 242 | ).start() |
| 243 | while 1: |
| 244 | with open("%s/logs/%s/preprocess.log" % (now_dir, exp_dir), "r") as f: |
| 245 | yield (f.read()) |
| 246 | sleep(1) |
| 247 | if done[0]: |
| 248 | break |
| 249 | with open("%s/logs/%s/preprocess.log" % (now_dir, exp_dir), "r") as f: |
| 250 | log = f.read() |
| 251 | logger.info(log) |
| 252 | yield log |
| 253 | |
| 254 | |
| 255 | # but2.click(extract_f0,[gpus6,np7,f0method8,if_f0_3,trainset_dir4],[info2]) |