🚀 MusicLang Predictモデル
MusicLang Predictは、生成AIモデルを用いてオリジナルのMIDIサウンドトラックを作成するためのモデルです。このモデルを使うことで、様々なシチュエーションに対応したサウンドトラックの生成が可能です。

🚀 クイックスタート
MusicLang Predictは、生成AIモデルを用いてオリジナルのMIDIサウンドトラックを作成するためのモデルです。以下のような様々なユースケースに対応しています。
- ゼロから新しい曲を予測する(固定バー数)
- プロンプトから曲を続きを予測する
- テンプレートから新しい曲を予測する(下記の例を参照)
- プロンプトとテンプレートから曲を続きを予測する
テンプレート生成のユースケースを解決するために、既存の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'])
また、プロンプトとテンプレートを組み合わせて曲を作成することもできます。
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 templatesを参照してください。
📄 ライセンス
MusicLang predictパッケージ(このパッケージ)とそれに関連するモデルは、GPL - 3.0ライセンスの下でライセンスされています。MusicLangベース言語(musiclangパッケージ)は、BSD 3 - Clauseライセンスの下でライセンスされています。
📞 お問い合わせ
オープンソース音楽生成の未来を形作る手助けをしたい場合は、こちらまでご連絡ください。