midi2audio/FluidSynth: [WinError 2] Системе не удается найти указанный файл
Я использую пакет python midi2audio для перевода файла midi в формат WAV.
Бег:
filepath = 'C:/Users/Jack/Documents/GaTech/Research/Code/Data/Midi/C4/test12.mid'
soundfont = 'C:/Users/Jack/Downloads/weedsgm3.sf2'
fs = FluidSynth(soundfont)
if os.path.isfile(filepath):
print('The File Exists')
else:
print('The File does not exist')
fs.midi_to_audio(filepath, 'output.wav')
Выходы:
The File Exists
FileNotFoundError: [WinError 2] The system cannot find the file specified
Чтобы быть понятным, ошибка ссылается на файл, указанный в filepath, а не на soundfont. На упаковке мало документации, поэтому я не уверен, что делать.
Кто-нибудь с опытом работы с midi2audio сталкивался с такой же проблемой и знает, в чем причина проблемы?
1 ответ
fs = FluidSynth()
Это создает FluidSynth
объект со значениями по умолчанию для всех параметров конструктора.
FluidSynth(sample_rate=22050)
Это создает второй FluidSynth
объект. Ссылка на объект не присваивается какой-либо переменной, поэтому она немедленно отбрасывается.
FluidSynth(soundfont)
И третий объект.
fs.midi_to_audio(filepath, 'output.wav')
Объект, на который ссылается fs
использует звуковой шрифт по умолчанию и частоту дискретизации по умолчанию.
Вы должны сразу передать все параметры конструктору:
fs = FluidSynth(sound_font=soundfont, sample_rate=22050)
(И это может быть хорошей идеей, чтобы указать полный путь к выходному файлу.)