首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >file 2音频/FluidSynth:[WinError 2]系统找不到文件

file 2音频/FluidSynth:[WinError 2]系统找不到文件
EN

Stack Overflow用户
提问于 2019-02-04 11:47:36
回答 1查看 1.3K关注 0票数 0

在试图调用FileNotFoundError时,我得到了一个midi2audio错误。我正在使用Python3.6Anaconda-Windows 10,我的.py文件与.sf2和.mid文件位于同一个文件夹中。我的代码是:

代码语言:javascript
复制
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文件。我得到的却是:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-04 12:28:45

代码语言:javascript
复制
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:/

如果文件位于同一个文件夹中,则

代码语言:javascript
复制
soundfont = 'R_sax.sf2'

filepath = 'input.mid'

编辑

我在我的电脑(windows 10)上试了一下,结果也出现了同样的错误。我没有找到任何关于OS的文档,但是很明显有一些linux命令。

在Linux操作系统上试一试

EDIT2

--我花了很少的精力,也在Linux上试了一下.

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

2)我发现您必须将文件夹放在路径-command:$PATH的某个地方

  • 我把它放到/usr/local/bin/fluidsynth上

3)新错误:权限被拒绝(即使在根上也不能传递)

4)我发现我没有安装流体合成器

命令: apt安装fluidsynth

5)您的脚本工作正常(某种程度上,output.wav生成)

可能的解决方案

我相信,在linux上安装fluidsynth之后,您的windows解决方案将在Windows上安装fluidsynth之后得到解决。

http://www.fluidsynth.org/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54515439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档