声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——项目复现

news2024/9/20 12:39:21

文章目录

    • 概述
    • 项目复现
      • 配置环境
      • 下载并配置文件
      • 运行代码
        • 第一阶段,训练提取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/536612.html

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

相关文章

【软件测试】支付模块测试攻略,这些测试方法和注意事项你掌握了么?

对于大部分人而言,支付模块或许是日常生活中最为关注和使用的功能之一,因此,对于支付模块的质量控制也显得尤为重要。 但考虑到支付涉及到金钱流转等敏感信息,一旦出现问题可能带来非常严重后果。因此,在支付模块测试…

FastAPI 的路由介绍及使用

上一篇文章中,我介绍了 FastAPI 框架的安装和 HelloWorld 项目搭建方式。本文将介绍如何使用 Router 路由处理 FastAPI 中的请求。 什么是路由 路由 Router 就像是一个流水线上的线长,协调生产,下达命令给不同的组长进行分工,然…

Springboot——事物管理

文章目录 事务管理一、 Spring事务管理1.1 事务回顾1.2 案例: 解散部门(未开启事务)1.3 事务管理注解Transactional1.4 事务管理日志开关1.5 rollbackFor 异常回滚属性1.6 propagation 事务传播行为1.7 解散部门并记录操作日志1.7.1 创建数据…

Java 8 腰斩!Java 17 暴涨 430%!!(文末福利)

New Relic 最新发布了一份 “2023 年 Java 生态系统状况报告”,旨在提供有关当今 Java 生态系统状态的背景和见解。该报告基于从数百万个提供性能数据的应用程序中收集的数据,对生产中使用最多的版本、最受欢迎的 JDK 供应商、容器的兴起等多方面进行了调…

AIGC+实时云渲染:开启3D内容生态的黄金时代

AIGC技术革命下,我们的3D内容生态将会迎来怎样的变化格局? 实时云渲染 / Cloud XR技术将在AIGC大潮中扮演什么样的角色? 作为云基础设施厂商,我们有哪些机会可以抓住? 这些问题已在XR产业、3D内容行业以及软件行业内…

人工智能基础部分18-条件随机场CRF模型的应用

大家好,我是微学AI,今天给大家介绍一下人工智能基础部分18-条件随机场CRF模型的应用,本文将详细介绍条件随机场(CRF)模型,包括其原理、应用场景及实际代码实现。我将通过一个生活中的简单数据样例来演示如何输入数据、运行模型以及…

prometheus监控redis集群并显示到granfana面板

prometheus监控redis集群 监控redis1,在redis机器上安装redis_exporter2,配置prometheus配置文件3,设置redis maxmemory4,导入redis监控模板736 监控redis 1,在redis机器上安装redis_exporter 下载,安装r…

什么是边缘服务器?边缘计算的未来如何?

边缘服务器是指驻留在网络逻辑边缘上的任何类型的服务器,通常位于专用网络和互联网之间。边缘服务器的计算能力正在迅速塑造现代工业格局,动态应用程序和现代业务基础设施的出现使得数据的快速处理和共享成为必然。公司现在正在用边缘服务器技术取代传统…

什么是Pinia?以及它的使用方式?以及和Vuex的区别是什么?

文章目录 概要什么是Pinia?Pinia和Vuex的区别?Pinia相比于Vuex的优势?为什么要使用Pinia?Pinia的简单使用安装(仅限于Vue3)使用 概要 提示:下边是Pinia的简单介绍(详解请点击查看官方…

深度解析接口自动化框架封装项目:封装层级,关联调用,极限改进

目录 前言: 一、接口封装与封装层级 二、接口关联和数据准备 三、接口封装极限改进 四、代码示例 五、总结 前言: 接口自动化是软件测试领域中的一个重要环节,它可以自动化执行接口测试用例,快速发现和定位接口问题&#xf…

JAVA的基本数据类型及扩大缩小转换

JAVA的8种基本类型 分为四大类:整形、浮点型、字符型、布尔型 数据类型类别大小(位)范围byte整型8-128 到 127short整型16-32768 到 32767int整型32-2147483648 到 2147483647long整型64-9223372036854775808 到 9223372036854775807float浮点型32约3.40282347e38…

房屋装修选择自装,如何寻找砌墙工人,比价并施工(砌墙阶段)

环境: 地点:杭州 装修类型:自装 面积:建面135平方 进度:砌墙阶段 问题描述: 房屋装修选择自装,如何寻找砌墙工人,比价并施工 解决方案: 一、了解砌墙相关知识 砌…

docker 安装 prometheus,grafana,node-exporter 监控工具

:https://download.csdn.net/download/qq_42208305/87792827 加载离线镜像 : 监控端安装: docker load -i prometheus.tar docker load -i grafana.tar 被监控端安装: docker load -i node-expo…

类加载器与模块化系统

1 类加载器 “类加载器”是实现应用程序自己决定如何去获取所需的类这个动作的代码。 1.1 类与类加载器 比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义。否则,即使这两个类来源同一个Class文件,被同一个J…

智慧型档案馆十防一体化安全管控平台所需要的主要产品

档案八防十防常用的十款设备 序号 名称 1 温湿度传感器 2 空气质量云测仪 3 恒湿净化一体机 4 健康防护一体机 5 综合智能触摸一体化区域控制器 6 空调红外学习控制模块 7 漏水检测控制器及感应线 8 数字烟雾传感器 9 红外防盗传感器 10 系统软件平台 附…

无脑006——mmrotate框架下复现RTMDet-R

必须用mmrotate才有hrsc的程序 1 安装环境: Linux RTX 3090 nvcc --version cuda 11.3 pytorch 1.11.0 conda install pytorch1.11.0 torchvision0.12.0 torchaudio0.11.0 cudatoolkit11.3 -c pytorch测试pytorch是否安装成功: >>> torch.…

深入浅出PyTorch数据读取机制

熟悉深度学习的小伙伴一定都知道:深度学习模型训练主要由数据、模型、损失函数、优化器以及迭代训练五个模块组成。如下图所示,Pytorch数据读取机制则是数据模块中的主要分支。 Pytorch数据读取是通过​​Dataset​​​​​Dataloader​​的方式完成。其…

SOME/IP中间件通信流程

本文根据文章《CAPL如何实现SOME/IP协议通信:SomeIP_IL.dll函数篇(超两万字详解)》内容,抽取总结出SOME/IP通信流程,正不正确的另说,目的是为了加深对SOME/IP中间件的理解。 首先,不管是消费方consumer,还是提供方provider,都有自己的someip中间件。本质上,它是一个…

vue3 cesium datav 可视化大屏

目录 0. 预览效果 1. 代码库包 2. 技术点 3. 一些注意事项(配置参数) 4. 相关代码详情 0. 预览效果 包含的功能: ① 地球按照一定速度自转 ② 修改加载的geojson面样式 ③ 添加 文字 标注! 1. 代码库包 直接采用vue-cli5 创建…

MySql从入门到精通

MySql介绍 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 什么是数据库 数据库(Database)是按照数据结构来组织、存储…