🚀 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 - 條款許可證。
📞 聯繫我們
如果您想為開源音樂生成的未來發展貢獻力量,請通過此郵箱聯繫我們。