in basic_pitch/visualize.py [0:0]
def _array_to_sonification(array: tf.Tensor, max_outputs: int, clip: float = 0.3) -> tf.Tensor:
"""sonify time frequency representation of audio
Args:
array: time-frequency representation of audio
max_outputs: the number of grams / batches to process / append to the resulting output
clip: value below which signal is 0'd out.
"""
gram_batch = tf.transpose(array, perm=[0, 2, 1]).numpy()
audio_list = []
for i, gram in enumerate(gram_batch):
gram[gram < clip] = 0.0
y = mir_eval.sonify.time_frequency(
gram[:MAX_FREQ_INDEX, :],
FREQS[:MAX_FREQ_INDEX],
TIMES,
fs=SONIFY_FS,
)
audio_list.append(y[:, np.newaxis])
if i + 1 >= max_outputs:
break
return tf.convert_to_tensor(np.array(audio_list), dtype=tf.float32)