import tensorflow as tf
import numpy as np
import pandas as pd
import hyperpara as hp
from model import MyModel
from midi_utils import midi_to_notes, notes_to_midi
def predict_next_note(
notes: np.ndarray,
keras_model: MyModel,
temperature: float = 1.0):
"""Generates a note IDs using a trained sequence model."""
# Add batch dimension
inputs = tf.expand_dims(notes, 0)
predictions = model.predict(inputs)
pitch_logits = predictions['pitch']
step = predictions['step']
duration = predictions['duration']
pitch_logits /= temperature
pitch = tf.random.categorical(pitch_logits, num_samples=1)
pitch = tf.squeeze(pitch, axis=-1)
duration = tf.squeeze(duration, axis=-1)
step = tf.squeeze(step, axis=-1)
step = tf.maximum(0, step)
duration = tf.maximum(0, duration)
return int(pitch), float(step), float(duration)
def generate(sample_midi_file: str, output_midi_file: str, model, num_predictions):
raw_notes = midi_to_notes(sample_midi_file)
本文地址:http://ww.kub2b.com/news/15112.html
企库往 http://ww.kub2b.com/ , 查看更多