我正在尝试通过从较大的数据集中仅提取特定歌曲来创建数据集。具体来说,我的意思是歌曲只有两种乐器,一种来自键盘家族,另一种来自弦乐家族。简化的代码如下所示:
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的最后一个版本说 - “Feature Extraction runs multicore by default”。