SOME
SOME:面向歌唱的MIDI提取器。
警告
本项目目前处于测试版阶段。不保证向后兼容性。
概述
SOME是一个可以将歌声转换为MIDI序列的MIDI提取器,具有以下优势:
- 速度:在i5 12400 CPU上比实时快9倍,在3080Ti GPU上快300倍。
- 低资源依赖:SOME可以在自定义数据集上训练,仅需3小时的训练数据即可获得良好效果。
- 功能:SOME可以生成非整数MIDI值,特别适合DiffSinger的变化标注。
入门指南
安装
SOME需要Python 3.8或更高版本。我们强烈建议您在安装依赖项之前通过Conda或venv创建虚拟环境。
-
根据您的操作系统和硬件,按照官方说明安装PyTorch 2.1或更高版本。
-
通过以下命令安装其他依赖项:
pip install -r requirements.txt
-
(可选)为获得更好的音高提取结果,请从此处下载RMVPE预训练模型并解压到
pretrained/
目录。
使用预训练模型进行推理(MIDI文件)
从releases下载SOME的预训练模型并解压到某个位置。
要使用命令行界面进行推理,运行以下命令:
python infer.py --model CKPT_PATH --wav WAV_PATH
这将加载CKPT_PATH处的模型,从WAV_PATH处的音频文件提取MIDI并保存为MIDI文件。要了解更多有用选项,请运行:
python infer.py --help
要使用Web界面进行推理,运行以下命令:
python webui.py --work_dir WORK_DIR
然后您可以通过浏览器打开gradio界面,并按照网页上的说明使用WORK_DIR下的模型。要了解更多有用选项,请运行:
python webui.py --help
使用预训练模型进行推理(DiffSinger数据集)
从releases下载SOME的预训练模型并解压到某个位置。
要在现有的DiffSinger数据集上使用SOME,您应该有一个包含name
、ph_seq
、ph_dur
和ph_num
的transcriptions.csv文件。运行以下命令:
python batch_infer.py --model CKPT_PATH --dataset RAW_DATA_DIR --overwrite
这将使用模型从数据集中的录音获取所有MIDI序列(带浮点音高值),并将添加或替换的note_seq
和note_dur
覆盖其transcriptions.csv。请谨慎操作,必要时备份您的文件。
要了解更多有用选项,请运行:
python batch_infer.py --help
从头开始训练
训练脚本已上传,但可能尚未组织完善。为获得最佳兼容性,我们建议在未来稳定版发布后再训练您自己的模型。
免责声明
禁止任何组织或个人使用未经提供者同意获得的任何录音作为训练数据。如果您不遵守此项,可能会违反版权法或软件最终用户许可协议。
许可证
SOME采用MIT许可证授权。