Foley Sound——DECASE项目——项目复现

news2024/10/7 4:25:18

文章目录

    • 概述
    • 项目复现
      • 配置环境
      • 下载并配置文件
      • 运行代码
        • 第一阶段,训练提取DTFR特征的模型
            • 资料搜集
          • train_vqvae.py
        • 第二阶段,使用训练好的模型提取声音的DTFR特征
          • torch.cuda.OutOfMemoryError: CUDA out of memory.
        • 第三阶段,基于特征训练合成声音的模型
        • 第四阶段,生成声音,并保存结果
      • 重新使用colab进行复现
        • 下载代码库并配置环境
        • 鬼扯,崩溃,因为到了时间限额,然后他就给我自动刷新,原来训练好的一些模型都无了,生成的声音样例也没有了!寄!!!!
      • 换了一个简单使用VAE进行生成,使用tensorflow进行训练

概述

  • 这部分准备先复现项目,看看能不能跑起来,只要能跑起来,就剩下看论文了,然后根据论文讲讲代码,这个任务基本上就算是完成了,至少下周的课程没啥问题了。
  • 项目的地址
  • 论文地址

项目复现

在这里插入图片描述
开头一张图

配置环境

  • 首先安装如下的包
    • torch==1.13.1,深度学习框架
      • 这个安装之前已经研究过了,基本上懂了之后很快的,如果感谢兴趣自己看这篇文章。
    • librosa==0.10.0
      • 这个是用来做于音频、音乐分析和处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。
      • 安装,直接输入pip install librosa
    • python-lmdb==1.4.0,
      • 高效快速的内存映射数据库,用来打开lmdb数据库文件的,数据集就是类似的文件。
      • 安装,直接输入pip install lmdb
    • tqdm
      • python的进度条库,使用链接

在这里插入图片描述

下载并配置文件

  • 下载指令如下
git clone https://github.com/DCASE2023-Task7-Foley-Sound-Synthesis/dcase2023_task7_baseline.git

在这里插入图片描述

  • 下载数据集到特定的目录
    • ./DCASEFoleySoundSynthesisDevSet
    • 下载地址

在这里插入图片描述

  • 将数据集解压并存放到对应的路径中

在这里插入图片描述

  • 将项目分享到gitee上了,gitee项目地址

运行代码

第一阶段,训练提取DTFR特征的模型

  • 训练一个多尺度的VQ-VAE模型去提取声音离散的T-F特征表示(Discrete T-F Representation),训练好的模型将会被保存在checkpoint/vqvae/路径下,并且输入如下的指令
python train_vqvae.py --epoch 80
  • 完全可以运行
    在这里插入图片描述
  • 因为我的卡比较水,所以我就训练了80个epoches,模型保存结果如下

在这里插入图片描述

资料搜集

【MIT公开课】6.003 信号和系统 · 2011年秋

train_vqvae.py

第二阶段,使用训练好的模型提取声音的DTFR特征

  • 使用上一个阶段训练的模型提取出对应的DTFR特征,输入如下的命令
python extract_code.py --vqvae_checkpoint [VQ-VAE CHECKPOINT]
  • 虽然在上一部就生成了pt文件,不是按照要求的pth文件,不过保存的信息都是相同的,都是模型的参数,可以直接使用。这里需要修改一下路径,这里是根据我的路径修改之后的命令
 python extract_code.py --vqvae_checkpoint /root/PycharmProjects/FoleySound/dcase2023_task7_baseline/checkpoint/vqvae/vqvae_080.pt
torch.cuda.OutOfMemoryError: CUDA out of memory.
  • 运行之后会显示如下的异常,大概是说CUDA的内存不够
    在这里插入图片描述

  • 减少batch_size的数量即可,修改如下的代码,我的显存是3G,只能改成32

  • 修改extract_code.py,中第55行中的batch_size,原来是128。

在这里插入图片描述

第三阶段,基于特征训练合成声音的模型

  • 基于已经提取出来的DTFR特征,训练一个PixelSNAIL 模型。训练结果将会被保存在checkpoint/pixelsnail-final/中。运行如下指令
python train_pixelsnail.py --epoch 1500
  • 直接运行,又遇到了上述的情况,截图如下

在这里插入图片描述

  • 直接修改batch_size,找到train_pixelsnail.py文件,修改batch_size,对应是72行

在这里插入图片描述

  • 原来是8改成了2还是不行,也有其他的方法,不过都是要求能跑完一个epoch,我这个进行一次前向传播都困难,估计是悬了。我只能用工作站上上的跑了,或者用colab跑一下了。

第四阶段,生成声音,并保存结果

  • 合成声音,将合成的声音保存到./synthesized ,运行如下指令
python inference.py --vqvae_checkpoint [VQ-VAE CHECKPOINT] --pixelsnail_checkpoint [PIXELSNAIL CHECKPOINT] --number_of_synthesized_sound_per_class [NUMBER OF SOUND SAMPLES]

重新使用colab进行复现

这里遇到了各种问题,之前那种胡乱摸索尝试,不看学习文档的方法当真是祸害无穷,得得,用一天,从头开始学习colab,趁着今天的份额还没有浪费,加油吧!

  • 具体详见这篇 Colab的基本使用

下载代码库并配置环境

  • 下载代码,并将之复制到对应的云端硬盘中
# 挂载硬盘
from google.colab import drive
drive.mount('/content/drive/')
# 下载文档,并且复制到特定目录中
!git clone https://gitee.com/blackoutdragon/FoleySound.git
!cp -R FoleySound drive/MyDrive/FoleySound
  • 配置对应的环境,这里并不需要配置pytorch,这里是自带的
!pip install lmdb
!pip install librosa
!pip install tqdm
  • 设置当前笔记本为GPU

在这里插入图片描述在这里插入图片描述

  • 直接可以使用,这里默认是pytorch2.0并且cuda的版本是12.0,直接使用

在这里插入图片描述

鬼扯,崩溃,因为到了时间限额,然后他就给我自动刷新,原来训练好的一些模型都无了,生成的声音样例也没有了!寄!!!!

换了一个简单使用VAE进行生成,使用tensorflow进行训练

请看论文复现4,新的篇章

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

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

相关文章

学习Netty BootStrap的核心知识,成为网络编程高手!

0 定义 深入 ChannelPipeline、ChannelHandler 和 EventLoop 后,如何将这些部分组织起来,成为可运行的应用程序? 引导(Bootstrapping)!引导一个应用程序是指对它进行配置,并使它运行起来的过程…

AcWing算法提高课-1.3.8多重背包问题 III

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 有 N N N 种物品和一个容量是 V V V 的背包。 第 i i i 种物品最多有 s i s_i si​ 件&#xff0c;每件体积是 v i v_i vi​…

我们到底该怎么入门网络安全?一般人还真不行

我之前写了不少网络安全技术相关的故事文章&#xff0c;不少读者朋友知道我是从事网络安全相关的工作&#xff0c;于是经常有人在微信里问我&#xff1a;&#xff08;文末入门福利&#xff09; 我刚入门网络安全&#xff0c;该怎么学&#xff1f; 要学哪些东西&#xff1f; …

linux系统打包压缩与搜索命令

1、tar命令 在linux系统中&#xff0c;常见的文件格式比较多&#xff0c;其中主要使用使用的tar和zip来压缩文件&#xff0c;tar命令的参数比较多&#xff0c;这里呢我一般只会记得几个比较常用的。 -c创建压缩文件-x解开压缩文件-z用Gzip压缩或解压-v显示压缩或者解压的过程-…

C语言—自定义类型(结构体、枚举、联合)

自定义类型 结构体结构体的声明特殊的声明结构的自引用结构体变量的定义和初始化结构体内存对齐修改默认对齐数offsetof宏 结构体传参 位段位段的定义&#xff08;声明&#xff09;位段的内存分配位段的跨平台问题位段的应用 枚举枚举类型的定义及使用枚举的优点 联合&#xff…

第02章 变量与运算符

一 关键字&#xff08;keyword&#xff09; 定义&#xff1a;被Java语言赋予了特殊含义&#xff0c;用做专门用途的字符串&#xff08;或单词&#xff09; HelloWorld案例中&#xff0c;出现的关键字有 class、public 、 static 、 void 等&#xff0c;这些单词已经被Java定义…

Linux设备驱动模型(二)

基于linux-3.14.16 设备模型&#xff08;LDM&#xff09;包括&#xff0c;总线、驱动、设备 一、总线及其api 1、注册一个总线 以i2c总线为例&#xff0c;下面基本表现出了注册一个总线的过程。 1、定义一个总线bus_type&#xff0c;填充几个回调 2、调用bus_register注册总线…

【STM32系列】硬件介绍及固件安装

【STM32系列】硬件介绍及固件安装 硬件介绍应用领域 固件安装进入DFU模式安装固件退出DFU&#xff0c;进入U盘模式 演讲稿 欢迎收看由咸鱼菌工作室出品的STM32系列教程。本篇内容主要是设备介绍及环境安装 硬件介绍 本系列所选硬件ZTMR(STM32)开发板 &#xff0c;选用STM32芯片…

新手如何学习挖SRC漏洞?【网络安全】

前言 有不少阅读过我文章的伙伴都知道&#xff0c;我从事网络安全行业已经好几年&#xff0c;积累了丰富的经验和技能。在这段时间里&#xff0c;我参与了多个实际项目的规划和实施&#xff0c;成功防范了各种网络攻击和漏洞利用&#xff0c;提高了安全防护水平。 也有很多小…

【ProtoBuf】1.初识ProtoBuf

————————————每一个不曾起舞的日子都是对生命的辜负。 初识ProtoBuf 一. 序列化概念二. ProtoBuf1. 什么是ProtoBuf2. ProtoBuf的特点3. ProtoBuf进行序列化反序列化的流程 三. 本章总结 一. 序列化概念 日常生活中&#xff0c;手机上收到的语音消息在网络中不能直…

多线技术:TDI时间延迟积分

多线技术&#xff1a;TDI时间延迟积分 在比较暗的环境下拍照&#xff0c;清晰成像的条件&#xff0c;是CMOS芯片获取足够的光。而获得足够光的方法有&#xff1a; 方案1.增加单位时间的光照强度&#xff08;光源、大镜头收集光&#xff09; 方案2.增加CMOS感光时长&#xf…

国潮还能怎么玩?小红书用户画像速看!

所谓“国潮”&#xff0c;概括来说就是“国风潮流”。主要有两层含义&#xff1a;其一&#xff0c;有中国文化和传统的基因&#xff1b;其二&#xff0c;能将传统文化与时下潮流相融合&#xff0c;使产品更具时尚感。在“国潮”元年之前&#xff0c;“国潮”大多指狭义上的特定…

macOS Ventura 13.5beta (22G5027e)发布

系统介绍 黑果魏叔 5 月 20 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 更新&#xff08;内部版本号&#xff1a;22G5027e&#xff09;&#xff0c;本次更新距离上次发布隔了 17 天。 macOS Ventura 带来了台前调度、连续互通相机、Face…

四象限法进程调度

周二收到一篇推送 一次云上网络毫秒级的优化与实践&#xff0c;很有意义的实践和探索&#xff0c;建议阅读&#xff0c;文章不长&#xff0c;没有冗长的源码分析&#xff0c;结论很清晰。 谈谈我的看法。 多少有种感觉&#xff0c;Linux 越来越像个响应系统而不是服务器。 虚…

TimesNet:用于一般时间序列分析的时间二维变化模型(代码解析)

前言 TimesNet&#xff1a;用于一般时间序列分析的时间二维变化模型论文下载地址&#xff0c;Github项目地址&#xff0c;论文解读系列本文针对TimesNet模型参数与模型架构开源代码进行讲解&#xff0c;本人水平有限&#xff0c;若出现解读错误&#xff0c;欢迎指出开源代码中…

回归分析-简单线性回归推导

回归分析-简单线性回归模型 在大数据分析中&#xff0c;回归分析是一种预测性的建模技术&#xff0c;它研究的是因变量&#xff08;目标&#xff09;和自变量&#xff08;预测器&#xff09;之间的关系。这种技术通常用于预测分析&#xff0c;时间序列模型以及发现变量之间的因…

浏览器免费安装ChatGPT插件与国内免费ChatGPT分享

文章目录 一、什么是ChatGPT&#xff1f;ChatGPT的功能&#xff1a; 二、如果在Edge上安装chatgpt插件三、国内免费ChatGPT四、ChatGPT程序员的影响五、Chatgp能取代程序员吗&#xff1f; 一、什么是ChatGPT&#xff1f; ChatGPT是一种基于自然语言处理的机器学习算法&#xf…

【牛客刷题】 选择题整理day3~day4

在知识的海洋里彻底疯狂&#xff01;&#xff01;&#xff01; 文章目录 1. try-catch-finally2. 方法调用3. 接口4. 1. try-catch-finally try-catch-finally的执行机制是 try块是不能被省略的&#xff0c;用于包含可能会抛出异常的代码&#xff0c;如果没有try块&#xff0c…

Linux之DNAT策略及应用与tcpdump抓包

目录 一、DNAT的介绍 二、DNAT实验设计 三、DNAT具体实验步骤操作 第一步&#xff1a;配置好网卡与环境 第二步&#xff1a;web服务器安装httpd服务&#xff0c;且开启httpd服务 第三步&#xff1a;对网关服务器进行操作 1.设置路由转发 2.设置SNAT 四、tcpdump抓包工具…

yooasset+hybridclr在android,ios端热更新测试

Hybridclr+YooAsset+Unity Run android+iOS 这个工程是用来学习YooAsset和Hybridcl,来做unity资源和代码热更新, 实现了android 和ios 双端,跑通。 源码在文章最后。 版本 很新的版本 用到的YooAsset 1.4.13 用到的HybridCLR 2.4.2 yooAsset git网址 https://github.co…