【卫星语音】基于神经网络的低码率语音编解码(ULBC)方案架构分析:以SoundStream为例

摘要

随着深度学习技术的快速发展,基于神经网络的音频编解码技术已成为下一代音频压缩的重要研究方向。本文以Google提出的SoundStream为核心分析对象,深入探讨其在低码率语音编解码领域的创新架构设计和关键技术突破。SoundStream通过全卷积编解码器网络和残差向量量化器的端到端联合训练,实现了在3-18 kbps码率范围内的高质量通用音频压缩。本文从架构设计原理、核心组件分析、训练策略优化、性能评估等多个维度对SoundStream进行系统性分析,并探讨其在实际应用中的优势与局限性。研究表明,SoundStream在3 kbps低码率下的性能超越了传统Opus编解码器在12 kbps的表现,为神经音频编解码技术的发展提供了重要的理论基础和实践指导。

关键词:神经网络;音频编解码;残差向量量化;端到端学习;低码率压缩;SoundStream

1. 引言

1.1 研究背景与意义

音频编解码技术是现代数字通信和多媒体应用的核心技术之一。传统音频编解码器经过数十年的发展,在技术上已趋于成熟,但在极低码率场景下仍面临显著挑战。波形编解码器(如Opus、EVS)虽然在中高码率下表现优异,但在低于12 kbps时会产生明显的量化噪声和音质劣化。参数编解码器(如CELP系列)虽能在极低码率下保持语音可懂度,但重构音频具有明显的机械感,且仅适用于语音信号。

近年来,深度学习技术的突破性进展为音频编解码领域带来了新的发展机遇。神经网络强大的非线性建模能力和端到端学习特性,为突破传统编解码技术的瓶颈提供了可能。Google于2021年提出的SoundStream代表了神经音频编解码技术的重要里程碑,首次在低码率通用音频压缩领域实现了与传统编解码器的正面竞争。

1.2 SoundStream的技术定位

SoundStream是首个真正意义上的端到端神经音频编解码器,具有以下突出特点:

  • 通用性:支持语音、音乐、环境音等多种音频类型的高质量压缩
  • 低码率优势:在3-18 kbps范围内实现高质量音频重构
  • 实时性能:支持流式推理,可在智能手机CPU上实时运行
  • 码率可扩展性:单一模型支持多种码率配置
  • 增强功能集成:可在编码或解码端集成音频增强功能

2. 神经音频编解码技术概述

2.1 技术演进历程

神经音频编解码技术的发展可分为三个主要阶段:

第一阶段(2016-2018):神经增强传统编解码
这一阶段主要将神经网络作为后处理模块,用于改善传统编解码器的输出质量。典型应用包括音频超分辨率、量化噪声抑制、丢包隐藏等。虽然取得了一定效果,但本质上仍受限于传统编解码器的信息瓶颈。

第二阶段(2018-2020):端到端神经编解码兴起
以VQ-VAE为代表的端到端学习框架开始应用于音频编解码。WaveNet、LPCNet、SoundStream等方案通过自回归解码器实现了显著的性能突破,但计算延迟较高,限制了实时应用。

VQ-VAE
LPCNet
SoundStream
DAC
EnCodec
SNAC

第三阶段(2021至今):通用高效神经编解码
SoundStream标志着这一阶段的开始,通过全卷积架构解决了延迟问题,实现了低延迟、高质量、通用音频的编解码目标。

2.2 核心技术原理

神经编解码器的基本架构包含三个核心组件:

编码器(Encoder):将时域音频信号映射为低维潜在表示。通过下采样和特征提取,实现信息的紧凑化表示。

量化器(Quantizer):将连续潜在表示转换为离散符号,实现数据压缩。量化器的设计直接影响压缩效率和重构质量。

解码器(Decoder):从量化表示重构原始音频信号。通过上采样和特征重建,恢复原始信号的时域特性。

2.3 技术优势分析

相比传统编解码技术,神经网络编解码方法具有以下显著优势:

自适应特征学习:通过数据驱动的端到端学习,自动发现最优的音频表示,避免人工特征设计的局限性。

非线性建模能力:深度神经网络的强大非线性建模能力使得在极低码率下仍能保持较好的感知质量。

多目标联合优化:可同时优化压缩效率、重构质量、计算复杂度等多个目标,实现全局最优解。

功能集成化:可在编解码过程中集成降噪、增强等附加功能,实现多功能一体化处理。

3. SoundStream整体架构分析

3.1 设计理念与目标

SoundStream的设计围绕以下核心目标:

通用音频支持:不同于专门针对语音的传统低码率编解码器,SoundStream设计为通用音频编解码器,能够高效压缩语音、音乐和一般音频内容。

低延迟实现:通过全卷积架构避免自回归结构的延迟问题,支持实时流式处理,算法延迟仅为13.3ms。

码率可扩展性:单一模型通过结构化dropout技术支持3-18 kbps的可变码率,避免为每个目标码率单独训练模型。

端到端优化:编码器、量化器、解码器作为整体进行联合训练,直接优化最终的感知质量。

3.2 整体架构框图

SoundStream的整体架构如图所示,包含以下关键组件:
图1. SoundStream的整体架构

图片展示了基于残差向量量化(RVQ)的神经网络语音编解码系统的完整架构,包括训练阶段和推理阶段的工作流程。

3.2.1 训练阶段(左侧)

1. 输入处理

  • 输入为原始语音波形(蓝色波形),包含噪声或需要压缩的音频信号

2. 编码器(Encoder)

  • 将时域音频信号转换为低维潜在表示
  • 通过卷积神经网络提取音频的关键特征
  • 实现信息的紧凑化和抽象化

3. 残差向量量化器(RVQ)

  • 系统的核心组件,将连续的特征表示量化为离散的码本索引
  • 通过多层量化器逐步减小量化误差
  • "Denoising on/off"表示可以控制降噪功能的开启或关闭
  • 实现数据压缩和离散化表示

4. 解码器(Decoder)

  • 从量化后的离散表示重构音频信号
  • 输出清洁的语音波形(棕色波形)
  • 与编码器结构对称,通过上采样恢复原始分辨率

5. 判别器(Discriminator)

  • 采用对抗训练机制,比较重构音频与原始音频
  • 指导编码器-解码器系统优化重构质量
  • 防止模型学习产生失真的捷径解法
  • 确保重构音频的感知质量
3.2.2 推理阶段(右侧)

1. 发送端(Transmitter)

  • 仅包含训练好的编码器和RVQ模块
  • 将输入音频压缩为量化码本索引
  • 显著减少传输数据量

2. 量化码传输

  • 传输的是离散的码本索引(图中的条形码表示)
  • 相比原始波形,传输效率大幅提升
  • 实现高压缩比的音频编码

3. 接收端(Receiver)

  • 仅使用训练好的解码器模块
  • 从接收到的量化索引重构音频
  • 无需传输完整的神经网络模型

4. 输出重构

  • 生成高质量的重构语音波形(棕色波形)
  • 在解码过程中自动实现降噪和质量增强

3.3 技术创新要点

全卷积架构:编码器和解码器均采用全卷积结构,避免了循环网络的序列依赖,支持并行计算和低延迟推理。

残差向量量化:创新的多层量化策略,通过残差学习逐步细化量化精度,显著提升压缩性能。

结构化dropout:训练时随机选择量化层数,使单模型支持多码率操作,提高模型的实用性。

多尺度判别器:采用不同时间尺度的判别器网络,确保重构音频在各个时间分辨率上的质量。

4. 编码器架构

图2.编码器和解码器架构

  1. 总体架构

    • SoundStream编码器是一个全卷积网络,用于将时域波形映射为一系列嵌入。该结构遵循流式SEANet编码器的设计,但没有跳跃连接。
  2. 具体组件

    • 输入层

      • 接收单通道录音 x∈RT x \in \mathbb{R}^T xRT(以采样率 fs f_s fs 进行采样)。
    • 1D卷积层

      • 编码器的首部是一个1D卷积层,具有Cenc C_{\text{enc}} Cenc 个通道,负责初步特征提取。
    • 卷积块

      • 之后是Benc B_{\text{enc}} Benc 个卷积块。每个卷积块包括三个残差单元(Residual Units),这些单元中含有扩张卷积(Dilated Convolutions),其扩张率分别为1、3和9。
      • 每个卷积块后还跟随一个步长卷积层,用于下采样(down-sampling),因此在每次下采样时,通道数会加倍,起始通道数为Cenc C_{\text{enc}} Cenc
    • 输出层

      • 最后,编码器有一个1D卷积层,其卷积核长度为3,步长为1,用于将嵌入的维度调至 D D D
  3. 实时推理

    • 为了支持实时推理,所有卷积层均为因果卷积,这意味着填充仅应用于过去的数据,而不包括未来的数据。
    • 在训练和离线推理中,使用过去填充;而在流式推理过程中不使用任何填充。
  4. 激活函数和归一化

    • 编码器使用ELU激活函数,且不应用任何形式的归一化。
  5. 时间重采样控制

    • 卷积块的数量 Benc B_{\text{enc}} Benc 及其对应的步长序列决定输入波形与嵌入间的时间重采样比率。举例来说,当 Benc=4 B_{\text{enc}} = 4 Benc=4 并使用步长序列 (2, 4, 5, 8) 时,每320个输入样本计算一个嵌入。
  6. 编码器输出

    • 编码器的输出形式为 enc(x)∈RS×D \text{enc}(x) \in \mathbb{R}^{S \times D} enc(x)RS×D ,其中S=T/M S = T/MS=T/MT TT 为输入的长度,M M M 是所有步长的乘积,体现了经过编码后的嵌入信息。

该编码器结构的设计旨在高效捕捉音频信号中的特征,并为后续的量化阶段提供充分的表征能力,确保在低比特率条件下仍能高质量地重构音频。

5. 解码器结构

  1. 总体架构

    • SoundStream的解码器是一个全卷积网络,负责从量化的嵌入中重构原始音频波形的近似值。
  2. 输入层

    • 解码器接收量化后的嵌入,通常来自编码器通过残差向量量化器(RVQ)生成的输出。
  3. 卷积块

    • 解码器中的结构与编码器对称,但功能上反向操作。
    • 解码器包含多个卷积层和上采样模块,逐步将量化嵌入转换为输出波形。
    • 每个解码卷积块也由几个残差单元组成,这些单元与编码器中使用的残差单元类似,但实现了反向传播的上采样操作。
  4. 上采样

    • 使用转置卷积(或上采样层)来增加特征图的时间分辨率,以逐步重构出与原始输入相等分辨率的波形。
    • 每次上采样时,通道数通常会减半,直至最终得到一个有效的输出通道数 Cdec C_{\text{dec}} Cdec
  5. 输出层

    • 解码器的最终输出通常通过一个1D卷积层完成,该层的卷积核尺寸为7,步长为1,旨在将通道数降低到1,输出一个单通道的波形。
  6. 实时推理

    • 类似于编码器,解码器中的所有卷积操作也是因果的,以确保声波信号的实时处理不受到未来数据的影响。
  7. 可选性

    • 在解码过程中,解码器可能会应用一个可选的条件输入,允许动态调整去噪的应用,以提高最终音频输出的质量。
  8. 解码器输出

    • 解码器的最终输出形式是对原始波形x^∈RT\hat{x} \in \mathbb{R}^T x^RT 的有损重构,意在近似于输入的音频质量。

SoundStream的解码器同样旨在高效地从量化嵌入中重构高质量音频,同时结合了先进的神经网络架构,以适应不同的比特率需求,通过高效的上下文利用和条件信号推动解码过程中的去噪能力。

6. 残差向量量化器(Residual Vector Quantization,RVQ)结构

  1. 总体功能

    • 残差向量量化器的主要功能是将编码器生成的向量进行量化,以压缩音频数据的数据量。
      图3. 向量量化示意图
  2. 量化过程

    • 对于每个输入嵌入,该向量量化器会使用一个有限集合的代码本中的向量来进行替代,具体操作是将每个嵌入表示替换为多个来自代码本的向量之和。这一操作可以有效地减少信息表达的复杂度,同时维持较高的音频质量。
  3. 多个代码本

    • RVQ的设计允许使用多个代码本( Q1,Q2,Q3,…,Qn Q_1, Q_2, Q_3, \ldots, Q_n Q1,Q2,Q3,,Qn),通过这些不同的代码本可以在量化过程中提供更大的灵活性,并且有助于应对不同的输入特征。
  4. 联合训练

    • 残差向量量化器是与编码器和解码器一起进行端到端联合训练的。训练过程调动了重构损失与对抗性损失的组合,用于优化模型参数,从而提升量化后的音频质量。
  5. 可变比特率

    • 通过在量化层引入结构性丢失(structured dropout),该模型能够在不同的比特率(从3 kbps到18 kbps)下稳定工作,同时对音质的损失几乎没有影响。
  6. 条件信号

    • 量化器的应用可以结合一个条件信号,该信号可以指示在量化过程中是否需要去噪,这有助于在保留音频信号完整性的同时去除背景噪音。
  7. 量化器输出

    • 量化器的输出是经过量化处理后的嵌入,通常用于输入解码器。通过这种方式,SoundStream能够有效地降低存储和传输音频数据所需的比特数,同时力求尽量保持音频质量。

SoundStream的残差向量量化器通过灵活的代码本管理和结构化量化策略,能够有效提供高质量音频压缩,适用于各种音频内容类型。

7. 鉴别器架构结构

SoundStream的鉴别器架构可以分为两种类型:基于波形的鉴别器和基于STFT的鉴别器。以下是这两种鉴别器的详细结构描述:

1. 基于波形的鉴别器

  • 输入: 接收单个音频波形作为输入。
  • 结构:
    • 采用多分辨率卷积鉴别器,三个结构相同的模型分别应用于输入音频的不同分辨率:原始分辨率、2倍分辨率和4倍分辨率(降采样)。
    • 每个尺度的鉴别器由以下部分组成:
      • 一个初始的普通卷积层,使用指定的卷积核大小。
      • 四个组卷积层,这些层组的组大小为4,并通过降采样因子进行特征图的缩小以及通道数的增加。
      • 最终经过两个普通的卷积层生成输出,即logits。

2. 基于STFT的鉴别器

图4. STFT鉴别器结构

  • 输入: 接收输入波形的复数短时傅里叶变换(STFT),该STFT包含实部和虚部。

  • 计算:

    • 使用窗口长度 W=1024 W = 1024 W=1024 个样本和步长 H=256 H = 256 H=256 个样本进行STFT计算。
  • 结构:

    • 初始阶段通过一个2D卷积层,卷积核大小为 7×7 7 \times 7 7×7 并包含32个通道。
    • 之后是多个残差块,每个块的结构如下:
      • 首先是 3×3 3 \times 3 3×3 的卷积层,然后是 3×4 3 \times 4 3×44×4 4 \times 4 4×4的卷积层,步长分别为 (1,2) (1,2) (1,2)(2,2)(2,2) (2,2)
      • 这些步长交替使用,共包含6个残差块。每个块增加通道数,逐步构建网络的深度。
  • 最终输出:

    • 最后一个残差块的输出形状为 T/(H⋅24)×F/25 T / (H \cdot 2^4) \times F / 2^5T/(H24)×F/25,其中 T T T是时间域样本数,F=W/2 F = W / 2 F=W/2 是频率箱的数量。
    • 最后通过一个全连接层(实现为 $$ 1 \times F / 2^6 $$的卷积)聚合输出,从而在(降采样的)时间域中生成一个一维信号的logits表示。

基于波形的鉴别器和基于STFT的鉴别器各自有不同的结构和工作方式。基于波形的鉴别器专注于直接处理时域信号,而基于STFT的鉴别器则通过频域特征来增强对音频信号的判别能力。这两种鉴别器共同参与了SoundStream模型的对抗损失计算,为提升音频重构质量作出了贡献。

8. Training Objective(训练目标)

  1. 结合重构和对抗损失

    • SoundStream模型的训练目标是通过结合重构损失和对抗损失来优化生成的音频质量。重构损失确保生成的音频与原始输入相似,而对抗损失则通过使用判别器来推动生成音频的真实性。
    • 具体来说,重构损失用于评估生成音频与原始音频之间的相似度,而对抗损失则是通过训练判别器确定生成音频是否可以被认为是“真实”的。从而促使生成器提高质量。
  2. 多任务学习

    • 训练过程中使用多种损失函数,旨在实现多任务学习,提升模型在音频生成上的多样性和表现。模型通过优化这些损失,学会在压缩和生成质量之间找到平衡。
  3. 个人化和条件处理

    • 文中提到的可选输入条件也表明模型能够在训练时考虑特定的背景噪音情况。这种条件输入使得模型在处理不同种类的音频时,可以选择性地去噪或增强,从而灵活适应不同的应用场景。

9. Joint Compression and Enhancement(联合压缩与增强)

  1. 压缩与增强的结合

    • SoundStream模型实现了音频数据的压缩和质量增强的联合处理。通过在编码过程中引入噪声去除层(降噪层),模型能够在保证压缩率的同时,也提升解码后音频的质量。
    • 联合压缩与增强的设计使得模型不仅仅关注数据压缩的效率,同时也注重音频信号的听觉质量。这样的处理提升了音频效果,尤其是在需要高质量输出的应用中。
  2. 动态控制

    • SoundStream中的时间依赖性条件层使得音频解码过程中的噪声去除是可控的。这意味着在某些情况下可以选择启用或禁用噪声去除,增加了模型的灵活性。
    • 这样的特点尤其适合处理复杂环境中的音频数据,比如包含背景噪音的实时录音。能在合适的时候保留一些背景音,避免丢失可能重要的环境信息。
  3. 实用性

    • 这种结合设计使得SoundStream成为一个通用的音频编码器,能够在实际应用中高效工作,满足多种音频处理需求。通过优化联合流程,模型能够在保持较低比特率的同时,提供优质的音频输出。

总结

在本篇文章中,我们详细分析了SoundStream模型架构,明确其在现代基于神经网络的低码率语音编解码中的重要性。SoundStream为音频的高效压缩和高质量重构提供了创新的解决方案,充分展示了联合压缩与增强的潜在价值。同时,学术界也在积极推进其他前沿算法的研究,如EnCodec、Mimi-Codec、TAAE、DAC、SNAC、FunCodec和FocalCodec等。这些算法采用的基本架构同样围绕编码器、残差向量量化、解码器和鉴别器展开,反映了多样化的技术创新。通过这些研究成果,低码率语音编解码的领域正向着更高效、灵活的方向持续发展,为未来的应用场景奠定了坚实的基础。

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

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

相关文章

技术面试问题总结一

MySQL的几种锁机制一、从锁的粒度角度划分表级锁机制:它是对整张表进行锁定的一种锁。当一个事务对表执行写操作时,会获取写锁,在写锁持有期间,其他事务无法对该表进行读写操作;而当事务执行读操作时,会获取…

Python(一)

基本语法:变量,语法变量类型:不同于Java,C语言,C,Python在创建一个变量的时候,不需要声明变量类型,由编译器自行识别Python语句在只有一个语句的时候语句末尾不需要分号,…

Adaptive AUTOSAR中的Firewall技术:智能汽车网络安全架构的核心

1 防火墙技术基础 1.1 定义与演进历程 防火墙(Firewall)作为一种位于内部网络与外部网络之间的网络安全系统,本质上是依照特定规则允许或限制数据传输的信息安全防护机制。在汽车电子电气架构从分布式向集中式转变的背景下,防火墙技术已从传统的IT领域深度融入Adaptive A…

android闪光灯源码分析

目录 一、APP层源码分析 二,framework层代码分析 ​​​​​​​2.1 binder溯源 这几天撸了android11 aosp闪光灯源码,本着前人栽树后人乘凉的原则,有志于android系统开发的新同学们提供一盏明灯,照亮你们前行。 本人撸代码风格&…

文心一言4.5开源部署指南及文学领域测评

📝个人主页:哈__ 期待您的关注 目录 一、引言 二、文心一言开源模型 2.1 MoE架构 2.2 文心一言MoE架构 三、文心一言稠密模型部署 3.1 产品选择 3.2 环境选择 3.3 Python3.12安装 3.3 PaddlePaddle-GPU安装 3.4 FastDeploy-GPU安装 ​编辑3.…

深入探讨 C++ 中的浮点数数据类型

核心概念:IEEE 754 标准 C 中的浮点数(float, double, long double)在绝大多数现代系统上遵循 IEEE 754 标准。这个标准定义了浮点数在内存中的二进制表示方式、运算规则、特殊值(如无穷大、NaN)等。数据类型与精度 fl…

相机:以鼠标点为中心缩放(使用OpenGL+QT开发三维CAD)

很多软件中(Auto CAD、ODA等)支持以鼠标点为中心进行放缩操作,有什么黑科技吗? 本章节为相机原理和实现的补充内容,支持鼠标放缩时以鼠标点为中心进行放缩。 对应视频课程已上线,欢迎观看和支持~ https:…

​​XAMPP安全升级指南:修复CVE-2024-4577漏洞,从PHP 8.2.12升级至PHP 8.4.10​​

​​1. 背景与漏洞概述​​ 近期,PHP官方披露了一个高危漏洞 ​​CVE-2024-4577​​,该漏洞影响PHP 8.2.x及更早版本,可能导致远程代码执行(RCE)或信息泄露。由于XAMPP默认捆绑的PHP版本(如8.2.12)可能受此漏洞影响,建议用户尽快升级至最新的​​PHP 8.4.10​​(或官…

ES 压缩包安装

以下是 Elasticsearch (ES) 通过 .tar.gz 压缩包安装的详细步骤(适用于 Linux/macOS 系统): 1. 准备工作 1.1 检查系统依赖 Java 环境:ES 需要 JDK,推荐 OpenJDK 11/17(ES 7.x/8.x 兼容版本)。…

RoboRefer:面向机器人视觉-语言模型推理的空间参考

25年6月来自北航、北大和北京智源的论文“RoboRefer: Towards Spatial Referring with Reasoning in Vision-Language Models for Robotics”。 空间参考是实体机器人与三维物理世界交互的基本能力。然而,即使有了强大的预训练视觉-语言模型 (VLM),近期方…

【Unity】MiniGame编辑器小游戏(十)连连看【Link】

更新日期:2025年7月9日。 项目源码:获取项目源码 索引 连连看【Link】一、游戏最终效果二、玩法简介三、正式开始1.定义游戏窗口类2.规划游戏窗口、视口区域3.方块 Block①.定义方块类②.生成方块所有类型③.生成连连看棋盘④.绘制方块阵列4.连线 Line①.点击方块连线②.尝试…

Enable ADB Debugging Before Connect

If you don’t enable Developer Options and turn on USB Debugging before plugging in the cable, adb devices won’t detect the phone because the Android system doesn’t trust the connection yet. Here’s what you need to do step-by-step to fix this:✅ 1. Enab…

从互联网电脑迁移Dify到内网部署Dify方法记录

一、在互联网电脑上准备迁移文件1. 保存 Docker 镜像# 获取所有 Dify 相关镜像(根据实际容器名调整) docker ps --filter "namedify" --format "{{.Image}}" | sort -u > dify-images.list# 保存镜像为 .tar 文件 docker save $(…

【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(一)

MatSwap: Light-aware material transfers in images介绍任务:输入一张拍摄图像、示例材质纹理图像(这里跟BRDF无关,通常我们讲到材质一般指的是SVBRDF,但是这里的材质指的只是纹理)、用户为拍摄图像指定的遮罩区域&am…

饿了么el-upload上传组件报错:TypeError: ***.upload.addEventListener is not a function

在本地上传没有报这个错误,部署到服务器后会报这个错误,一开始以为是服务器配置等什么原因,但是一想这个报错应该还是在前端,接口都还没请求,不可能到后台去,后面搜了好几个AI也没有找到想要的答案或解决方…

淘宝直播与开源链动2+1模式AI智能名片S2B2C商城小程序的融合发展研究

摘要:本文聚焦于淘宝直播这一以“网红”内容为主的社交电商平台,深入分析其特点与流量入口优势。同时,引入开源链动21模式AI智能名片S2B2C商城小程序这一新兴概念,探讨二者融合的可能性与潜在价值。通过分析融合过程中的技术、市场…

【macos用镜像站体验】Claude Code入门使用教程和常用命令

一、下载安装nodejs # macOS 用户安装nodejs brew update brew install node二、安装官方Claude Code # 安装 Claude Code npm install -g anthropic-ai/claude-code # 查看版本 claude --version三、正式使用(国内镜像站) 今天发现的一个镜像站&…

算法学习笔记:11.冒泡排序——从原理到实战,涵盖 LeetCode 与考研 408 例题

在排序算法的大家族中,冒泡排序是最基础也最经典的算法之一。它的核心思想简单易懂,通过重复地走访待排序序列,一次比较两个相邻的元素,若它们的顺序错误就把它们交换过来,直到没有需要交换的元素为止。虽然冒泡排序的…

Linux小白学习基础内容

记录第一天重新学习2025/7/10 15:467/10 17:02这里面一个命令带多个参数举例(多个参数之间用空格隔开)ls(命令) ~ / /etc/(参数) :这里就是同时查看主机的家目录,根目…

从零开始搭建深度学习大厦系列-2.卷积神经网络基础(5-9)

(1)本人挑战手写代码验证理论,获得一些AI工具无法提供的收获和思考,对于一些我无法回答的疑问请大家在评论区指教; (2)本系列文章有很多细节需要弄清楚,但是考虑到读者的吸收情况和文章篇幅限制,选择重点进行分享&…