用python转换midi到wav

5 篇文章 0 订阅
2 篇文章 0 订阅

在网上查找此类转换的相关文章,未找到合适的,经过本人的刻苦钻研,终于大功告成,下面就娓娓道来。

安装fluidsynth软件和库

sudo apt install fluidsynth
pip install midi2audio
pip install fluidsynth

导入和转换

from midi2audio import FluidSynth
s = FluidSynth()
fs.midi_to_audio('input.mid', 'output.wav')

以上input.mid为想要转换的midi文件所在位置,output.wav为输出wav音乐所在位置。

注意:

在转换的过程中会出现如下问题:

  • 问题1: subprocess.call后面跟着一串~/.fluidsynth/default_sound_font.sf2
  • 解决方案:这是因为FluidSynth()会默认调用~/.fluidsynth/default_sound_font.sf2下的default_sound_font.sf2文件,而实际上这个文件是不存在的,既然不存在,那么自己就在根目录下建立.fluidsynth文件夹,然后在该文件夹下放入该sf2文件。
  • 问题2:default_sound_font.sf2文件去哪里找?
  • 解决方案:首先要知道这个文件是干什么用的,我们知道midi是一种记谱的格式,要将它转换为wav,应该给其配置相应的音色库,对了,该sf2就是所谓的soundfont,即音色库。
    官方的midi2audio文档里给出了一个连接,但现在经本人验证,点这个连接进去根本没有,如下图所示,此时,我的内心是崩溃的……
    既然官网给的不能用,那就自己找,经过本菜鸟的实践,发现了2种可行方案:
  • 1、打五线谱的museScore软件想必接触音乐的人都了解,目前它有2和3两个版本,我这里用的是2这个版本,在其 https://musescore.org/en/handbook/soundfonts-and-sfz-files上可以找到sf2文件的下载连接,选择那个最大的(各种乐器都有)准没错。如下图红色方框里的。
    -在这里插入图片描述
  • 2、百度网盘http://pan.baidu.com/s/1qWPTBsg下载。

记得一定要记得要把文件名改为default_sound_font.sf2哦,这样程序才能认识它。

当然了,midi除了可以转换为wav外,还可以转换为flac,这个官网上有说到,此时还可以改变音乐的采样频率。
这里我的配置是 ubuntu18.04+python3,在window可能稍有不同,不过原理是一样的,大同小异。

end

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

windawdaysss

觉得文章有用,可以请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值