Project Icon

basic-pitch

高效轻量的自动音乐转录工具

Basic Pitch是一个开源的自动音乐转录(AMT)Python库,由Spotify音频智能实验室开发。这款轻量级音乐识别工具支持多音高和跨乐器转录,性能可与大型AMT系统媲美。它能将音频转换为包含音高弯曲的MIDI文件,适用于各种乐器,尤其擅长单一乐器转录。Basic Pitch提供命令行和程序化接口,支持MIDI、WAV和CSV等多种输出格式,便于集成到各种音乐处理工作流程中。

基本音高标志

许可证 PyPI - Python 版本 支持的平台

Basic Pitch 是一个用于自动音乐转录(AMT)的 Python 库,它使用由 Spotify 音频智能实验室 开发的轻量级神经网络。它体积小、易于使用,可通过 pip install 安装,也可以通过其姊妹库使用 npm install 安装。

Basic Pitch 虽然简单,但远非"基础"!basic-pitch 高效易用,其多音高支持、跨乐器通用性和音符准确性可与更大型、更耗资源的 AMT 系统相媲美。

只需提供兼容的音频文件,basic-pitch 就能生成包含音高弯曲的 MIDI 文件。Basic pitch 不受乐器限制,支持复音乐器,因此您可以自由享受所有喜爱音乐的转录,无论使用何种乐器。Basic pitch 最适合一次处理一种乐器。

研究论文

该库与 Spotify 在 ICASSP 2022 上的发表同时发布。您可以在论文 A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation 中了解更多关于这项研究的信息。

如果您在学术研究中使用此库,请考虑引用它:

@inproceedings{2022_BittnerBRME_LightweightNoteTranscription_ICASSP,
  author= {Bittner, Rachel M. and Bosch, Juan Jos\'e and Rubinstein, David and Meseguer-Brocal, Gabriel and Ewert, Sebastian},
  title= {A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation},
  booktitle= {Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP)},
  address= {Singapore},
  year= 2022,
}

请注意,我们已经在该论文的基础上改进了 Basic Pitch。因此,如果您在学术研究中使用 Basic Pitch 的输出,我们建议您引用所使用的代码版本。

演示

如果由于某种原因您还没有完全被启发,或者您只是对整体氛围之类的事情感到厌倦,那么请查看我们简洁的演示网站 basicpitch.io,在那里您可以使用我们的模型对您提供的任何音乐音频进行实验!

安装

basic-pitch 可通过 PyPI 获得。要安装当前版本:

pip install basic-pitch

要将 Basic Pitch 更新到最新版本,请在上述命令中添加 --upgrade

兼容环境:

  • MacOS、Windows 和 Ubuntu 操作系统
  • Python 版本 3.7、3.8、3.9、3.10、3.11
  • 对于 Mac M1 硬件,我们目前仅支持 Python 3.10 版本。否则,我们建议使用虚拟机。

模型运行时

Basic Pitch 提供原始 TensorFlow 模型以及转换为 CoreMLTensorFlowLiteONNX 的 TensorFlow 模型。默认情况下,Basic Pitch 不会将 TensorFlow 作为依赖项安装,除非您使用 Python>=3.11。相反,默认情况下,CoreML 将安装在 MacOS 上,TensorFlowLite 将安装在 Linux 上,ONNX 将安装在 Windows 上。如果您想与默认模型推理运行时一起安装 TensorFlow,可以通过 pip install basic-pitch[tf] 安装 TensorFlow。

使用

模型预测

模型运行时

默认情况下,Basic Pitch 将按以下顺序尝试加载模型:

  1. TensorFlow
  2. CoreML
  3. TensorFlowLite
  4. ONNX

此外,模块变量 ICASSP_2022_MODEL_PATH 将默认为列表中第一个可用的版本。

我们将在下面解释如何覆盖此优先级列表。由于所有其他模型序列化都是从 TensorFlow 转换而来,我们建议尽可能使用 TensorFlow。注意:Basic Pitch 默认不安装 TensorFlow,以节省用户安装和运行 Basic Pitch 的时间。

命令行工具

该库提供命令行工具界面。基本预测命令将生成 <input-audio-path> 处音频的 MIDI 文件转录,并将其保存到 <output-directory>

basic-pitch <output-directory> <input-audio-path>

例如:

basic-pitch /output/directory/path /input/audio/path

要一次处理多个音频文件:

basic-pitch <output-directory> <input-audio-path-1> <input-audio-path-2> <input-audio-path-3>

您可以选择在预测命令中附加以下任何标志,以将预测输出的其他格式保存到 <output-directory>

  • --sonify-midi 额外保存 MIDI 文件的 .wav 音频渲染。
  • --save-model-outputs 额外将原始模型输出保存为 NPZ 文件。
  • --save-note-events 额外将预测的音符事件保存为 CSV 文件。

如果您想使用非默认模型类型(例如,使用 CoreML 而不是 TF),请使用 --model-serialization 参数。CLI 将更改加载的模型为您首选的类型。

要了解更多参数控制,请运行:

basic-pitch --help

编程使用

predict()

basic-pitch 导入到您自己的 Python 代码中,并直接运行 predict 函数,提供 <input-audio-path> 并返回模型的预测结果:

from basic_pitch.inference import predict
from basic_pitch import ICASSP_2022_MODEL_PATH

model_output, midi_data, note_events = predict(<input-audio-path>)
  • <minimum-frequency><maximum-frequency>float 类型)设置模型返回的允许音符频率的最小和最大值,单位为 Hz。频率超出此范围的音高事件将从预测结果中排除。
  • model_output 是原始模型推理输出
  • midi_data 是从 model_output 转录的 MIDI 数据
  • note_events 是从 model_output 派生的音符事件列表

注意:如前所述,ICASSP_2022_MODEL_PATH 将默认为列表中首先支持的运行时:TensorFlow、CoreML、TensorFlowLite、ONNX。

在循环中使用 predict() 要在循环中进行预测,您需要自己加载模型,并将加载好的模型对象提供给predict()函数用于重复的预测调用,以避免冗余和缓慢的模型加载。

import tensorflow as tf

from basic_pitch.inference import predict, Model
from basic_pitch import ICASSP_2022_MODEL_PATH

basic_pitch_model = Model(ICASSP_2022_MODEL_PATH))

for x in range():
    ...
    model_output, midi_data, note_events = predict(
        <循环中的输入音频路径>,
        basic_pitch_model,
    )
    ...

predict_and_save()

如果您希望basic-pitch协调生成和保存我们支持的各种输出文件类型,您可以使用predict_and_save而不是直接使用predict

from basic_pitch.inference import predict_and_save

predict_and_save(
    <输入音频路径列表>,
    <输出目录>,
    <保存midi>,
    <合成midi>,
    <保存模型输出>,
    <保存音符>,
)

其中:

  • <输入音频路径列表><输出目录>
    • basic-pitch读取和写入的目录路径。
  • <保存midi>
    • 布尔值,控制是否生成并保存MIDI文件到<输出目录>
  • <合成midi>
    • 布尔值,控制是否将MIDI文件渲染为WAV音频并保存到<输出目录>
  • <保存模型输出>
    • 布尔值,控制是否将原始模型输出作为NPZ文件保存到<输出目录>
  • <保存音符>
    • 布尔值,控制是否将预测的音符事件作为CSV文件保存到<输出目录>

模型输入

支持的音频编解码器

basic-pitch接受所有与其版本的librosa兼容的声音文件,包括:

  • .mp3
  • .ogg
  • .wav
  • .flac
  • .m4a

仅支持单声道音频

虽然您可以使用立体声音频作为模型的输入,但在预测时,输入的声道将被下混为单声道,然后进行分析和转录。

文件大小/音频长度

该模型可以处理任何大小或长度的音频,但处理较大/较长的音频文件可能受到机器可用磁盘空间的限制。要处理这些文件,我们建议流式处理音频文件,每次处理一个音频窗口。

采样率

输入音频可以是任何采样率,但在处理之前,所有音频都将被重新采样为22050 Hz。

VST

感谢DamRsn开发了这个可用的basic-pitch VST版本! - https://github.com/DamRsn/NeuralNote

贡献

欢迎对basic-pitch做出贡献!详情请参见CONTRIBUTING.md

版权和许可

basic-pitch版权所有 2022 Spotify AB。

本软件根据Apache License, Version 2.0("Apache许可证")授权。您可以选择任一许可证来管理您对本软件的使用,但前提是您接受Apache许可证的所有条款。

您可以在以下地址获取Apache许可证的副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据Apache许可证或GPL许可证分发的软件是基于"按原样"的基础提供的,不附带任何明示或暗示的担保或条件。请参阅Apache许可证以了解Apache许可证下的特定语言管理权限和限制。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号