MusicGen配乐工具开源,教你怎么给抖音短视频配乐,助你涨粉1000!

news2024/11/22 5:54:07

大家好,我是千与千寻,好久不见了,很多粉丝私信我说,千寻哥这是去哪了?难道被野外捕捉了。

哈哈哈,当然不是了,千寻依然在学习ChatGPT的道路上和大家一起学习,一起搞钱!

但是我觉得无论作为一名出色的研发工程师还是自媒体博主,都需要经常的对自己过去的生活以及工作输出进行总结。

千寻对多去的一段时间的输出内容进行了反思,同时也和星主进行了沟通。我发现的我输出的技术文章,存在两个明显的弊端:

1.技术门槛略高

我本人目前在互联网大厂担任算法工程师,所以我的思维就是程序员思维,觉得越复杂的项目,才有意义。但是代码门槛越高,同时受众群体也就越少,很多同学表示看不懂。

2.实用性不强

这里我觉得说白了,就是不赚钱,就想我们对自己不关心的事情,往往没有什么热情。所以我准备将后续的ChatGPT项目全部融入“使用价值”,同时照顾“非程序员”群体。

简单来说,就是后续的ChatGPT项目我将赋予更强的使用价值。不是项目可以用来赚钱,要不就是可以自己DIY,发挥星友们的创造力!

好的,我们直接进入正题,今天千寻哥给大家带来的ChatGPT项目,Audiocraft智能音乐生成工具!

Audiocraft的应用

拒绝废话!Audiocraft 是一个PyTorch的代码库,其内部包含用于音频生成的深度学习研究。

今天主要讲解的是MusicGen的代码工具,这是一种目前为止,最先进的可控文本到音乐模型。

MusicGen模型简单理解为是一个单级子回归的 Transformer 生成模型,在32kHz EnCodec 分词器上训练得到,具备 4 个以 50Hz 采样的码本。

MusicGen的模型训练

所有算法模型的训练,包括我们所使用的ChatGPT模型都是需要海量数据的。MusicGen的训练集是“两万小时时长的音乐数据集”,全部的数据集都是在32kHz下重新采样,每一个音乐都有对应的文本描述。

alt

除训练数据集以外,Meta官方还搭配了测试数据集MusicCaps。

MusicCaps 由 5500 条专业作曲家谱写的 10 秒长的音乐构成。

音乐的编码阶段,通过实验对四种不同的方式进行了测试。

alt

Transformer 部分训练了 300M、1.5B、3.3B 三个不同参数量的自回归式 Transformer。

Audiocraft的功能演示

Audiocraft模型与musicGen音乐生成工具到底有什么功能?

我们进行AI音乐生成工具的训练过程,我们使用的训练数据集是音乐描述转为音乐生成。其音乐生成工具的预测过程则是“根据音乐描述生成对应的音乐配乐”。

PC端本地部署应用

这个就是为算法工程师的程序员朋友们准备的了,使用huggingface社区的模型部署工具可能效果不是很理想。

这里同时也准备了如果自己进行本地PC端的部署教程

1.使用Anaconda工具创建一个虚拟环境 命名为“musicgen”,python版本为3.9。执行命令行:

conda create -n musicgen python=3.9
  1. 安装模型运行的环境依赖
pip install 'torch>=2.0'
# Then proceed to one of the following
pip install -U audiocraft  # stable release
pip install -U git+https://git@github.com/facebookresearch/audiocraft#egg=audiocraft  # bleeding edge
pip install -e .  # or if you cloned the repo locally

3.下载模型的配置权重

alt

4.使用API接口进行指定音乐的生成

import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write

model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=8)  # generate 8 seconds.
wav = model.generate_unconditional(4)    # generates 4 unconditional audio samples
descriptions = ['happy rock''energetic EDM''sad jazz']
wav = model.generate(descriptions)  # generates 3 samples.

melody, sr = torchaudio.load('./assets/bach.mp3')
# generates using the melody from the given audio and the provided descriptions.
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)

for idx, one_wav in enumerate(wav):
    # Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
    audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)

5.谷歌实验室运行应用

执行全部以下命令:

# Adapted from https://github.com/camenduru/MusicGen-colab
%cd /content
!git clone https://github.com/facebookresearch/audiocraft
%cd /content/audiocraft
!pip install -r requirements.txt
# Click on the gradio link that appear.
!python app.py --share

colab环境中的运行效果:

alt

矩形方框中表示模型部署于以上链接之中。点击链接,即可进入网页中进行点击调用,十分方便,如下图为点击链接后的界面画面。

alt

正好进入我们的重点,MusicGen这个GPT模型到底怎么用,实现什么功能,怎么为我们产业(搞钱)赋能?

别急,我们进入重点环节!

Audiocraft模型社区使用教程

进入MusicGen社区应用,点此链接

首先是界面应用的功能介绍,如下图所示

alt

(1)音乐内容描绘:

文本描述生成音乐的特点,英文最好,中文也可以识别,描述待生成的旋律特点,比如摇滚,流行,沉重。

(2)待改良的音乐:

原始的音乐,文件格式为.mp3格式文件,可以理解为原始的旋律音乐。

(3)最终生成的目标音乐:

最终的目标,验证是否满意。

好玩的来了!精彩测试项目效果!

测试用例1:

An 80s driving pop song with heavy drums and synth pads in the background

翻译:一首 80 年代流行歌曲,背景是沉重的鼓和合成器垫

原始音乐文件:

改良音乐文件:

测试用例2:

A cheerful country song with acoustic guitars

翻译:一首带有原声吉他的欢快乡村歌曲

原始音乐文件:

改良音乐文件:

除了改良已有音乐旋律的功能,MusicGen大模型还可以凭空生成描述的音乐旋律。

测试用例3:

lofi slow bpm electro chill with organic samples

翻译:lofi 慢速 bpm 电冷却有机样品

生成音乐文件:

MusicGen赋能短视屏制作

小红书、抖音,快手是目前做流量首选的平台,很多时候,小红书采用图片+配乐+文本,这种看似简单的方式。

但是别忘了,正因为组成结构的简单,所以想在目前日益火爆的短视频市场,能够称为“黑马”。这里举一个例子,做一个很简单的短视频Demo。

alt

这张图片,希望配乐一个“励志,并且感动的音乐”,使用基础的底层音乐进行改良。

使用MusicGen进行短视频的配乐生成:

alt

最终的短视频效果:

希望这次星主能给一个精华,哈哈哈,用了飞书文档优化体验,对内容进行深入的价值挖掘。

其实人生不就是一场“边学习,边进步”,不断找回正确方向的旅程吗,大家端午安康!

我是千与千寻,一个只讲干活的码农,我们下期见!

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TC8:TCP_MSS_OPTIONS_05-09

TCP_MSS_OPTIONS_05: Illegal option length for MSS in a SYN-ACK segment 目的 TCP能够处理SYN+ACK报文段中MSS选项的长度非法,而不会崩溃 可以正常地响应,就是不崩溃,这里指的应该是DUT发送ACK 测试步骤 Tester:让DUT侧的应用程序发起主动open调用DUT:发送SYNTester:…

C++类和对象--构造函数和析构函数

0.前言 在我们写某些需要动态开辟内存空间的函数时候,会经常忘记初始化、销毁,而且有时候程序返回的情况很多,那么销毁函数写起来就会很繁琐,那么有没有什么办法解决这个问题呢?答案是:当然有!在…

Java类 继承

Java是一种面向对象的编程语言,类是Java中最基本的编程单元。一个类可以包含变量、方法和构造函数等。类的定义需要使用关键字class,例如: public class Person { private String name; private int age; public Person(St…

文心一言 VS 讯飞星火 VS chatgpt (44)-- 算法导论6.1 1题

一、在高度为h的堆中,元素个数最多和最少分别是多少? 文心一言: 在高度为 h 的二叉搜索树(BST)中,元素个数最多和最少的情况分别如下: 1.最多情况:当每个节点都包含两个子节点时&#xff0c…

CSS3-盒子模型-边距问题

1 清除默认内外边距 场景:浏览器会默认给部分标签设置默认的margin和padding,但一般在项目开始前需要先清除这些标签默认的margin和padding,后续自己设置 比如:body标签默认有margin:8px、p标签默…

一句提示词生成整个代码库——Gpt Engineer神级项目开源(附演示视频)

近日,一个名为Gpt Engineer神级项目开源,并迅速火爆全网。 短短几天内,该项目已经得到了25K的星星。 使用GPT-engineer进行人工智能软件开发,可以改变软件开发的未来。 在软件开发领域,一场巨大的革命正在开始。这一转…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(6月 22 日论文合集)

文章目录 一、检测相关(9篇)1.1 Wildfire Detection Via Transfer Learning: A Survey1.2 Polygon Detection for Room Layout Estimation using Heterogeneous Graphs and Wireframes1.3 Exploiting Multimodal Synthetic Data for Egocentric Human-Object Interaction Detec…

前端中的相关概念

谁道人生无再少, 门前流水尚能西。 桃花落尽胭脂透, 庭院无声五更鸡。 —— 杜甫《端午节》 HTML中class属性 HTML中class属性是一种用于为元素定义样式和标识的属性,以下是class属性的几种常见用法实例,包括标识元素、定义样…

利用OpenCV计算条形物体的长度

0、前言 在图像处理中,我们可能会遇到求一个线条长度的场景,比如,现在有一条裂缝,需要求其长度,或者有一个长条形的零件需要知道其长度。 本文利用OpenCV和skimage两个库,提供了一个解决方案。 1、解决步…

贪心法与动态规划的对比分析

高级算法设计课程论文 题 目:贪心法与动态规划的对比分析 作者姓名: 作者学号: 专业班级: 提交时间: 2023/6/3 目 录 1 引言 1 2 分析过程 2 2.1多段图的最短路径问题 2 2.2最小生成树问题 4 3动态规划与贪心法的对…

【动态规划算法练习】day3

文章目录 一、931. 下降路径最小和1.题目简介2.解题思路3.代码4.运行结果 二、64. 最小路径和1.题目简介2.解题思路3.代码4.运行结果 三、面试题 17.16. 按摩师1.题目简介2.解题思路3.代码4.运行结果 总结 一、931. 下降路径最小和 1.题目简介 931. 下降路径最小和 题目描述&…

浅析 GeoServer CVE-2023-25157 SQL注入

原创稿件征集 邮箱:eduantvsion.com QQ:3200599554 黑客与极客相关,互联网安全领域里 的热点话题 漏洞、技术相关的调查或分析 稿件通过并发布还能收获 200-800元不等的稿酬 更多详情,点我查看! 简介 GeoServer是一个开…

十八、网络基础(一)

一、协议 (一)前置 协议其实是一种约定!!! 计算机之间的传输媒介是光信号和电信号 , 通过 " 频率 " 和 " 强弱 " 来表示 0 和 1 这样的信息 , 要想传递各种不同的信息 , 就需要约定好双方的数据…

(自己动手开发自己的语言练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)

写自己的开发语言时&#xff0c;很多人都会拿JSON当第一个练习对象 开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm1001.2014.3001.5502 <json> :: <object> | <array> <object> :: "{" [ <me…

分布式学习第三天 nginx学习

目录 1. 一些基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 课外知识导读 1. URL和URI 2. DNS解析过程 复习 1. 一些基本概念 1.1 Nginx初步认识…

团体程序设计天梯赛-练习集L1篇②

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

在我掉入计算机的大坑并深陷其中时,一门名为“C语言”的编程语言让我沉迷

各位CSDN的uu们你们好呀&#xff0c;小雅兰好久没有更新博客啦&#xff0c;今天来小试牛刀&#xff01;&#xff01;&#xff01; 上一篇博客小雅兰是说自己原本是自动化专业的学生&#xff0c;但是因为一次偶然的机会对计算机的相关知识产生了浓厚的兴趣。那么&#xff0c;小雅…

Linux Ubuntu man文档的图文安装教程

文章目录 前言man文档的起源man文档的安装man文档的使用总结 前言 当提及"man文档"时&#xff0c;通常是指Unix和类Unix系统中的手册页&#xff08;man page&#xff09;&#xff0c;因为Linux是在Unix的基础上发展而来的操作系统&#xff0c;所以我们的Linux也有ma…

操作系统 - 内存管理

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

INDEMIND相机ROS bag包数据的回放

实验需要IMU相机&#xff0c;跑算法是在ROS下跑&#xff0c;在 ROS 系统中&#xff0c;可以使用 bag 文件来保存和恢复系统的运行状态&#xff0c;比如相机话题的 bag 包&#xff0c;然后回放用来进行联合外参标定&#xff0c;也可以使用EVO工具显示算法轨迹&#xff0c;这里记…