Я везде искал решение этой проблемы, но по какой-то причине ничего не работает. Я пишу сценарий для преобразования MIDI-файлов в WAV-файлы, используя библиотеку python, которая называется midi2audio. Сценарий находится в том же каталоге, что и все MIDI-файлы, и пытается создать и заполнить каталог на рабочем столе.
Я получаю следующую ошибку: FileNotFoundError: [WinError 2] Системе не удается найти указанный файл
Код ниже:
from midi2audio import FluidSynth
import os
files = [file for file in os.listdir('./') if '.mid' in file]
target_dir = 'C:\\Users\\Arham\\Desktop\\GuitarWavs'
print(os.getcwd())
if not os.path.exists(target_dir):
print("Creating directory: " + target_dir)
os.mkdir(target_dir)
print("Converting files...")
for file in files:
fs = FluidSynth()
print(file)
fs.midi_to_audio(file, target_dir+'\\'+file[0:file.index('.mid')]+'.wav') #error here
print('Convertion complete!')
Список «files» содержит все правильные имена файлов, а os.getcwd () возвращает каталог, в котором находятся midi-файлы и скрипт. Я особенно смущен, потому что, насколько я вижу, путь, переданный функции, пытающейся найти и открыть этот файл, является правильным.
Для ясности структура каталогов:
Desktop
----FilewithMidis
--------script.py
--------midi files
----GuitarWavs (destination folder)
I попытался: дать явный путь к файлу ("C: / Users / .."), используя ./file для ссылки на него, используя только имя файла, используя os.path.join, чтобы объединить путь с именем файла .
Я очень ценю любую помощь в этом! Спасибо!
РЕДАКТИРОВАТЬ Трассировка стека ниже:
Traceback (most recent call last):
File "miditowav.py", line 27, in <module>
fs.midi_to_audio(os.path.join(os.getcwd(),file), target_dir+'\\'+file[0:file.index('.mid')]+'.wav')
File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\site-packages\midi2audio.py", line 46, in midi_to_audio
subprocess.call(['fluidsynth', '-ni', self.sound_font, midi_file, '-F', audio_file, '-r', str(self.sample_rate)])
File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 323, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Я начинаю думать, что это проблема с Fluidsynth, я слышал кое-что о необходимости добавить это к моей переменной Path, но я не знаю, где он установлен, так как я использовал pip.