Python 将MP3音频文件转换成MIDI乐谱文件
Python 将MP3音频文件转换成MIDI乐谱文件
spleeter
1.系统环境
我的Python环境
安装spleeter
pip install spleeter
查看spleeter是否安装成功
pip list
安装ffmpeg
windows版链接:https://www.gyan.dev/ffmpeg/builds/
选择需要的版本进行下载,然后解压
将bin目录添加到系统环境变量即可
终端输入命令ffmpeg
如图说明安装成功
2.获取spleeter项目
spleeter项目链接:https://github.com/deezer/spleeter
下载预训练模型
预训练模型链接:https://github.com/deezer/spleeter/releases/tag/v1.4.0
我下载的spleeter项目
在项目根目录新建music
文件夹,用来存放要分离的mp3音频文件
在项目根目录新建pretrained_models
文件夹,把下载好的预训练模型解压到这里
根据需求来下载,不需要全部下载。
将2stems开头的一个预训练模型解压到2stems文件夹下,其他的同理
注意:文件夹命名只识别2stems、4stems、5stems
3.在项目根目录新建startup.bat文件
向startup.bat文件添加如下内容
@echo off & title spleeter启动器 by 编程要快乐
:: 项目根目录所在的绝对路径
set CURRENT_PATH=/d %~dp0
:: cd /d 会切换不同盘符的路径
@REM cd %CURRENT_PATH%
@REM echo %CURRENT_PATH%
:main
echo ------------------------------------------------------------------------------------------
echo 1.使用2stems预训练模型分离mp3音频文件(Vocals (singing voice) / accompaniment separation)
echo.
echo 2.使用4stems预训练模型分离mp3音频文件(Vocals / drums / bass / other separation)
echo.
echo 3.使用5stems预训练模型分离mp3音频文件(Vocals / drums / bass / piano / other separation)
echo ------------------------------------------------------------------------------------------
echo.
set /p x=请选择预训练模型:
:: 默认使用2stems预训练模型分离mp3音频文件
set model=2stems
if %x%==1 (set model=2stems
) else if %x%==2 (set model=4stems
) else if %x%==3 (set model=5stems
)
@REM echo %model%
:: music文件夹所在路径
set MUSIC_PATH=%CURRENT_PATH%\music\
:: 切换到music文件夹路径下,以便Tab键补全输入的文件名
cd %MUSIC_PATH%
echo.
set /p mp3=直接输入music文件夹里的mp3文件名(含后缀):
:: 将mp3中的所有双引号删除
SET mp3=%mp3:"=%
@REM set mp3=%cd%\music\%mp3%
set mp3=.\music\%mp3%
@REM echo %mp3%
:: 再切换回项目根目录来执行命令
cd %CURRENT_PATH%
@echo on
:: 使用 --verbose 参数查看更多的输出信息
python -m spleeter separate -p spleeter:%model% -o music_output "%mp3%" --verbose
@echo off
echo.
set /p isContinue=是否继续执行?(Y/N):
@REM echo %isContinue%
if %isContinue%==Y (clsgoto main
)
if %isContinue%==y (clsgoto main
)
else exit
@REM @echo off
@REM echo 按任意键结束...
@REM pause>nul
然后向music文件夹添加一首歌
接着双击startup.bat运行批处理文件
这样就分离成功了,去到music_output
目录查看
由于我选择了2stems预训练模型,所以只分离了人声和伴奏,其他预训练模型可自行测试
4.spleeter分离音频文件所需工具
关注编程要快乐
公共号,回复spleeter
即可获取
GiantMIDI-Piano
参考教程:https://www.bilibili.com/read/cv8223137/
1.获取GiantMIDI-Piano项目
GiantMIDI-Piano项目链接:https://github.com/bytedance/GiantMIDI-Piano
2.下载EmEdtior编辑器
EmEdtior中文官网:https://zh-cn.emeditor.com/
用来处理接下来的.csv
文件
3.安装项目根目录requirements.txt
文件里的依赖
执行命令安装依赖
pip install -r requirements.txt
下载完之后,需要安装Pytorch
1.4及以上版本
pip install torch
这会默认下载CPU版的Pytorch。但是我是下载GPU版的,这样执行速度会快一点。
4.下载CUDA版(GPU版)Pytorch
链接:https://pytorch.org/get-started/locally/
如图选择(需根据电脑配置来选择CUDA版本)
查看电脑显卡支持的CUDA版本
下载CUDA工具包
CUDA工具包链接:https://developer.nvidia.com/zh-cn/cuda-downloads
CUDA工具包本地安装包是内含特定版本Nvidia显卡驱动的,所以只选择下载CUDA工具包就足够了,如果想安装其他版本的显卡驱动就下载相应版本即可。
开始下载Pytorch
执行以下命令就可以下载了
pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
它会根据你当前所在的Python版本环境来下载相应版本的依赖包,我的Python版本为3.8.3,所以会下载cp38的依赖包。
由于我已经下载好了,我用Anaconda来模拟下载命令的过程,可以看到我的Anaconda环境的Python版本为3.7.10,执行命令,会下载cp37的依赖包。
因为命令行下载有很大概率下载失败,所以我选择离线包下载安装
各个版本的pytorch以及torchvision,的CPU版本,GPU版本都可以在下面的网址下载:https://download.pytorch.org/whl/torch_stable.html
找到对应Python版本的GPU版Pytorch离线包下载即可
torchvision、torchaudio同理
注意:torchaudio只有cpu版
离线安装Pytorch、torchvision、torchaudio
依次执行下面的命令,注意离线包名可能不一样
pip install "torch-1.8.1+cu111-cp38-cp38-win_amd64.whl"
pip install "torchvision-0.9.1+cu111-cp38-cp38-win_amd64.whl
pip install "torchaudio-0.8.1-cp38-none-win_amd64.whl"
查看是否都安装成功了
pip list
5.编写startup.bat以及创建文件夹
在项目根目录创建startup.bat批处理文件
python audios_to_midis.py transcribe_piano --workspace="./works" --mp3s_dir="./works/mp3s_piano_solo" --midis_dir="./works/midis" --begin_ind=0 --end_index=10
@echo off
echo.
echo 按任意键退出...
pause>nul
填入上述内容保存
在项目根目录创建works
文件夹
并建立midis
、mp3s_piano_solo
两个文件夹,同时将以下full_music_pieces_youtube_similarity_pianosoloprob.csv
文件放进该works
文件夹
将mp3文件放入mp3s_piano_solo
中
将之前spleeter分离出的accompaniment.wav
文件转成mp3文件放入该目录
接着用EmEdtior工具打开csv文件
删除多余的行,并设置不必要的列的值为unknown
,并设置audio_name
列的值为accompaniment
,以及piano_solo_prob
列的值为1
保存设置好的csv文件,并执行批处理文件
双击该项目根目录的startup.bat来将MP3文件转换成MIDI乐谱文件
查看输出来的MIDI文件
双击播放该乐谱文件
播放成功!至此MP3音频文件转MIDI乐谱文件教程就结束了!
6.GiantMIDI-Piano转换所需工具
关注编程要快乐
公共号,回复midi
即可获取
Python 将MP3音频文件转换成MIDI乐谱文件相关推荐
- pip 安装protobuf_Python3.6安装protobuf模块+将proto文件转换成pb2.py文件
Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...
- pdf英文转换成html网页,PDF文件转换成html网页文件小方法
原标题:PDF文件转换成html网页文件小方法 现在不知道大家知不知道小学已经开设编程课程了.我记得我们小时候连上个微机课都是一种奢望,所以现在的孩纸还是很享福的呀.但是很多的小白估计听着代码.编程这 ...
- 答:怎样把图片文件转换成.ico图标文件?
答:怎样把图片文件转换成.ico图标文件? 有许多中方法制作图标文件.选其中的两种方式记录下来. 第一种非常简单,使用"小榕图标编辑器".是公用软件.免费.使用起来非常简单,根本不 ...
- 怎样把图片文件转换成.ico图标文件?
怎样把图片文件转换成.ico图标文件? 比如把.bmp/.jpg/.gif等格式的文件转换成.ico文件.应该如何作呢? 有知道的大哥告知一下吧. 有答案啦!!! 答:怎样把图片文件转换成.ico图标 ...
- 如何将pdf文件转换成cad格式文件
pdf文件是一个封闭性文件,文件不仅不容易编辑修改,而且还可能被加密了,那么如何将pdf文件转换成cad格式文件呢? 下面小编教大家使用pdf转换器实现以上操作,具体步骤如下. 第一步:搜索迅捷pdf ...
- 如何将asc文件转换成的txt文件,并导入到sql server中?
最近的工作是利用Arcgis处理得到pixels 数据,再用erdas 软件将pixels 数据转换成 ASCII码,最终生成了asc文件(文件中的数据每3个数据为一组,分别表示了: 横坐标X:纵坐标 ...
- java将excel文件转换成txt格式文件
在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...
- python把.CSV文件转换成.JSON格式文件并格式化储存
先来看看.JSON对象的一些操作方法: 我们这次用到的主要就是json.dumps 再来看看我们将要转换的.CSV文件的样子: 可以看出,是一张再普通不过的表了,话不多说,直接上代码: import ...
- r语言的rmd文件转换成html,.Rmd文件转化为PDF报告
使用R Markdown,knit和MikTex将.Rmd文件转化为pdf报告(只针对windows10, 可能windows系统都可以) 因为上课需要用到RStudio创建.Rmd文件,并且需要将该 ...
最新文章
- inline hook __usercall 函数
- 古月居ros课件_【古月居】ROS2探索总结系列
- Docker的运行机制
- matlab GUI——按下按钮在指定的坐标下绘制函数图像
- c语言链表有没有哨兵的区别,链表中的哨兵(sentinel)
- [react] 举例说明useState
- LeetCode 2161. 根据给定数字划分数组
- Greenplum 行存、列存,堆表、AO表的原理和选择
- 从仁慈的独裁者到微软打工人,Python之父和Python将走向何方?
- [sql面试经验] 经典sql面试题及答案第2期
- 渗透测试PTES标准流程(超详细)
- 可控硅型号怎样识别_可控硅的鉴别
- pmp知识点(8)-项目质量管理
- python中ix用法_pandas中ix的使用详细讲解
- 激情巴布部落畅快一日游
- htc android sd卡,HTC M8支持扩展储存卡吗?HTC M8支持多大的储存卡?
- 《数据结构》-图的邻接表表示法(四)
- 万测试验机软件,万测关注检查井盖质量检测
- 前端学习从入门到高级全程记录之13 (京东项目一)
- HTML径向效果,HTML Canvas实现径向渐变效果
热门文章
- ExifTool常用使用方法
- 谷歌浏览器 chrome 71版本以上 设置默认允许flash
- Android之WebView的使用与简单浏览器
- 美团四年,字节三年这七年测试之路希望能让正在迷茫的你少走弯路
- 什么是美颜SDK?怎样选择美颜SDK?
- 个人免签支付如何对接微信支付宝?
- 坎坎坷坷的深度学习之路(一)-环境搭建
- [模板上新]病毒防疫主题公众号图文模板免费使用,武汉加油!
- 我的世界java版变形模组下载_我的世界变形模组
- python概率密度函数参数估计_Python与项目反应理论:基于EM和MCMC的参数估计算法...