冷月大佬的EVA-GAN: 可扩展的音频生成GAN结构-论文阅读笔记

news2024/9/19 10:55:54

前言:

最近在调研asr和tts相关的内容,准备开始学习相关的经典工作,为了倒逼自己学进脑子,我尝试将这些看到的一些好的学习笔记分享出来。
萌新学徒,欢迎相关领域的朋友推荐学习路径和经典工作!拜谢!

相关链接

论文地址: https://arxiv.org/pdf/2402.00892
作者主页:https://github.com/leng-yue
作者是fish-audio团队的核心创作者,B站大佬,看单位都是Nvidia。然后看到他们团队还有阿里达摩院和蚂蚁的人,感觉开源社区还是很有意思的。

一句话总结论文:

这篇工作是关于声码器(vocoders)的,之前的工作,在高保真 (HiFi) 44.1kHz领域,以及高频域中,存在光谱不连续性和模糊性,同时对域外数据缺乏鲁棒性。所以,这篇工作提出 可扩展生成对抗网络 (EVA-GAN),显著改善了上述问题。
更为关键的是,它使用36,000小时的44.1kHz音频的广泛数据集、一个上下文感知模块、一个人机协作 的工件测量工具包,并将模型扩展到大约2亿个参数,生成高保真音频。这是截止24年2月份,神经声码器中,最大的数据和音频声码器模型参数。

Preliminaries

我对声码器的内容非常不熟悉,但好在这篇论文写的比较通俗易懂,让我这个外行看起来,也有一定的头绪。
在介绍文章之前,我先简单梳理一下声码器的相关概念,如果有理解错误的地方,希望大家能够不吝指正:

  • 神经声码器的定义:利用深度神经网络,从声学特性(一般是梅尔谱,Mel-Spectrograms,或者是其他的特征)中,直接生成对应的音频波形。
    用big-vgan的图来解释一下,输入是下面的梅尔谱,输出是上面的音频波形。
  • 梅尔谱的来源和应用场景:语音合成、语音转换和语音增强领域。

这些领域中,一般是将音频/语义token/其他模态的信息,转成梅尔谱这个中间变量,然后用声码器去解码出对应的音频波形?这部分我不太确定了。

声码器的相关工作:

论文里写的是三个主流的方案:

  • 自回归(autoregressive, AR)或基于流的模型(flow-based models)(van den Oord et al., 2016; Kalchbrenner et al., 2018; Prenger et al., 2019),
  • 以GAN为中心的方法(GAN-centric approaches)(Yamamoto et al., 2020; Yang et al., 2020; Kong et al., 2020; Jang et al., 2021)
  • 以及直接谱生成 (direct spectral generation, DSG)策略(Siuzdak, 2023; Kaneko et al., 2022)。

其中,基于GAN的方案,采样效率和内存优化优势明显。问题也有,频谱不一致、高低频范围伪影、反卷积棋盘伪影,导致音频质量受损。

然后,相关的经典工作有很多。
论文里分两块介绍,一部分是损失项的创新改进,主要工作有:

  • UnivNet (Jang et al., 2021) 用多尺度 STFT 损失替代了 Mel-谱图损失,并采用多分辨率判别器。
  • BigVGAN (gil Lee et al., 2023) 用蛇形激活(Snake Activation)来提高谱图质量和分布外(OOD)性能。
  • NSF HiFi-GAN (Zhao et al., 2020; Kong et al., 2020; Open vpi, 2022)、RefineGAN (Xu et al., 2021) 和 SingGAN (Huang et al., 2022) 这样的模型,结合了 f0 源以提升音频质量和谱的连续性,但这限制了它们利用大型和多样化数据集的能力。

另一部分是改进判别器,来减少Artifacts(伪影):括多周期判别器(MPD)、多尺度判别器(MSD)、多分辨率判别器(MRD)、多尺度短时傅里叶变换判别器(MS-STFTD)和多尺度子带常数Q变换判别器(MS-SBCQTD)。

从这里可以看出来,各种奇奇怪怪的多尺度,来获取更充分的特征提取。下面是两个经典工作,也是本工作的基础:

  • HiFi-GAN (Kong et al., 2020) 引入了多周期判别器(MPD),将波形转换为不同高度的二维表征 (representation),并采用二维卷积分析周期结构。 同样,HiFi-GAN 的**多尺度判别器(MSD)将波形处理为多个不同尺度的一维表征(representation), 使得对时域信息的详细分析成为可能。 **
  • UnivNet (Jang et al., 2021) 提出了多分辨率谱图判别器(MSRD 或 MRD),专注于通过短时傅里叶变换(STFT)进行多分辨率时频域分析。
  • (Gu et al., 2023) 引入了多尺度子带常数Q变换判别器(MS-SBCQTD)。这一新颖的方法通过利用常数Q变换,支持生成器更有效地恢复高频成分,作为传统短时傅里叶变换 (STFT)的替代方案。

基于GAN的相关工作部分,梳理到这,可以看到,跨尺度/高频信息的恢复,都有了比较好的基础工作,本工作的架构就是HiFiGAN。

生成器的介绍:

在基于GAN的声码器框架中,生成器的任务是将梅尔谱图(Mel-Spectrograms)转换为波形。
loss相关的信息
这里的公式1,是用来比较在梅尔谱计算公式下,生成器生成的音频波形和真实音频的差距,用的是一范数loss。
公式2,对抗损失,生成后的音频,过判别器后,生成的得分值,要尽可能的接近1,即要满足“欺骗”判别器的要求。用的是二范数损失。
公式3,特征匹配损失,在判别器的每层输出中,都要尽可能的让生成器生成的音频特征,和真实音频的特征接近。用的是一范数。

这里我不太清楚的是,一范数和二范数的区别是什么,对学习有什么帮助?

Discriminator判别器:

判别器的损失函数
文中提到,需要用多个判别器,以减弱感知失真(perceptual distortions),但我好像没看到具体的代码和图,所以就没管了。
这里的损失函数也比较常规,用大白话来解释就是,输入和训练是分两块:
输入真实音频时,判别器的输出尽可能接近1,要能准确识别是真实音频。
输入的是生成器音频时,要尽可能的接近于0,要能准确区分出生成的音频特征,不要混淆。
越准确的判别器,就越能狠狠“打压”生成器,激发生成器的潜力。

EVA-GAN的核心内容:

这个工作的内容非常多,慢慢拆解。

4.1. Data Scaling

传统上,声码器的训练涉及使用诸如 LJSpeech (Ito & Johnson, 2017)、LibriTTS (Zen et al., 2019)、VCTK (Veaux et al., 2017) 和 M4Singer (Zhang et al., 2022) 等数据集。然而,这些数据集要么存在低采样率 (24k),要么缺乏多样性,仅覆盖有限范围的说话 者和语言。BigVGAN 研究 (gil Lee et al., 2023) 强 调了数据扩展的重要性,该研究显示在扩展到 LibriTTS (Zen et al., 2019) 数据集时,显著改善了分布 外的表现。基于此,我们旨在进一步扩大规模,以 增强模型(model)鲁棒性。

为此,Fish Audio 社区从 YouTube Music 和 Netease Music 编制了一个全面的 16,000 小时高保真音乐 和歌曲数据集(称为 HiFi-16000h)。该数据集涵盖 了包括中文、英文和日文在内的多种语言,并具有 广泛的乐器种类。据我们所知,这是迄今为止最大 的高保真音频数据集,有效解决了领域外样本的问题。

此外,为了提升语音表现,Fish Audio 社区还增加 了来自广播平台 Player FM 的额外 20,000 小时多样 语言音频(称为 PlayerFM-20000h)。为了确保样本 多样性,保持了 HiFi-16000h 和 PlayerFM-20000h 各 50% 的平衡分布。

我们的结果突显了规模和多样性在训练数据集中 的关键作用。我们的基线 HiFi-GAN 在这个广泛的 36,000 小时数据集上训练,有效减少了频谱不连续 性,并展示了复制多种音频类型的能力。这包括但 不限于唱歌、说话、低音、钢琴以及独特的声音, 如直升机噪音和水壶沸腾声。

这一段我是直接翻译的,因为内容都比较重要。我觉得很有趣的是,油管和FM的数据能这么光明正大的写出来么,虽然大家都这么玩。
我也想整一个,但想到要洗数据,我头都大了。

4.2. Model Scaling

回应BigVGAN的研究结果(gil Lee et al., 2023),该研究强调了在相对适中的LibriTTS数据集(Zen et al., 2019)(约1000小时)上,大型模型相较于小型模型 的优越性能,我们观察到通过扩大生成器,模型的 鲁棒性和整体性能有了显著提升。因此,我们将基 础EVA-GAN-base模型中的生成器参数从1630万扩 展到1.744亿,从而创建了更强大的EVA-GAN-big变体。EVA-GAN-big的增强能力在表1中显而易见,并 在图2中得以展示,特别是在高频域的连续性和分辨率方面。

扩 大 **判 别 器 **的 规 模, 例 如MPD(Kong et al., 2020)和MRD(Jang et al., 2021)并 未 带 来 成 比 例 的收益。此外,加入新的判别器如MS-STFT( @@; )和MS-SBCQTD(Gu et al., 2023)也未进一步提 升模型性能。我们假设这一结果归因于我们模型的 巨大容量,它有效捕捉了真实值(ground truth)与 生成音频之间在低频和高频范围内的细微差别。这 一能力消除了在损失函数中对特定频率范围的任何 权衡或过度强调的需求。

这个结果有点意思,生成器变大,效果提升明显,判别器的扩大,对性能的提升却不显著。不知道是不是有一些其他的隐藏trick需要探索?
阅读笔记,我好久没有写的这么细的了

4.3. The Free Lunch: Context Aware Module (CAM)

尽管在增大 HiFi-GAN (Kong et al., 2020) 生成器时,对计算资源和内存的需求增加,但由于长音频序列和显著的梯度足迹所带来的挑战,我们发现基于 1D 卷积的上下文感知模块(context-aware module),即 CAM,利用来自 ConvNeXt (Liu et al., 2022) 的构建块,所需的内存和计算资源显著减少。该模块不仅 资源高效,而且在客观和主观评估中都显著改善, 如表 1 所示。
推理时间提升也不算大?至少不是等比例增加

4.4. Renew Training Paradigm

这里还是蛮关键的,我也直接翻译了:
虽然直观上扩展模型(model)、数据和上下文长度,都可以提高性能,但挑战在于,在有限的计算资源范围内,实现这一点,并保持训练的稳定性。BigVGAN,是之前最大的声码器 (gil Lee et al., 2023),但由于训练不稳定和计算限制,在进一步扩展时,就有了阻碍。为了缓解这些问题,他们减少了上下文长度,从而在稳定性和资源利用之间达成了妥协——消耗更少的资源,但以稳定性为代价。 我们的研究揭示了现有神经声码器中几种高效技术部署的区别:

4.4.1. LARGER CONTEXT WINDOW

与 HiFi-GAN (Kong et al., 2020) 和 BigVGAN (gil Lee et al., 2023) 中使用的上下文窗口(通常为 32 或 64 帧)相比,将窗口扩展到 256 帧被证明是非常有益 的。这一增加有助于模型(model)更快收敛,提 高 GPU 利用率,显著减少声谱图的不连续性。然 而,这一扩展也增加了 GPU 内存消耗并减慢了训 练速度。为了缓解这一问题,我们实施了以下几项 优化:

4.4.2. SILU IN-PLACE ACTIVATION

我们观察到,将Leaky ReLU激活函数替换为SiLU (Elfwing et al., 2017)不仅加速了模型(model)收 敛,还保持了最终性能。此外,在生成器和判别 器中尽可能采用就地激活(in-place activations)使 得GPU内存使用量减少了大约30%。

4.4.3. GRADIENT CHECKPOINTING

如表 1 所示,使用 256 帧上下文窗口时,大的batch size在 A100 GPU 上是不可行的。因此,我们对生成 器和判别器应用了梯度检查点(gradient checkpointing)(Chen et al., 2016),显著减少了梯度内存占用。 例如,EVA-GAN-base 生成器的内存使用量从 46GB 降低到 16GB,尽管训练速度减少了 30%。

4.4.4. TENSORFLOAT-32

虽然在大语言模型和计算机视觉任务中, 使用fp16和bf16的混合精度训练很常见,但我们在使 用fp16时遇到了不稳定性(特别是大的梯度范数), 而使用bf16时由于其较低的精度导致了性能下降。 因此,利用A100 GPU,我们选择了TensorFloat-32进 行训练,这提供了相比fp32,大约两倍的速度。

4.4.5. LOSS BALANCER

在对模型(model)进行scaling,并采用44.1k配置时,我们在平衡各种损失方面遇到了挑战:特征匹配损失、对抗损失、Mel-谱图损失和多尺度短时傅里叶变换(STFT)损失。损失平衡器(LOSS BALANCER),这一概念是由Encodec引入到声码器领域的,成为了解决方案。该技术根据损失的梯度自动平衡这些损失,使每个损失在参数更新过程中均能平等贡献。在没有这种平衡的情况下,我们观察到了明显的人类可感知的高频伪影,尽管客观指标如l1 Mel频谱图距离看似还可以接受。这可归因于,无法正确调整判别器损失的权重。

4.5. Human-In-The-Loop Artifact Measurement

高频干扰和噪声,主观感受可能比一些量化指标更重要,所以他们加了人在环的伪影评估。
他们设计了一种人机协作伪影测量工具包,包含一个SMOS(相似性均值选项分数)标注工具和命令行接口(CLI),以持续监测和评估生成音频的质量与人类感知标准的符合程度。

5. Experiments Setup

这部分写的非常细节:
采用与 BigVGAN (gil Lee et al., 2023) 类似的方法, 我们将基础学习率设置为 1e-4,并在 1000 的范数 下应用梯度裁剪,以管理梯度尖峰和爆炸。我们选 择的优化器是 AdamW,betas 设置为 [0.8, 0.99]。与 LLMs 中常见的做法一致,我们选择了逐步学习率 衰减,而不是 HiFi-GAN (Kong et al., 2020) 及其衍生 品中使用的基于轮次的方式。具体而言,我们在每 一步后实施了 0.999999 的指数学习率衰减。

我们的模型利用 512x 的上采样率来适应 160 个频 率条的 Mel-谱图输入,n fft 为 2048,跳跃长度为 512,窗口长度为 2048。如前所述,我们发现更大 的上下文窗口非常有利,因此我们使用了 256 帧的 上下文窗口(大约 3 秒),而不是早期模型如 HiFiGAN (Kong et al., 2020) 和 BigVGAN (gil Lee et al., 2023) 中使用的 32 或 64 帧。由于内存限制,我们 的总批量大小设置为 16,而不是之前模型中使用的 32。然而,考虑到我们模型的更大帧大小,我们仍 然实现了每批次更高的有效帧数,进一步增强了训 练的稳定性。

对 于 我 们 的 多 周 期 鉴 别 器, 正 如 HiFiGAN (Kong et al., 2020) 所 介 绍 的, 我 们 使 用 了 [3, 5, 7, 11, 17, 23, 37] 的周期。多分辨率鉴别器和多 分辨率 STFT 损失,如 UnivNet (Jang et al., 2021) 所 介绍的,设置为 [[2048, 512, 2048], [1024, 120, 600], [2048, 240, 1200], [4096, 480, 2400], [512, 50, 240]] 的 分辨率。与之前的工作 (Kong et al., 2020; gil Lee et al., 2023; Jang et al., 2021; Siuzdak, 2023) 提供的 24k 配置相比,这种设置提高了模型在高频域的性能。

在上述设置下,使用 tf32 精度,我们经历了稳定的 训练,没有出现梯度爆炸或崩溃的问题。除非另有 说明,所有模型均在包含 50% HiFi-16000h 和 50% PlayerFM-20000h 的 36,000 小时数据集上训练 100 万步,使用 NVIDIA A100 GPU。

从 HiFiGAN (Kong et al., 2020) v1 配置开始,我 们将 Leaky ReLU 激活替换为 SiLU 激活,并建 立了 44.1k 的基线,形成了 HiFi-GAN-Base。我们 选择的上采样率为 [8, 8, 2, 2, 2],上采样核大小为 [16, 16, 4, 4, 4],并且并行块(MRF 块 (Kong et al., 2020))的核大小为 [3, 7, 11]。该配置导致生成器的 参数量为 13.6M。

在 HiFi-GAN-Base 的基础上,我们在生成器之前 添加了上下文感知模块:每个块的深度和维度为 [3, 3, 9, 3] 和 [128, 256, 384, 512],drop path 比率为 0.2,核大小为 7。这导致了 EVA-GAN-base 的生 成器参数量为 16.3M,考虑到输入维度从 160 增加 到 512,额外增加了 18.6M 用于上下文感知模块。

为 了 开 发 EVA-GAN-big, 我 们 保 留 了 EVA-GAN-base 的 所 有 设 置, 但 将 上 采 样 率 更 改 为 [4, 4, 2, 2, 2, 2, 2], 上 采 样 核 大 小 更 改 为 [8, 8, 4, 4, 4, 4, 4], 并 将 并 行 块 核 大 小 更 改 为 [3, 7, 11, 13]。上采样的初始通道设置为 1536。这种 扩展使生成器的大小增加到 174.4M,总参数量达 到 193M。

实验结果:

我们评估了EVA-GAN的性能,并将其与现有方法 在多个任务中进行了比较,包括LibriTTS(24k语 音)和DSD-100(48k音乐),并观察到显著的性能 提升。

表1展示了与我们优化的HiFi-GAN (Kong et al., 2020)基线相比,上下文感知模块在推理速度和训练内存上增加的开销很小,但在我们的数据集上训 练时显著提高了性能。这表明,额外的参数有效地 增强了网络容量,而不需要过多的资源。此外,尽 管EVA-GAN-big的规模是EVA-GAN-base的六倍,但 它仅使训练内存翻倍,并将推理时间延长了一个倍 ,保持了以16的批量大小比实时快250倍的速度。

6.1. Evaluation Metrics

这里介绍了三个音频的评估metrics:

  • 多分辨率短时傅里叶变换 (M-STFT),如在 Parallel WaveGAN (Yamamoto et al., 2020) 中提供, 使用来自 csteinmetz1/auraloss 的开源实现 (Steinmetz & Reiss, 2020)。
  • 周期性误差 (基于CREPE) 和有声/无声分 类F1分数 (V/UV F1), 突显了没有源模块的神经声码器中的一个常见伪影。我们使用 了CARGAN (Morrison et al., 2022) 代码,代码 可在 descriptinc/cargan 获取。
  • 语音质量的感知评估(PESQ)(Rix et al., 2001), 使用著名的自动语音质量评估工具的宽带版本 (16,000 Hz),可在ludlows/PESQ获取。

与 BigVGAN (gil Lee et al., 2023) 一致,我们观察到 5 级平均意见分数(MOS)并不能准确反映每个模型 的性能,因为大多数模型都获得了高分,而少量的 数据噪声可能会显著改变平均分数。由于我们的任 务涉及到声码器的复制合成,我们的目标是使模型 生成的输出与输入的 Mel-谱图(Mel-Spectrogram) 紧密相似。在输入噪声的情况下,我们不希望神经 声码器将音频质量偏向于训练数据,这可能导致听 众评分人为地偏高。

因此, 我们采用了 5 级相似性平均意见分数 (SMOS)方法,类似于 (gil Lee et al., 2023)。具体而 言,参与者被提供了参考音频(真实值)和生成音 频,以评估生成音频的质量。所有参与者都需要佩 戴耳机,并在安静的环境(环境)中聆听音频,以 便进行更准确的排名。

这里好像不是双盲?

6.4. Ablation Studies

  • 新的训练配方和更大的数据集: 与 HiFiGAN v1 (Kong et al., 2020) 基线相比,我们的 HiFi-GAN-base 通过优化训练配方和数据集显著提高了客观指标, 如 4 节中所讨论,并在表 2 和图 2 中得到了证实。
  • 上下文感知模块: 在我们的 EVA-GAN-base 中引入 上下文感知模块显著增强了其客观指标,增加的开 销极小。这在表 1、2、3 和图 2 中得到了证明。
  • 更大的模型: 将 EVA-GAN 扩展为 EVA-GAN-big 的 过程,详见表 2、3 和图 2,展示了增加模型大小的 有效性。EVA-GAN-big 的大小是 EVA-GAN-base 的 六倍,但在训练超参数或数据集上没有任何变化, 在语音和音乐领域都取得了优越的性能,并在各种 类型的音频中表现出鲁棒性。有关其 OOD 性能的 额外结果可以在我们的 这里 找到。

总结:

了EVA-GAN,一个开创性的音频生成模型,在神经声码器领域设定了新的基准。通过利用一个广泛的数据集并结合创新特性,如CAM和将模型扩展到约2亿个参数,EVA-GAN在光谱连续性、高频重建和在分布外数据性能的鲁棒性方面显著优于现有模型。

个人小结:

第一次精读关于音频的论文,有很多知识点都非常陌生,好在这篇工作写的比较翔实和通俗易懂。
简单了解了一下声码器相关的工作,但不知道基于GAN的算不算现在的主流?
恳请做过的朋友推荐一些基础的工作和学习路线!我现在感兴趣的点是asr和tts。

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

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

相关文章

idea 配置 Tomcat

一、状态栏找到 “ Preferences ” 二、 搜索栏输入“application”——>“Application Servers”——>“”号 三、 点击“Tomcat Sever” 四、 选择电脑中Tomcat所在位置——>OK 五、状态栏——>Run——>Edit Configurations 六、 点击:“ ”号 七…

对称密码体制的工作模式及标准解析

目录 1. 对称加密 2. 分组密码工作模式 2.1 ECB 2.2 CBC 2.3 CFB 2.4 OFB 2.5 CTR ​​​​​​​2.6 XTS 3. DES/3DES ​​​​​​​4. AES ​​​​​​​5. SM4 1. 对称加密 对称加密是一种发送方和接收方都使用相同密钥对数据进行加解密的方法。它只提供保密性…

Django的响应对象

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) Django的请…

支持向量机和梯度提升决策树

支持向量机(SVM, Support Vector Machine) 原理 支持向量机是一种监督学习模型,适用于分类和回归任务。SVM 的目标是找到一个能够最大化类别间间隔的超平面,以便更好地对数据进行分类。对于非线性数据,SVM 通过核技巧…

C语言程序设计17

程序设计17 问题17_1代码17_1结果17_1 问题17_2代码17_2结果17_2 问题17_3代码17_3结果17_3 问题17_1 下列给定程序的功能是 :调用函数 f u n fun fun 将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回 1 1 1 ,失败时返回 …

Brant-2:开启脑信号分析新篇章的基础模型

人工智能咨询培训老师叶梓 转载标明出处 脑信号,包括通过侵入性或非侵入性方式收集的脑电图(EEG)和立体脑电图(SEEG)等生物测量信息,为我们理解大脑的生理功能和相关疾病的机制提供了宝贵的洞见。然而脑信号…

vue3+cesium创建地图

1.我这边使用的是cdn引入形式 比较简单的方式 不需要下载依赖 在项目文件的index.html引入 这样cesium就会挂载到window对象上面去了 <!-- 引入cesium-js文件 --><script src"https://cesium.com/downloads/cesiumjs/releases/1.111/Build/Cesium/Cesium.js"…

Java二十三种设计模式-外观模式(9/23)

外观模式&#xff1a;简化复杂系统的统一接口 引言 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供一个统一的高层接口。外观模式定义了一个可以与复杂子系统交互的简化接口&#xff0c;使得子系统更加易于使用…

科研绘图系列:R语言GWAS曼哈顿图(Manhattan plot)

介绍 曼哈顿图(Manhattan Plot)是一种常用于展示全基因组关联研究(Genome-Wide Association Study, GWAS)结果的图形。GWAS是一种研究方法,用于识别整个基因组中与特定疾病或性状相关的遗传变异。 特点: 染色体表示:曼哈顿图通常将每个染色体表示为一个水平条,染色体…

Git 基础操作手册:轻松掌握常用命令

Git 操作完全手册&#xff1a;轻松掌握常用命令 引言一、暂存&#xff1a;git add ✏️二、提交&#xff1a;git commit &#x1f4dd;三、拉取、拉取合并 &#x1f504;四、推送&#xff1a;git push &#x1f310;五、查看状态&#xff1a;git status &#x1f4ca;六、查看历…

第09课 Scratch入门篇:小鸡啄米-自制积木实现

小鸡啄米-自制积木 故事背景&#xff1a; 在上一章的案例中&#xff0c;实现了小鸡啄米的动画&#xff0c;但是发现太多的重复代码&#xff0c;是我们编程的时候代码泰国繁琐&#xff0c;我们可以使用自制积木&#xff0c;将相同的代码提取出来制作成一个新的积木&#xff0c;在…

ESP32CAM人工智能教学17

ESP32CAM人工智能教学17 内网穿透,视频上云 小智一心想让ESP32Cam视频能发送到云端,这样我们在任何地方,都能查看到家里的摄像头了,甚至能控制摄像头的小车了。 内网穿透的技术原理想要让ESP32Cam把视频发送到云端,就必须要做内网穿透。也就是用户的手机(或电脑),可以…

Windows中如何配置Gradle环境变量?

本篇教程,主要介绍,如何在Windows中配置Gradle7.4环境变量 一、下载安装包 安装包下载;gradle-7.4-all.zip 二、解压安装包

Python基础知识笔记---保留字

保留字&#xff0c;也称关键字&#xff0c;是指被编程语言内部定义并保留使用的标识符。 一、保留字概览 二、保留字用途 1. False&#xff1a;表示布尔值假。 2. None&#xff1a;表示空值或无值。 3. True&#xff1a;表示布尔值真。 4. not&#xff1a;布尔逻辑操作符…

LabVIEW 使用 I/O 服务器

I/O 服务器是共享变量引擎&#xff08;SVE&#xff09;插件&#xff0c;用于与不使用NI专有的NI发布-订阅协议&#xff08;NI-PSP&#xff09;的设备和应用程序通信。I/O 服务器充当LabVIEW VI中的共享变量与OPC、Modbus或EPICS数据标签之间的桥梁。它们插入SVE中&#xff0c;提…

生成式人工智能最重要的三个神经网络,从谷歌DeepDream、Magenta、到NVIDIA的StyleGAN

神经网络模型&#xff08;Neural Network Model&#xff09;是一种受生物大脑启发的机器学习模型&#xff0c;用于模拟人脑的结构和功能。它由大量相互连接的人工神经元&#xff08;节点&#xff09;组成&#xff0c;这些神经元按层级结构排列&#xff0c;通常包括输入层、隐藏…

OSI七层网络模型:构建网络通信的基石

在计算机网络领域&#xff0c;OSI&#xff08;Open Systems Interconnection&#xff09;七层模型是理解网络通信过程的关键框架。该模型将网络通信过程细分为七个层次&#xff0c;每一层都有其特定的功能和职责&#xff0c;共同协作完成数据从发送端到接收端的传输。接下来&am…

制品库nexus

详见&#xff1a;Sonatype Nexus Repository搭建与使用&#xff08;详细教程3.70.1&#xff09;-CSDN博客 注意事项&#xff1a; 1.java8环境使用nexus-3.69.0-02-java8-unix.tar.gz包 2.java11环境使用nexus-3.70.1-02-java11-unix.tar.gz包 3.注意使用制品库/etc/yum.repos.…

leetcode 1596 每位顾客经常订购的商品(postgresql)

需求 表&#xff1a;Customers ---------------------- | Column Name | Type | ---------------------- | customer_id | int | | name | varchar | ---------------------- customer_id 是该表主键 该表包含所有顾客的信息 表&#xff1a;Orders ---------------------- …