midi2audio / FluidSynth:[WinError 2]系统无法找到该文件

问题描述 投票:0回答:1

我得到一个FileNotFoundError错误,而试图调用midi2audio。我使用Python 3.6的工作 - 蟒蛇 - 的Windows 10.我.py文件是在同一文件夹,与.sf2和.MID文件一起。我的代码是:

from midiutil.MidiFile import MIDIFile

from midi2audio import FluidSynth
soundfont = 'C:\\Users\\matteo.stante\\Documents\\4_Python_Scripts\\experiments\\JR_sax.sf2'

filepath = 'C:\\Users\\matteo.stante\\Documents\\4_Python_Scripts\\experiments\\input.mid'

fs = FluidSynth(sound_font=soundfont, sample_rate=22050)

fs.midi_to_audio(filepath, 'output.wav')

我希望创建我的文件夹中的一个.wav文件。我得到的,而不是:

runfile('C:/Users/matteo.stante/Documents/4_Python_Scripts/experiments/AudioBello.py', wdir='C:/Users/matteo.stante/Documents/4_Python_Scripts/experiments')
Traceback (most recent call last):

  File "<ipython-input-43-cdda6b922219>", line 1, in <module>
    runfile('C:/Users/matteo.stante/Documents/4_Python_Scripts/experiments/AudioBello.py', wdir='C:/Users/matteo.stante/Documents/4_Python_Scripts/experiments')

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/matteo.stante/Documents/4_Python_Scripts/experiments/AudioBello.py", line 26, in <module>
    fs.midi_to_audio(filepath, 'output.wav')

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\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\matteo.stante\AppData\Local\Continuum\anaconda3\lib\subprocess.py", line 267, in call
    with Popen(*popenargs, **kwargs) as p:

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 210, in __init__
    super(SubprocessPopen, self).__init__(*args, **kwargs)

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)

  File "C:\Users\matteo.stante\AppData\Local\Continuum\anaconda3\lib\subprocess.py", line 997, in _execute_child
    startupinfo)

FileNotFoundError: [WinError 2] Impossibile trovare il file specificato
python fluidsynth
1个回答
0
投票
soundfont = 'C:\\Users\\matteo.stante\\Documents\\4_Python_Scripts\\experiments\\JR_sax.sf2'

filepath = 'C:\\Users\\matteo.stante\\Documents\\4_Python_Scripts\\experiments\\input.mid'
  • 对于Windows:\\(为什么2因为\用于通过格式化像\ n \ r ...所以你需要2?)
  • Linux系统:/

如果该文件是在同一个文件夹中,然后

soundfont = 'R_sax.sf2'

filepath = 'input.mid'

编辑

我试了一下我的电脑(视窗10)上,我得到同样的错误。我的文档我没有找到任何操作系统提及,但显然有些Linux命令。

试试这个在Linux OS


Aaditi

我把小的努力,并试图在Linux上了。

1)错误是相同的 - 未找到文件

2)我发现你必须把文件夹的地方上的路径 - 命令:$ PATH

  • 我把它到/ usr / local / bin目录/ fluidsynth

3)新的错误:权限被拒绝(想不出通过它,即使根)

4)我发现,我没有安装fluidsynth

命令:易于安装fluidsynth

5)你的脚本工作(那种,output.wav生成)

enter image description here

可能的解决方法

我认为,这个问题 - 你的Windows解决方案将在Windows上安装fluidsynth后得到解决 - 在Linux上安装fluidsynth后。

http://www.fluidsynth.org/

© www.soinside.com 2019 - 2024. All rights reserved.