我正在尝试使用 RNN 神经网络预测 python 中的下一个乐器音符对。但是,我无法解释我目前所在部分的 music21 文档。
在下面的代码中,我试图提取乐器。
为什么我会得到多种乐器?例如:乐器.钢琴.钢琴。
- 我目前的理论是每个流部分都返回不同的内存地址,或者 music21 具有这些不同乐器的多个变体。如果第二个陈述成立,是否有办法获得每个仪器变体的唯一性?
为什么有些乐器没有任何名称?
- 我对为什么会这样有一些想法,但我想与社区确认,以确保我仍然神志清醒。
# Attempt to parse midi file
try:
midi = converter.parse(file)
except:
# Midi file couldn't be opened
return {"song_notes": [],
"note_count": [],
"small_file_check": False,
"corrupted": True}
# Stores all found instruments
instruments_in_song = set()
# Iterate through stream parts
for stream_part in midi.parts:
stream_instrument = instrument.partitionByInstrument(stream_part)
if stream_instrument:
for instr in stream_instrument.recurse().parts:
print("Instrument: {0}".format(instr.getInstrument()))
instruments_in_song.add(instr.getInstrument())
print(instruments_in_song)
我的文件输出: