Text To Music
模型概述
該模型能夠根據文本描述直接生成完整且語義連貫的樂譜,支持多種音樂風格如藍調、古典、民謠等
模型特點
真實文本-音樂對訓練
首個基於真實文本-音樂對訓練的文本條件符號音樂生成模型
多風格支持
支持生成藍調、古典、民謠、爵士、流行和世界音樂等多種風格的樂譜
端到端生成
音樂生成完全由模型完成,無需任何人工規則
模型能力
文本到音樂生成
ABC記譜法輸出
多風格音樂創作
使用案例
音樂創作
傳統愛爾蘭舞曲生成
根據文本描述生成傳統愛爾蘭舞曲音樂
生成符合描述的6/8拍D大調舞曲樂譜
個性化音樂創作
根據用戶提供的文本描述生成個性化音樂作品
生成與描述語義匹配的原創音樂
🚀 探索預訓練檢查點在文本到音樂生成任務中的有效性
本項目是一個語言 - 音樂模型,能夠直接根據自然語言描述生成完整且語義連貫的樂譜。通過在大量文本 - 音樂對上進行微調,該模型為文本條件下的符號音樂生成提供了新的解決方案。
🚀 快速開始
你可以在 Textune: Generating Tune from Text 上在線使用和體驗這個語言 - 音樂模型。在這個在線平臺上,你可以輕鬆輸入所需的文本描述,並從模型獲得生成的樂譜輸出。
✨ 主要特性
- 基於真實數據訓練:該模型在 282,870 對英文文本 - 音樂對上對 BART - base 進行微調,所有樂譜均以 ABC 記譜法表示。據我們所知,這是第一個在真實文本 - 音樂對上訓練實現文本條件下符號音樂生成的模型,且音樂完全由模型生成,無需任何手工規則。
- 多風格音樂生成:能夠生成多種風格的音樂,如藍調、古典、民謠、爵士、流行和世界音樂等。所有生成的樂譜都可以用標準古典記譜法寫在一個譜表上(用於聲樂獨唱或器樂獨奏)。
📦 安裝指南
由於版權原因,我們無法公開發布該模型的訓練數據集。不過,我們提供了 WikiMusicText (WikiMT) 數據集,其中包含 1010 對文本 - 音樂數據,可用於評估語言 - 音樂模型的性能。
💻 使用示例
基礎用法
以下是如何在 PyTorch 中使用該模型的示例代碼:
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 ||
######################## INPUT TEXT ########################
This is a jazz-swing lead sheet with chord and vocal.
####################### OUTPUT TUNES #######################
X:1
L:1/8
M:4/4
K:F
"F" CFG |"F" A6 z G |"Fm7" A3 G"Bb7" A3 G |"F" A6 z G |"F7" A4"Eb7" G4 |"F" F6 z F |
"Dm" A3 G"Dm/C" A3 G |"Bb" A2"Gm" B2"C7" G3 G |"F" F8- |"Dm7""G7" F6 z2 |"C" C4 C3 C |
"C7" C2 B,2"F" C4 |"F" C4 C3 C |"Dm" D2 C2"Dm/C" D4 |"Bb" D4 D3 D |"Bb" D2 C2"C7" D4 |"F" C8- |
"F" C4"Gm" z C"C7" FG |"F" A6 z G |"Fm7" A3 G"Bb7" A3 G |"F" A6 z G |"F7" A4"Eb7" G4 |"F" F6 z F |
"Dm" A3 G"Dm/C" A3 G |"Bb" A2"Gm" B2"C7" G3 G |"F" F8- |"F" F6 z2 |]
X:2
L:1/4
M:4/4
K:F
"^A""F" A3 A |"Am7" A2"D7" A2 |"Gm7" G2"C7" G A |"F" F4 |"F" A3 A |"Am7" A2"D7" A2 |"Gm7" G2"C7" G A |
"F" F4 |"Gm" B3 B |"Am7" B2"D7" B2 |"Gm" B2"D7" B A |"Gm7" G4 |"F" A3 A |"Am7" A2"D7" A2 |
"Gm7" G2"C7" G A |"F" F4 |"Bb7" F3 G |"F" A2 A2 |"Gm" B2"C7" B2 |"F" c2"D7" c c |"Gm7" c2"C7" B2 |
"F" A2"F7" A2 |"Bb" B2"F" B A |"Bb" B2"F" B A |"Gm" B2"F" B A |"Gm7" B2"F" B A |"Gm7" B2"F" B A |
"C7" B2 c2 |"F""Bb7" A4 |"F""Bb7" z4 |]
X:3
L:1/4
M:4/4
K:Bb
B, ||"Gm""^A1" G,2 B, D |"D7" ^F A2 G/=F/ |"Gm" G2"Cm7" B c |"F7" A2 G =F |"Bb" D2 F A |
"Cm7" c e2 d/c/ |"Gm7" B3/2 G/-"C7" G2- |"F7" G2 z B, |"Gm""^B" G,2 B, D |"D7" ^F A2 G/=F/ |
"Gm" G2"Cm7" B c |"F7" A2 G =F |"Bb" D2 F A |"Cm7" c e2 d/c/ |"Gm7" B3/2 G/-"C7" G2- |"F7" G2 z2 ||
"^C""F7""^A2" F4- | F E D C |"Bb" D2 F B | d3 c/B/ |"F" A2"Cm7" G2 |"D7" ^F2 G2 |"Gm" B3"C7" A |
"F7" G4 ||"F7""^A3" F4- | F E D C |"Bb" D2 F B | d3 c/B/ |"F" A2"Cm7" G2 |"D7" ^F2 G2 |"Gm" B3 A |
"C7" G4 ||"^B""Gm""^C" B2 c B |"Cm" c B c B |"Gm7" c2 B A |"C7" B3 A |"Bb" B2 c B |"G7" d c B A |
"Cm" G2 A G |"F7" F2 z G ||"^C""F7" F F3 |"Bb" D D3 |"Cm" E E3 |"D7" ^F F3 |"Gm" G2 A B |"C7" d3 d |
"Gm" d3 d |"D7" d3 B, ||"^D""Gm" G,2 B, D |"D7" ^F A2 G/=F/ |"Gm" G2"Cm7" B c |"F7" A2 G =F |
"Bb" D2 F A |"Cm7" c e2 d/c/ |"Gm7" B3/2 G/-"C7" G2- |"F7" G2 z2 |]
######################## INPUT TEXT ########################
This is a Chinese folk song from the Jiangnan region. It was created during the Qianlong era (1735-1796) of the Qing dynasty. Over time, many regional variations were created, and the song gained popularity both in China and abroad. One version of the song describes a custom of giving jasmine flowers, popular in the southern Yangtze delta region of China.
####################### OUTPUT TUNES #######################
X:1
L:1/8
Q:1/4=100
M:2/4
K:C
"^Slow" DA A2 | GA c2- | c2 G2 | c2 GF | GA/G/ F2 | E2 DC | DA A2 | GA c2- | c2 GA | cd- d2 |
cA c2- | c2 GA | cd- d2 | cA c2- | c2 GA | c2 A2 | c2 d2 | cA c2- | c2 c2 | A2 G2 | F2 AG | F2 ED |
CA,/C/ D2- | D2 CD | F2 A2 | G2 ED | CG A2 | G2 FD | CA,/C/ D2- | D2 CD | F2 A2 | G2 ED |
CG A2 | G2 FD | CA,/C/ D2- | D2 z2 :|
X:2
L:1/8
Q:1/4=100
M:2/4
K:C
"^ MDolce" Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 | EG ed | c2 AG | cA cd |
A2 AG | E2 ED | CD E2- | E2 z2 |"^ howeveroda" Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- |
E2 z2 | A2 cA | GA E2- | E2 z2 | GA cd | e2 ed | cd e2- | e2 z2 | ge d2 | cd c2- | c2 z2 |
Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 | EG ed | c2 AG | cA cd | A2 AG | E2 ED |
CD E2- | E2 z2 |"^DDtisata" Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 | A2 cA |
GA E2- | E2 z2 | GA cd | e2 ed | cd e2- | e2 z2 | ge d2 | cd c2- | c2 z2 | Ac de | d2 AG |
cA cd | A2 AG | E2 ED | CD E2- | E2 z2 | Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 |
Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 |"^ Easy" Ac de | d2 AG | cA cd |
A2 AG | E2 ED | CD E2- | E2 z2 | Ac de | d2 AG | cA cd | A2 AG | E2 ED | CD E2- | E2 z2 |]
X:3
L:1/8
Q:1/4=60
M:4/4
K:C
"^S books defe.." AA A2 cdcc | AcAG A4- | A8 | A,4 CD C2 | A,4 cdcA | A2 GA- A4- | A2 GA A2 AA |
AG E2 D2 C2 | D6 ED | C2 D4 C2 | D2 C2 D4 | C2 A,2 CD C2 | A,4 cdcA | A2 GA- A4- | A2 GA A2 AA |
AG E2 D2 C2 | D6 z2 |]
📚 詳細文檔
預期用途與限制
- 用途:你可以使用該模型進行文本條件下的音樂生成。所有生成的樂譜都可以用標準古典記譜法寫在一個譜表上(用於聲樂獨唱或器樂獨奏),並且風格多樣。我們建議使用 this repository 中的腳本進行推理。生成的曲調採用 ABC 記譜法,可以使用 this website 或 this software 將其轉換為樂譜或音頻。
- 限制:該模型的創造力有限,在需要高度創造力的任務(如旋律風格轉換)上表現不佳,並且對輸入敏感。更多信息請查看 our paper。
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 許可證。
Phi 4 Multimodal Instruct
MIT
Phi-4-multimodal-instruct是一款輕量級開源多模態基礎模型,融合了Phi-3.5和4.0模型的語言、視覺及語音研究數據。支持文本、圖像和音頻輸入,生成文本輸出,並具備128K token的上下文長度。
文本生成音頻
Transformers 支持多種語言

P
microsoft
584.02k
1,329
Ultravox V0 5 Llama 3 2 1b
MIT
Ultravox是一個基於Llama3.2-1B和Whisper-large-v3構建的多模態語音大語言模型,能夠同時處理語音和文本輸入。
文本生成音頻
Transformers 支持多種語言

U
fixie-ai
167.25k
21
Seamless M4t V2 Large
SeamlessM4T v2 是 Facebook 發佈的大規模多語言多模態機器翻譯模型,支持近100種語言的語音和文本翻譯。
文本生成音頻
Transformers 支持多種語言

S
facebook
64.59k
821
Ultravox V0 3
MIT
Ultravox 是一個基於 Llama3.1-8B-Instruct 和 Whisper-small 構建的多模態語音大語言模型,能夠同時處理語音和文本輸入。
文本生成音頻
Transformers 英語

U
fixie-ai
48.30k
17
Ultravox V0 5 Llama 3 1 8b
MIT
Ultravox是一款基於Llama3.1-8B-Instruct和whisper-large-v3-turbo構建的多模態語音大語言模型,能夠同時處理語音和文本輸入。
文本生成音頻
Transformers 支持多種語言

U
fixie-ai
17.86k
12
Hf Seamless M4t Medium
SeamlessM4T 是一個多語言翻譯模型,支持語音和文本的輸入輸出,實現跨語言交流。
文本生成音頻
Transformers

H
facebook
14.74k
30
Granite Speech 3.3 8b
Apache-2.0
專為自動語音識別(ASR)和自動語音翻譯(AST)設計的緊湊高效語音語言模型,採用雙階段設計處理音頻和文本
文本生成音頻
Transformers 英語

G
ibm-granite
5,532
35
Voila Tokenizer
MIT
Voila是一個大型語音-語言基礎模型系列,旨在提升人機交互體驗,支持多種音頻任務和語言。
文本生成音頻
Transformers 支持多種語言

V
maitrix-org
4,912
3
Hf Seamless M4t Large
SeamlessM4T 是一個支持多語言語音和文本翻譯的統一模型,能夠實現語音到語音、語音到文本、文本到語音和文本到文本的翻譯任務。
文本生成音頻
Transformers

H
facebook
4,648
57
Minicpm O 2 6 Int4
MiniCPM-o 2.6的int4量化版本,顯著降低GPU顯存佔用,支持多模態處理能力。
文本生成音頻
Transformers 其他

M
openbmb
4,249
42
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98