我正在尝试在 Colab 主页面中编写一些代码将 MP3 文件转换为 midi。
所以我记得创建 mp3 格式的 midi 文件是一个大项目,我可能在将个人歌曲或音频文件导入到这个项目中时遇到困难。 (音频格式转MIDI,有些地方是用人工智能完成的(比如PolyphonicPianoTranscription),(AudiotoMIDI转换项目列表)。
所以我尝试通过这个功能将MP3转换为WAV:
def MP3_to_WAV(MP3_file):
from pydub import AudioSegment
sound = AudioSegment.from_mp3(MP3_file)
filename = os.path.basename(MP3_file)
wav_file_name=output_path+filename.split('.')[0]+'.wav'
sound.export(wav_file_name, format="wav")
return wav_file_name
并尝试通过 this 指令和此功能将 WAV 转换为 MIDI:
def wav_to_midi(wav_f_n):
filename2 = os.path.basename(wav_f_n)
midi_file_name=output_path+filename2.split('.')[0]+'.midi'
run_comand("python /content/audio_to_midi_melodia/audio_to_midi_melodia.py "+wav_file+' '+ midi_file_name+" 120")
return midi_file_name
但是在我的 Colab 页面的 WAV 到 Midi 块代码(链接)中,我收到此错误:
Vamp::HostExt::PluginLoader: No library found in Vamp path for plugin "mtg-melodia:melodia"
Loading audio...
Extracting melody f0 with MELODIA...
Traceback (most recent call last):
File "/content/audio_to_midi_melodia/audio_to_midi_melodia.py", line 225, in <module>
savejams=args.jams)
File "/content/audio_to_midi_melodia/audio_to_midi_melodia.py", line 174, in audio_to_midi_melodia
parameters={"voicing": 0.2})
File "/usr/local/lib/python3.7/dist-packages/vamp/collect.py", line 166, in collect
plugin, step_size, block_size = vamp.load.load_and_configure(data, sample_rate, plugin_key, parameters, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/vamp/load.py", line 83, in load_and_configure
vampyhost.ADAPT_CHANNEL_COUNT)
TypeError: Failed to load plugin: mtg-melodia:melodia
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-35-c99e6fb96073> in <module>()
84 print('\n'+files+'\n')
85 wav_file=MP3_to_WAV(files)
---> 86 midi_file=wav_to_midi(wav_file)
87
88
2 frames
<ipython-input-35-c99e6fb96073> in execute(command)
55 return output
56 else:
---> 57 raise ProcessException(command, exitCode, output)
58
59
TypeError: __init__() takes 2 positional arguments but 4 were given
我想这一定是因为python版本不匹配而发生的,但是在这里被问到了。
感谢您的关注。
看起来根本问题是
Vamp::HostExt::PluginLoader: No library found in Vamp path for plugin "mtg-melodia:melodia"
。
所以要么需要将 mtg-melodia:melodia 的路径添加到 Vamp 路径中,要么需要安装并配置 mtg-melodia:melodia。
您似乎正在使用以下网址中的说明来设置 mtg-melodia。您能否重新检查一下 mtg-melodia 安装和配置详细信息,您可能错过了一个步骤。
https://ourcodeworld.com/articles/read/983/how-to-extract-the-melody-from-an-audio-file-and-export-it-to-midi-generate-quantized-midi-using -python-in-ubuntu-18-04
要安装插件集,请将插件的库文件和任何提供的类别或 RDF 文件复制到您的系统或个人 Vamp 插件位置。
插件文件扩展名和复制到的位置取决于您使用的操作系统:
您的操作系统插件的文件扩展名放置插件文件的位置macOS.dylib
在Mac上:/Library/Audio/Plug-Ins/Vamp
$HOME/Library/Audio/Plug-Ins/Vamp
Library
文件夹默认是隐藏的;有关如何显示它们的详细信息,请参阅此处.dll
使用64位版本的Windows时:C:\Program Files (x86)\Vamp Plugins
C:\Program Files\Vamp Plugins
.dll
使用 32 位版本的 Windows 时:C:\Program Files\Vamp Plugins
.so
在 Linux、BSD 系统等上:/usr/local/lib/vamp
$HOME/vamp
您也可以设置
VAMP_PATH
环境变量来覆盖 Vamp 插件的搜索路径。 VAMP_PATH
应包含以分号分隔(在 Windows 上)或以冒号分隔(macOS、Linux)的目录位置列表。如果设置了,它将完全覆盖上面列出的标准位置。 (注意:在 64 位 Windows 上使用 32 位插件时,某些主机将检查 VAMP_PATH_32
环境变量而不是 VAMP_PATH
。)
来源来自这里