昇思25天学习打卡营第8天|linchenfengxue

Musicgen-文字描述生成音乐Meta开源项目-linux部署流程 Musicgen是Meta推出的一个根据文字描述来生成一段音乐的项目。目前,github上7.9k星。它还可以结合一段音频(甚至是哼的歌)+文字来进行生成。单次生成最高30s。再长需要通过滑动窗口实现,取上一段生成结果的最后10s来生成接下来的20s,不断重复。用户可以通过调整描述词汇、输入的音频等来生成不同类型的音乐,比如轻松愉悦的流行音乐、激情四溢的摇滚乐、高雅典雅的古典音乐等。Melody -- 一种音乐生成模型,能够根据文字以及旋律输入生成音乐。注意:您也可以仅使用文本。 阅读详情

基于MindNLP+MusicGen生成自己的个性化音乐

MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《Simple and Controllable Music Generation》。

MusicGen模型基于Transformer结构,可以分解为三个不同的阶段:

  1. 用户输入的文本描述作为输入传递给一个固定的文本编码器模型,以获得一系列隐形状态表示。
  2. 训练MusicGen解码器来预测离散的隐形状态音频token。
  3. 对这些音频token使用音频压缩模型(如EnCodec)进行解码,以恢复音频波形。

MusicGen直接使用谷歌的t5-base及其权重作为文本编码器模型,并使用EnCodec 32kHz及其权重作为音频压缩模型。MusicGen解码器是一个语言模型架构,针对音乐生成任务从零开始进行训练。

MusicGen 模型的新颖之处在于音频代码的预测方式。传统上,每个码本都必须由一个单独的模型(即分层)或通过不断优化 Transformer 模型的输出(即上采样)进行预测。与传统方法不同,MusicGen采用单个stage的Transformer LM结合高效的token交织模式,取消了多层级的多个模型结构,例如分层或上采样,这使得MusicGen能够生成单声道和立体声的高质量音乐样本,同时提供更好的生成输出控制。MusicGen不仅能够生成符合文本描述的音乐,还能够通过旋律条件控制生成的音调结构。

下载模型

MusicGen提供了small、medium和big三种规格的预训练权重文件,默认使用small规格的权重,生成的音频质量较低,但是生成的速度是最快的

from mindnlp.transformers import MusicgenForConditionalGeneration

model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")

生成音乐

MusicGen支持两种生成模式:贪心(greedy)和采样(sampling)。在实际执行过程中,采样模式得到的结果要显著优于贪心模式。因此我们默认启用采样模式,并且可以在调用MusicgenForConditionalGeneration.generate时设置do_sample=True来显式指定使用采样模式。

无提示生成

我们可以通过方法 MusicgenForConditionalGeneration.get_unconditional_inputs 获得网络的随机输入,然后使用 .generate 方法进行自回归生成,指定 do_sample=True 来启用采样模式:

%%time
unconditional_inputs = model.get_unconditional_inputs(num_samples=1)

audio_values = model.generate(**unconditional_inputs, do_sample=True, max_new_tokens=256)

音频输出是格式是: a Torch tensor of shape (batch_size, num_channels, sequence_length)。

使用第三方库scipy将输出的音频保存为musicgen_out.wav 文件。

import scipy

sampling_rate = model.config.audio_encoder.sampling_rate
scipy.io.wavfile.write("musicgen_out.wav", rate=sampling_rate, data=audio_values[0, 0].asnumpy())
from IPython.display import Audio
# 要收听生成的音频样本,可以使用 Audio 在 notebook 进行播放
Audio(audio_values[0].asnumpy(), rate=sampling_rate)

参数 max_new_tokens 指定要生成 token 数。根据经验,可以使用 EnCodec 模型的帧速率计算出生成的音频样本的长度(以秒为单位):

audio_length_in_s = 256 / model.config.audio_encoder.frame_rate

audio_length_in_s

文本提示生成

首先基于文本提示,通过AutoProcessor对输入进行预处理。然后将预处理后的输入传递给 .generate 方法以生成文本条件音频样本。同样,我们通过设置“do_sample=True”来启用采样模式。

其中,guidance_scale 用于无分类器指导(CFG),设置条件对数之间的权重(从文本提示中预测)和无条件对数(从无条件或空文本中预测)。guidance_scale越高表示生成的模型与输入的文本更加紧密。通过设置guidance_scale > 1来启用 CFG。为获得最佳效果,使用guidance_scale=3(默认值)生成文本提示音频。

%%time
from mindnlp.transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("facebook/musicgen-small")

inputs = processor(
    text=["80s pop track with bassy drums and synth", "90s rock song with loud guitars and heavy drums"],
    padding=True,
    return_tensors="ms",
)

audio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=256)
scipy.io.wavfile.write("musicgen_out_text.wav", rate=sampling_rate, data=audio_values[0, 0].asnumpy())
from IPython.display import Audio
# 要收听生成的音频样本,可以使用 Audio 在 notebook 进行播放
Audio(audio_values[0].asnumpy(), rate=sampling_rate)

音频提示生成

AutoProcessor同样可以对用于音频预测的音频提示进行预处理。在以下示例中,我们首先加载音频文件,然后进行预处理,并将输入给到网络模型来进行音频生成。最后,我们将生成出来的音频文件保存为musicgen_out_audio.wav

%%time
from datasets import load_dataset

processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
dataset = load_dataset("sanchit-gandhi/gtzan", split="train", streaming=True)
sample = next(iter(dataset))["audio"]

# take the first half of the audio sample
sample["array"] = sample["array"][: len(sample["array"]) // 2]

inputs = processor(
    audio=sample["array"],
    sampling_rate=sample["sampling_rate"],
    text=["80s blues track with groovy saxophone"],
    padding=True,
    return_tensors="ms",
)

audio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=256)
scipy.io.wavfile.write("musicgen_out_audio.wav", rate=sampling_rate, data=audio_values[0, 0].asnumpy())
from IPython.display import Audio
# 要收听生成的音频样本,可以使用 Audio 在 notebook 进行播放
Audio(audio_values[0].asnumpy(), rate=sampling_rate)

为了演示批量音频提示生成,我们将按两个不同的比例对样本音频进行切片,以提供两个不同长度的音频样本。由于输入音频提示的长度各不相同,因此在传递到模型之前,它们将被填充到批处理中最长的音频样本的长度。

要恢复最终音频样本,可以对生成的audio_values进行后处理,以再次使用处理器类删除填充:

sample = next(iter(dataset))["audio"]

# take the first quater of the audio sample
sample_1 = sample["array"][: len(sample["array"]) // 4]

# take the first half of the audio sample
sample_2 = sample["array"][: len(sample["array"]) // 2]

inputs = processor(
    audio=[sample_1, sample_2],
    sampling_rate=sample["sampling_rate"],
    text=["80s blues track with groovy saxophone", "90s rock song with loud guitars and heavy drums"],
    padding=True,
    return_tensors="ms",
)

audio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=256)

# post-process to remove padding from the batched audio
audio_values = processor.batch_decode(audio_values, padding_mask=inputs.padding_mask)

deepseek问答记录:请讲解一下hugingface transformers中的AutoProcessor Hugging Face Transformers库中的AutoProcessor是一个自动化工具,用于加载与预训练模型配套的处理器,简化了多模态模型(如文本、图像、音频)的预处理流程。它能够根据模型名称或路径自动推断并加载相应的处理器(如分词器、特征提取器等),支持多种输入类型,并兼容Hugging Face模型库中的各类模型。AutoProcessor通过from_pretrained()方法加载处理器,并使用__call__方法处理输入,返回适合模型推理的张量格式。其优势在于代码简洁、灵活性高,但需注 阅读详情

相关推荐

【HuggingFace Transformers】教程(1)--使用AutoClass加载预训练实例

由于存在许多不同的Transformer架构,因此为您的检查点(checkpoint)创建一个可能很具有挑战性。作为🤗Transformers核心理念的一部分,使库易于使用、简单和灵活,AutoClass自动推断并从给定的检查点加载正确的架构。from_pretrained()】方法允许您快速加载任何架构的预训练模型生产此类检查点不可知代码意味着,如果您的代码适用于一个检查点,则它将适用于另一个检查点——只要它是为类似的任务进行训练的,即使架构不同。

weixin_46481662的博客 1275

使用Stabel Diffusion

Stabel Diffusion是由CompVis、stabel AI和LAION的研究人员和工程师创建的文本到图像的潜在扩散模型。它由来自LAION-5B数据库子集的512x512图像进行训练。LAION-5B是目前最大的、可自由访问的多模态数据集。在这篇文章中,将介绍如何使用diffusion库实现Stabel Diffusion模型生成图像,并讲解Stabel Diffusion的工作原理,最后深入了解diffusion如何允许用户自定义图像生成管道。如何有需要了解Diffusion原理的可以参考下面

weixin_42010722的博客 5664

【Transformer-Hugging Face 05/10】 使用 AutoClass 加载预训练实例

作为 Transformers 核心理念的一部分,使库易于、简单且灵活地使用,它会AutoClass从给定的检查点自动推断并加载正确的架构。

gongdiwudu的专栏 3342

Diffusion中guidance_scale 的理解

是一个控制生成图像引导程度的参数。它的含义和使用与论文中的公式 (2) 的引导权重类似。

vivi_cin的博客 2072

CentOS 7下Multipath多路径存储的实战配置与性能优化

本文详细介绍了在CentOS 7系统中配置与优化Multipath多路径存储的完整实战流程。从安装部署、核心配置文件解读,到性能调优与生产环境避坑指南,全面解析如何利用Device Mapper Multipath构建高可用、负载均衡的存储链路,提升存储系统可靠性与I/O性能。

weixin_29278805的博客 320

Fanuc机器人的坐标变换矩阵的研究2

一、Funuc用户坐标系的介绍 二、用户坐标系与世界坐标系的坐标转换 三、 以用户坐标系1为基础旋转变换后的用户坐标系 四、关于点的WPR的含义 4.1:点在用户坐标系和世界坐标系下的坐标关系 4.2 通过转换矩阵返回去推导WPR

qq_34047402的博客 1522

昇思25天学习打卡营第18天|linchenfengxue

BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构,因此一定要熟练掌握Transformer的Encoder的结构。

github_zwl的博客 1114

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 696

昇思25天学习打卡营第2天|linchenfengxue

与传统使用CNN进行图像分割的方法相比,FCN有两大明显的优点:一是可以接受任意大小的输入图像,无需要求所有的训练图像和测试图像具有固定的尺寸。对于给定的数字图像,计算机在处理时要先执行二次采样、平滑去噪、对比度提升和尺度调整等预处理操作,再对图像中的线条、边缘等全局特征和边角、斑点等局部特征,乃至更加复杂的运动和纹理特征进行检测,检测到的特征会被进一步用来对目标进行分类,或者估测特定的参数。通过进行像素级的预测直接得出与原图大小相等的label map。语义在图像领域指的是图像的内容,对图片意思的理解。

github_zwl的博客 289

安卓逆向实战:利用Frida-RPC自动化获取大麦演唱会数据

本文详细介绍了如何利用Frida-RPC技术实现安卓逆向自动化,以获取大麦演唱会数据。通过实战演示,从环境搭建、使用Frida动态分析定位核心签名算法,到封装为可复用的Python脚本,完整解析了自动化数据获取的技术路径与工程化思考。

cheese的博客 974

YOLOv5+Astra Pro Plus深度相机:手把手教你实现实时目标检测(附ROS配置技巧)

本文详细介绍了如何将YOLOv5目标检测算法与Astra Pro Plus深度相机结合,构建实时目标检测系统。内容涵盖从硬件选型、环境搭建、ROS配置到YOLOv5部署与深度信息融合的完整流程,并分享了性能优化、避障算法等实战技巧,帮助开发者在机器人视觉等场景中快速实现智能感知应用。

weixin_28292761的博客 386

MusicGen一键音乐风格迁移

“想象一下,您可以随心所欲地创作轻快的乡村曲风,缠绵的蓝调,史诗般的管弦乐......视频BGM创作之路上,再也不会有任何阻碍!。”01—什么是MusicGenMeta MusicGen建立在强大的Transformer模型的基础上,追随ChatGPT等语言模型的脚步,采用尖端的AI技术来预测和生成音乐片段。就像语言模型预测句子中的下一个字母一样,MusicGen 根据给定的音乐片段...

wutao22的博客 1297

【前沿】多模态数据时间同步与对齐技术方案

多模态系统时间同步面临硬件差异、传输延迟和时钟漂移等核心挑战。解决方案包括硬件级的GPS授时(μs级)、FPGA同步电路,以及软件级的动态时间规整(DTW)、卡尔曼滤波和Transformer跨模态对齐算法。工程实践中采用滑动窗口缓冲、分布式一致性协议等方法,已在工业质检(误差≤0.1mm)、自动驾驶(延迟<30ms)等场景取得显著效果。未来需解决高动态场景鲁棒性、边缘设备能耗优化等问题,随着TSN和5G URLLC技术的发展,微秒级同步将成为可能。

从技术实践立足,从项目管理方法论延伸思考 1393

Stable diffusion的一些参数意义及常规设置

stable diffusion常用参数解释

专心搬砖... 7792

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

本文主要讲述的是三个大的知识点,超详细,涉及到知识点比较多,并且串起来讲解,这也是我在网上搜不到相关资料才自己慢慢研究测试出来的,断断续续耗费了我一周多时间,相信只要你们认真看完,肯定会有所收获; 1、CK11N/CK40N成本发布功能中,系统前台的取数逻辑,涉及到多个采购信息记录、生产版本、货源清单、配额协议等对成本价发布的影响~~!! 2、CK11N与CK40N发布的成本价不一致的问题~~!! 3、如何处理外协加工物料的外协价与BOM组件成本取值不匹配的问题~~!!

风沙的博客 4071

NVIDIA AI 学习与认证指南:从入门到精通

NVIDIA的AI学习与认证体系,凭借其先进的技术背景、丰富的课程资源以及强大的行业认可度,已成为AI学习者和从业者的宝贵资源。通过深入学习NVIDIA的课程和获得认证,学习者可以快速掌握最前沿的AI技术,提升自己的职业竞争力。从基础课程到专业认证,NVIDIA为不同层次的学习者提供了量身定制的学习资源,帮助他们掌握AI的核心技能,提升职业竞争力。是其中的一个亮点,它结合了信息检索与生成式AI的能力,使AI可以从外部知识库中实时提取信息,生成更具深度和准确性的内容。,帮助学习者快速掌握该领域的核心技术。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1876

Transformers:AutoProcessor代码分析

该函数接受一个处理器类的名称。

fydw_715的博客 3260

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【深度学习 | Python】AutoModel, AutoProcessor的介绍

【深度学习 | Python】AutoModel, AutoProcessor的介绍

wzk4869的博客 8300

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

快来获取你的“知音”——MusicGen in MindSpore NLP

与传统方法不同,MusicGen采用单个stage的Transformer LM结合高效的token交织模式,取消了多层级的多个模型结构,例如分层或上采样,这使得MusicGen能够生成单声道和立体声的高质量音乐样本,同时提供更好的生成输出控制。MusicGen提供了small、medium和big三种规格的预训练权重文件,本次指南默认使用small规格的权重,生成的音频质量较低,但是生成的速度是最快的。文本提示生成:通过文本指定生成音乐的风格,如:生成一段80s的朋克风音乐,需要有很密集的鼓点。

Kenji_Shinji的博客 1522

昇思25天学习打卡营第10天 | 基于MindNLP+MusicGen生成自己的个性化音乐

MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《MusicGen直接使用谷歌的及其权重作为文本编码器模型,并使用及其权重作为音频压缩模型。MusicGen解码器是一个语言模型架构,针对音乐生成任务从零开始进行训练。MusicGen 模型的新颖之处在于音频代码的预测方式。

cftang9999的专栏 995

深度学习系列35:transformer库入门

1. 快速上手 首先安装: pip install transformers 这里有不同种类语言的离线模型清单:https://huggingface.co/languages 最简单的使用方式,是使用现成的pipeline,见第2节 2. pipeline 预训练的模型如下: "audio-classification": 语音分类 "automatic-speech-recognition" 语音识别 "conversational": 对话 "feature-extraction": 提取特征 "fi

kittyzc的博客 4444

抱抱脸(hugging face)教程-中文翻译-使用 AutoClass 加载预训练的实例

使用 AutoClass 加载预训练的实例 由于有这么多不同的 Transformer 体系结构,为您的 checkpoint 创建一个 Transformer 体系结构是一项挑战。作为 Transformers core 哲学的一部分,AutoClass 可以从给定的checkout自动推断和加载正确的体系结构,从而使库容易、简单和灵活地使用。来自 pretrained method 的他可以让你快速为任何架构装载一个预先训练好的模型,这样你就不必投入时间和资源从头开始训练一个模型。这种类型的check

wwlsm_zql的博客 1767

一文带你全面了解Meta的开源人工智能音乐模型—MusicGen

本文将同你一起探索Meta公司研制的新的开源人工智能音乐模型MusicGen,尤其是分析此模型中一些往往被忽视但实际却代表显著进步方面的内容。音乐AI产品如何提升每个人的音乐制作水平的图像(通过与ChatGPT和DALL-E-3的对话生成的图像)

java_cjkl的博客 3496

深入浅出完整解析Stable Diffusion(SD)核心基础知识

深入浅出完整解析Stable Diffusion(SD)核心基础知识(全网最详细讲解),从0到1快速入门AIGC领域,快速上手AI绘画核心模型—Stable Diffusion!

Rocky Ding相信人工智能、数据科学、商业逻辑、金融工具、终身成长以及顺应时代的潮流会赋予我们超能力。 1万+

Generative AI 新世界 | 文生图领域动手实践:预训练模型的部署和推理

本文作者黄浩文亚马逊云科技 资深开发者布道师在上期文章,我们探讨了文生图(Text-to-Image)方向的主要论文解读,包括:VAE、DDPM、DDIM、GLIDE、Imagen、UnCLIP、CDM、LDM 等主要扩散模型领域的发展状况。本期我们将进入动手实践环节,我会带领大家使用 Amazon SageMaker Studio、Amazon SageMaker JumpStart 等服务...

亚马逊云科技专栏 1072

MusicGen音乐生成模型提升游戏背景音乐自动生成

MusicGen结合Transformer与EnCodec技术,实现游戏场景中动态、可控的高质量背景音乐自动生成,支持实时响应与个性化适配。

weixin_42174098的博客 1363
上一篇: 昇思25天学习打卡营第7天|linchenfengxue
下一篇: 昇思25天学习打卡营第9天|linchenfengxue
github_zwl
博客等级 码龄11年 300粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值