如何自己扒谱?(未完工,不定期更新)

admin2025-05-12 18:00:559852

前言

可能有的朋友和我一样,平时喜欢一门乐器,同时也喜欢接触音乐。我们平时会遇到一个问题,那就是在生活中听到了一些喜欢的音乐,想把它转化为曲子自己练习,但是大部分的音乐并没有相关爱好者进行编曲,而相关的扒谱价格对于大部分人的钱包非常的不友好(三分钟的曲子要500多RMB),那么,如何自己学习编曲呢?本人没有搜索到国内网站相关的博客,于是打算自己写一篇,希望对有缘看见这篇文章的人有所帮助!

创作乐谱的第一步——转MP3文件至MIDI

现在假设你们已经拥有了音频文件(.mp3后缀),如果你的音乐不是mp3后缀,请去自行查询相关方法。这里放一个mp4后缀视频转mp3的网站网址,亲测可用:

cloudconvert.com

然后,请准备好以下的条件:

①有一个谷歌账号,已开通Google Drive服务

②会使用Google Colab(能新建文件就够)

在Google Colab中,创建一个新笔记本(名字自取),我这里命名为PianoTrans。

我使用的是一个AI转MIDI的库(transkun),这个库相比pianoTranscription(项目地址)更加稳定一些,识别准确度也更高(Colab地址 )

输入以下代码(这个是没使用Google Drive的代码,可直接从电脑上传文件,代码会根据浏览器下载路径下载MIDI文件。若上传多个文件,则输出为压缩包):

#@title 开始

!pip3 install transkun

import os

from google.colab import files

import zipfile

def removeExtension(file):

return ".".join(os.path.basename(file).split('.')[:-1])

def transcribe(file, outfolder='.'):

print(file)

mp3 = removeExtension(file)+".mp3"

os.system('ffmpeg -loglevel warning -i "%s" "%s"'%(file,mp3))

path = os.path.join(outfolder, removeExtension(file)+".mid")

os.system('transkun "%s" "%s" --device cuda'%(mp3,path))

return path

uploaded = files.upload()# 允许直接在本机上传文件

if len(uploaded) >= 2:

newZip = zipfile.ZipFile("transcribe.zip", 'w')

for fn in uploaded.keys():

newZip.write(transcribe(fn, "."), compress_type=zipfile.ZIP_DEFLATED)

newZip.close()

files.download("transcribe.zip")

else:

for fn in uploaded.keys():

files.download(transcribe(fn, "."))

运行代码后,在“代码单元格输出项操作”(就是代码下面三个点)中,上传文件:

选择你的mp3后缀文件后,处理完毕后,会自动下载。我试着听了一下,转化准确度确实挺高。

如果你要使用Google Drive中的文件,请执行以下代码:

#@title 开始

!pip3 install transkun

import os

import zipfile

from google.colab import drive

# Helper function to remove file extension

def removeExtension(file):

return ".".join(os.path.basename(file).split('.')[:-1])

# Function to transcribe audio files to MIDI

def transcribe(file, outfolder='.'):

print(f"Transcribing: {file}")

mp3 = removeExtension(file) + ".mp3"

# Convert the file to MP3 using ffmpeg

os.system(f'ffmpeg -loglevel warning -i "{file}" "{mp3}"')

# Define the output path for the MIDI file

path = os.path.join(outfolder, removeExtension(file) + ".mid")

# Transcribe the audio file using transkun, with GPU support ('cuda')

os.system(f'transkun "{mp3}" "{path}" --device cuda')

return path

# Mount Google Drive

drive.mount('/content/drive')

# Define the file path in Google Drive (replace with your actual file path)

file_path = '/content/drive/MyDrive/pianoMP3/fxj.mp3'# 你要转化的文件

# Create output folder (if needed)

output_folder = "."

# Transcribe the file from Google Drive

midi_path = transcribe(file_path, output_folder)

# Download the resulting MIDI file

from google.colab import files

files.download(midi_path)

这里修改的是文件的路径。读取Drive的文件需要挂载Google Drive(也就是drive.mount())。

创作钢琴乐谱——MIDI文件制作为五线谱

最常见的软件是Muse Score,这是下载地址:MuseHub

如果你是Windows系统,即点击对应的download。

下载的是MuseHub,在MuseHub中安装MuseScore。我这里已经安装了,所以按钮显示的是LAUNCH

启动MuseScore。点击文件→打开…,选择你上一步的MIDI文件(.mid后缀)。

MuseScore会显示乐谱。因为转化后的Mid文件的音不一定和原视频的音完全相同,所以拿到谱子之后,很多人会选择继续修改。这里暂时先不讲这一块,如果研究明白后续会更新。

导出乐谱:点击文件→导出…,导出为PDF。

这样,就有谱子了。

如何在MuseScore中继续修改谱子

该部分主要介绍MuseScore中改谱的内容应该如何使用。这里我使用Cutei的风夏来举例(链接,顺便推荐一下这个纯音乐,非常好听),由于原版纯音乐中有很多弦乐(没错,就是这首曲子找tb扒谱要520RMB /(ㄒoㄒ)/~~),导致转化后的MIDI有很多部分的音乐断断续续,慢了一些。由于本人也是钢琴业余选手,学习钢琴时未专门接触乐理知识,若存在相关内容描述不当,可以在评论区中指出,本人有时间看了之后会确定是否进行修改。

这是直接转化后的MIDI文件链接(百度网盘),你们可以对比上一个链接听一下,是不是很多音慢了一些,对吧。