Fake Offline def fake_offline(): model = load_from_checkpoint(model_path) # Convert midi file to tensor # midi file -> [1, num_logical_ticks, max_polyphony*2] x_mel, x_acc = conter_midi_to_tensor(midi_path) # fake inference round for i in range(n_round): # get right prompts prompt_length_i = prompt_length + i*gen_interval_ticks x_mel_pre = get_proper_mel_prompt_length(prompt_length_i) x_acc_pre = get_proper_acc_prompt_length(prompt_length_i) x = merge_mel_acc(x_mel_pre, x_acc_pre) # generate output output = model.forward(x, gen_seq_len) # seperate the output back to x_mel_pre and x_acc_pre x_mel_pre, x_acc_pre = seperate_output(output) # if it's first round, replace some acc with empty frame if (i = 0): set_corresponding_frame_empty(x_acc_pre) else: tem_start = prompt_length + i*gen_interval_ticks + latency tem_end = prompt_length + i*gen_interval_ticks + latency + gen_interval_ticks # 拼接 tem_ decode_output(output)