我正在尝试通过从较大的dataset中仅提取特定歌曲来创建数据集。 具体来说,我的意思是只有两种乐器的歌曲,其中一种来自键盘系列,另一种来自字符串系列。简化代码如下所示:
for midi_file_path in Path(dir_path).glob('**/*.mid'):
try:
song = converter.parse(midi_file_path)
parts = instrument.partitionByInstrument(song)
if parts:
if len(parts) == 2:
if (parts.parts[0].id in keyboard_instruments and parts.parts[1].id in string_instruments) or \
(parts.parts[1].id in keyboard_instruments and parts.parts[0].id in string_instruments):
print(midi_file_path)
except Exception as e:
print("Exception ", midi_file_path, e)
pass
这个过程需要花费很多时间,我想对其进行优化。 主要的问题是为什么处理器不能以全功率运行,而只有17%左右。 music21的最后一个版本说 - "功能提取默认运行多核" 。