🚀 テキストから音楽生成タスクにおける事前学習チェックポイントの有効性を探る
この言語 - 音楽モデルは、自然言語の記述から直接、完全で意味的に一貫した楽譜を生成することができます。実際のテキスト - 音楽のペアで訓練され、手作業で作成されたルールを一切使用せずに音楽を生成する初のモデルです。
🚀 クイックスタート
このモデルは、Textune: Generating Tune from Text でオンラインで利用し、体験することができます。このオンラインプラットフォームを使って、好みのテキスト記述を入力すると、モデルから生成された楽譜を得ることができます。
✨ 主な機能
- 自然言語の記述から直接、完全で意味的に一貫した楽譜を生成することができます。
- 生成された楽譜は、標準的な古典表記法で1つの五線譜に記載でき(独唱または独奏用)、ブルース、クラシック、フォーク、ジャズ、ポップ、ワールドミュージックなど、様々なスタイルがあります。
📦 インストール
推論には、このリポジトリ のスクリプトを使用することをおすすめします。
💻 使用例
基本的な使用法
import torch
from samplings import top_p_sampling, temperature_sampling
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained('sander-wood/text-to-music')
model = AutoModelForSeq2SeqLM.from_pretrained('sander-wood/text-to-music')
model = model
max_length = 1024
top_p = 0.9
temperature = 1.0
text = "This is a traditional Irish dance music."
input_ids = tokenizer(text,
return_tensors='pt',
truncation=True,
max_length=max_length)['input_ids']
decoder_start_token_id = model.config.decoder_start_token_id
eos_token_id = model.config.eos_token_id
decoder_input_ids = torch.tensor([[decoder_start_token_id]])
for t_idx in range(max_length):
outputs = model(input_ids=input_ids,
decoder_input_ids=decoder_input_ids)
probs = outputs.logits[0][-1]
probs = torch.nn.Softmax(dim=-1)(probs).detach().numpy()
sampled_id = temperature_sampling(probs=top_p_sampling(probs,
top_p=top_p,
return_probs=True),
temperature=temperature)
decoder_input_ids = torch.cat((decoder_input_ids, torch.tensor([[sampled_id]])), 1)
if sampled_id!=eos_token_id:
continue
else:
tune = "X:1\n"
tune += tokenizer.decode(decoder_input_ids[0], skip_special_tokens=True)
print(tune)
break
高度な使用法
######################## INPUT TEXT ########################
This is a traditional Irish dance music.
Note Length-1/8
Meter-6/8
Key-D
####################### OUTPUT TUNES #######################
X:1
L:1/8
M:6/8
K:D
A | BEE BEE | Bdf edB | BAF FEF | DFA BAF | BEE BEE | Bdf edB | BAF DAF | FED E2 :: A |
Bef gfe | faf edB | BAF FEF | DFA BAF | Bef gfe | faf edB | BAF DAF | FED E2 :|
X:2
L:1/8
M:6/8
K:D
A |: DED F2 A | d2 f ecA | G2 B F2 A | E2 F GFE | DED F2 A | d2 f ecA | Bgf edc |1 d3 d2 A :|2
d3 d2 a || a2 f d2 e | f2 g agf | g2 e c2 d | e2 f gfe | fed gfe | agf bag | fed cde | d3 d2 a |
agf fed | Adf agf | gfe ecA | Ace gfe | fed gfe | agf bag | fed cde | d3 d2 ||
X:3
L:1/8
M:6/8
K:D
BEE BEE | Bdf edB | BAF FEF | DFA dBA | BEE BEE | Bdf edB | BAF FEF |1 DED DFA :|2 DED D2 e |:
faf edB | BAF DFA | BAF FEF | DFA dBA | faf edB | BAF DFA | BdB AFA |1 DED D2 e :|2 DED DFA ||
(他の生成例も同様に記載)
📚 ドキュメント
モデルの説明
この言語 - 音楽モデルは、BART-base を282,870の英語のテキスト - 音楽ペアで微調整したもので、すべての楽譜はABC表記法で表されています。このモデルは、Wuらによる論文 Exploring the Efficacy of Pre-trained Checkpoints in Text-to-Music Generation Task で紹介され、このリポジトリ で公開されています。
著作権の理由により、このモデルの訓練データセットを公開することはできません。代わりに、WikiMusicText (WikiMT) データセットを公開しています。これには1010ペアのテキスト - 音楽データが含まれており、言語 - 音楽モデルの性能を評価するために使用できます。
想定される使用法と制限
このモデルは、テキスト条件付きの音楽生成に使用できます。このモデルによって生成されたすべての楽譜は、標準的な古典表記法で1つの五線譜(独唱または独奏用)に記載でき、ブルース、クラシック、フォーク、ジャズ、ポップ、ワールドミュージックなど、様々なスタイルがあります。生成された曲はABC表記法で、このウェブサイト または このソフトウェア を使用して楽譜または音声に変換できます。
このモデルの創造性には限界があり、高度な創造性を必要とするタスク(例えば、メロディのスタイル転送)ではうまく機能しません。また、入力に敏感です。詳細については、我々の論文 を参照してください。
BibTeXエントリと引用情報
@inproceedings{
wu2023exploring,
title={Exploring the Efficacy of Pre-trained Checkpoints in Text-to-Music Generation Task},
author={Shangda Wu and Maosong Sun},
booktitle={The AAAI-23 Workshop on Creative AI Across Modalities},
year={2023},
url={https://openreview.net/forum?id=QmWXskBhesn}
}
📄 ライセンス
このモデルはMITライセンスの下で公開されています。