🚀 MusicLang预测模型
MusicLang Predict是一个利用生成式AI模型创作原创MIDI配乐的模型。它能够满足多种应用场景,如从头开始创作新歌曲、根据提示续写歌曲等。
🚀 快速开始
MusicLang Predict可用于不同的场景,例如:
- 从头开始预测一首新歌曲(固定小节数)
- 根据提示续写一首歌曲
- 根据模板预测一首新歌曲(见下面的示例)
- 根据提示和模板续写一首歌曲
为了解决模板生成的用例,我们提供了一个接口,可以从现有的MIDI文件创建模板。
要进行预测,我们有一个推理包,可在此处获取:MusicLang Predict,它基于MusicLang语言:MusicLang。
✨ 主要特性
- 支持从头开始创作新歌曲。
- 可根据提示续写歌曲。
- 能依据模板生成新歌曲。
- 提供从现有MIDI文件创建模板的接口。
📦 安装指南
使用pip安装musiclang-predict包:
pip install musiclang-predict
💻 使用示例
基础用法
创建一首全新的2小节歌曲:
from musiclang_predict import predict, MusicLangTokenizer
from transformers import GPT2LMHeadModel
model = GPT2LMHeadModel.from_pretrained('musiclang/musiclang-4k')
tokenizer = MusicLangTokenizer('musiclang/musiclang-4k')
soundtrack = predict(model, tokenizer, chord_duration=4, nb_chords=2)
soundtrack.to_midi('song.mid', tempo=120, time_signature=(4, 4))
高级用法
使用现有MIDI歌曲作为歌曲结构模板
from musiclang_predict import midi_file_to_template, predict_with_template, MusicLangTokenizer
from transformers import GPT2LMHeadModel
model = GPT2LMHeadModel.from_pretrained('musiclang/musiclang-4k')
tokenizer = MusicLangTokenizer('musiclang/musiclang-4k')
template = midi_file_to_template('my_song.mid')
soundtrack = predict_with_template(template, model, tokenizer)
soundtrack.to_midi('song.mid', tempo=template['tempo'], time_signature=template['time_signature'])
有关模板格式的完整描述,请参阅:MusicLang templates,它只是一个包含歌曲每个和弦信息和一些元数据(如节奏)的字典,你甚至可以不使用基础MIDI文件来创建自己的模板!
使用提示和模板创作歌曲
from musiclang_predict import midi_file_to_template, predict_with_template, MusicLangTokenizer
from transformers import GPT2LMHeadModel
from musiclang import Score
model = GPT2LMHeadModel.from_pretrained('musiclang/musiclang-4k')
tokenizer = MusicLangTokenizer('musiclang/musiclang-4k')
template = midi_file_to_template('my_song.mid')
prompt = Score.from_midi('my_prompt.mid', chord_range=(0, 4))
soundtrack = predict_with_template(template, model, tokenizer,
prompt=prompt,
prompt_included_in_template=True
)
soundtrack.to_midi('song.mid', tempo=template['tempo'], time_signature=template['time_signature'])
📄 许可证
MusicLang预测包(本包)及其关联模型遵循GPL - 3.0许可证。MusicLang基础语言(musiclang包)遵循BSD 3 - 条款许可证。
📞 联系我们
如果您想为开源音乐生成的未来发展贡献力量,请通过此邮箱联系我们。