什么是SOME?
SOME (Singing-Oriented MIDI Extractor) 是由OpenVPI团队开发的一款专门针对歌声设计的MIDI提取工具。它能够将人声录音转换为MIDI序列,为歌声合成、音乐制作等领域提供了便捷的MIDI生成解决方案。
作为一款开源工具,SOME在GitHub上发布并持续更新,目前已获得近400颗星标。它的出现为音乐创作者和AI歌声合成爱好者带来了新的可能性。
SOME的主要特点
SOME具有以下几个突出的优势:
-
速度快:在i5 12400 CPU上,SOME的处理速度是实时的9倍;在3080Ti GPU上更是达到了惊人的300倍实时速度。这意味着它可以在几秒钟内完成一首歌曲的MIDI提取。
-
资源需求低:SOME可以在少量训练数据(仅3小时)的情况下就能取得不错的效果,非常适合个人用户或小型团队使用。
-
功能强大:SOME能够生成非整数MIDI值,特别适合用于DiffSinger等AI歌声合成模型的变量标注。
-
开源免费:作为MIT协议下的开源项目,SOME可以被自由使用和修改,为研究和应用提供了极大的便利。
-
跨平台支持:SOME支持Windows、Linux和macOS等多个操作系统平台。
如何使用SOME?
安装配置
要使用SOME,你需要先安装Python 3.8或更高版本。强烈建议使用Conda或venv创建虚拟环境来安装依赖包。
-
按照官方指南安装PyTorch 2.1或更高版本。
-
使用以下命令安装其他依赖:
pip install -r requirements.txt
- (可选)为获得更好的音高提取结果,可以从这里下载RMVPE预训练模型,并将其解压到
pretrained/
目录。
使用预训练模型进行推理
SOME提供了命令行和Web UI两种使用方式:
命令行方式
-
从releases页面下载预训练模型并解压。
-
运行以下命令进行推理:
python infer.py --model CKPT_PATH --wav WAV_PATH
这将加载指定路径的模型,从音频文件提取MIDI,并保存MIDI文件。
Web UI方式
运行以下命令启动Web界面:
python webui.py --work_dir WORK_DIR
然后通过浏览器打开gradio界面,按照页面说明使用WORK_DIR下的模型。
用于DiffSinger数据集
SOME还可以用于处理现有的DiffSinger数据集:
-
准备包含
name
、ph_seq
、ph_dur
和ph_num
字段的transcriptions.csv文件。 -
运行以下命令:
python batch_infer.py --model CKPT_PATH --dataset RAW_DATA_DIR --overwrite
这将使用模型从数据集中的录音提取所有MIDI序列(带浮点音高值),并在transcriptions.csv中添加或替换note_seq
和note_dur
字段。
SOME的应用场景
SOME在音乐制作和AI歌声合成领域有广泛的应用前景:
-
歌声合成训练数据准备:为DiffSinger等AI歌声合成模型提供精确的MIDI标注。
-
音乐转写:将人声录音快速转换为MIDI,便于编曲和创作。
-
歌声分析:通过提取的MIDI序列分析歌手的演唱特点和风格。
-
音乐教育:帮助学习者可视化和分析自己的演唱。
-
音乐版权保护:通过MIDI序列比对检测歌曲相似度。
SOME的发展前景
作为一个开源项目,SOME具有巨大的发展潜力:
-
模型优化:通过更多数据训练和算法改进,进一步提高MIDI提取的准确性。
-
功能扩展:增加对和声、节奏等更多音乐元素的识别。
-
插件开发:开发VST插件等,方便在主流DAW中直接使用。
-
多语言支持:优化对不同语言歌曲的处理能力。
-
社区生态:鼓励更多开发者参与,形成活跃的开源社区。
结语
SOME作为一款高效、灵活的歌声MIDI提取工具,为音乐创作和AI歌声合成领域带来了新的可能性。它不仅大大提高了MIDI提取的效率,还为个人用户和小型团队提供了可负担的解决方案。随着持续的开发和社区贡献,SOME有望在音乐科技领域发挥越来越重要的作用。
无论你是音乐制作人、AI研究者,还是单纯对音乐技术感兴趣的爱好者,SOME都值得一试。它不仅是一个强大的工具,更是探索音乐与技术结合的绝佳起点。让我们共同期待SOME在未来带来更多惊喜!
🎵🎹🤖