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