当前位置: 首页 > news >正文

智能听觉:从任务特定的机器学习到基础模型

 关键词:计算机听觉、音频基础模型、多模态学习、声音事件检测

        声音无处不在,弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声,浓缩咖啡机中蒸汽的嘶嘶作响,午后阳光下昆虫振翅的嗡嗡声,金属屋顶上雨滴跳跃的滴答声,还有司机因急躁而按下的愤怒喇叭声——这些都是我们日常生活中不可或缺的声音景致。这些声音携带着丰富的信息,从它们起源的状态,到所处的位置,再到对偶然路过听众的意义,无一不透露着生活的点滴。我们天生便擅长捕捉并处理这些声音信息,尽管其他感官可以有意地忽略,但声音却是无法忽视的存在。它是我们耳朵探知世界、感受持续喜悦或烦恼的关键途径。

      因此,机器也必须能够听。这种能力可以为在现实世界中运作的人工智能代理解锁许多关键功能——尤其是当这些代理具有实体形式时。它还可以帮助代理定位自身并跟踪环境中的实体,即使在它们已经超出了其直接视野之后。这些能力对于广泛的应用非常有用,包括被动监控环境的物联网设备,需要密集和时间准确的意识的自动驾驶代理,或者从额外上下文中受益的智能助手。

1 概述

1.1 声景分类 (ASC)

日常音频分析最基本的任务是声学场景分类(ASC),旨在将整个声音场景分类到预定义的类别中。例如,将一段包含鸟鸣、人声和车辆行驶的音频片段分类为“户外”或“城市街道”。

1.1.1 数据集

常用的数据集包括 TAU Urban acoustic scenes 2019、Cochlscene 等,这些数据集包含来自不同环境的音频片段,并标注了相应的声景类别。

1.1.2 挑战与机遇

  • 类别层次结构: 传统方法通常使用扁平的类别层次结构,难以处理语义相似但声学特征不同的声音类别。
  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的声景类别。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地理解和分类声景。

1.2 声音事件分类 (SEC)

 将单个声音源分类到预定义的类别中。例如,将一段包含狗叫声的音频片段分类为“狗叫声”。

1.2.1 数据集

常用的数据集包括 AudioSet strong、TUT Sound Events、DESED 等,这些数据集包含标注了声音事件类别和时间的音频片段。

1.2.2 挑战与机遇

  • 类别层次结构: 与声景分类类似,声音事件分类也面临类别层次结构的问题。
  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的声事件类别。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地理解和分类声音事件。

1.3 音频标记

将多个并发声音源分类到预定义的类别中。例如,将一段包含鸟鸣、人声和车辆行驶的音频片段标记为“鸟鸣”、“人声”和“车辆行驶”。

1.3.1 数据集

常用的数据集包括 AudioSet、FSD50k、ESC-50 等,这些数据集包含标注了声音事件类别的音频片段。

1.3.2 挑战

  • 类别层次结构: 与声景分类和声音事件分类类似,音频标记也面临类别层次结构的问题。
  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的声事件类别。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地理解和标记声音事件。

1.4 声音事件检测

识别多个声音源及其时间活动。例如,检测音频中狗叫声的开始时间和结束时间。

1.4.1 数据集

常用的数据集包括 AudioSet strong、TUT Sound Events、DESED 等,这些数据集包含标注了声音事件类别和时间信息的音频片段。

1.4.2 挑战与机遇

  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的声事件类别和时间信息。
  • 多音源: 处理多音源环境是一个挑战,需要模型能够区分和识别不同声音源。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地识别和检测声音事件。

1.5 声音状态和特征预测

   预测特定声音源的状态或特征。例如,预测车辆行驶时的状态(加速、减速、匀速)或特征(新、旧、柴油、电动)。

1.5.1 数据集

常用的数据集包括 MAVD、RWCP 等,这些数据集包含标注了声音源状态或特征的音频片段。

1.5.2 挑战与机遇

  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的声源状态和特征。
  • 主观性: 声源状态和特征的标注具有主观性,不同的人可能会有不同的标注结果。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地预测声音源的状态和特征。

1.6 音频描述

生成描述音频场景和声音源的完整句子。例如,描述一段包含狗叫声、人声和车辆行驶的音频片段为“一只狗在叫声,一个人在说话,一辆车在行驶”。

1.6.1数据集

常用的数据集包括 Clotho、AudioCaps 等,这些数据集包含人类标注的音频描述。

1.6.2 挑战与机遇

  • 描述多样性: 音频描述可以有很多种方式,不同的人可能会有不同的描述。
  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的音频描述。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而生成更丰富和更准确的音频描述。

1.7 音频问答

回答与音频文件相关的自然语言问题。例如,回答“这段音频是什么声音?”或“这段音频中发生了什么?”。

1.7.1 数据集

常用的数据集包括 ClothoAQA、OpenAQA 等,这些数据集包含人类标注的音频描述和问题/答案对。

1.7.2 挑战

  • 问题多样性: 音频问答可以有很多种类型的问题,不同的问题需要不同的答案。
  • 数据标注: 数据标注工作量大,且难以覆盖所有可能的音频问答问题。
  • 机遇: 基础模型可以学习更复杂的层次结构,并利用其强大的知识表示能力,从而更好地回答音频问答问题。

2 传统训练方法

2.1 监督分类

传统上,声音事件或声学场景分类的典型方法是使用直接的监督训练 ,现在通常是深度神经网络(DNN),使用音频及其相应的注释示例进行训练,以学习将呈现给它的声学信息(以声学特征的形式)与要识别的目标类别之间的映射。

2.1.1 基本原理

  • 使用已标记的音频数据和对应的标签来训练机器学习模型。
  • 模型学习将音频特征映射到目标类别。
  • 通过特征提取和分类器等模块进行训练。
  • 常用的特征提取方法包括短时傅里叶变换 (STFT) 和梅尔频率倒谱系数 (MFCC)。

2.1.2 优缺点

2.1.2.1 优点

  • 方法简单易懂,易于实现。
  • 模型性能稳定,可预测性强。
  • 适用于数据量充足的情况。

2.1.2.2 缺点

  • 需要大量标记数据,成本高。
  • 模型泛化能力有限,难以应对新任务。
  • 无法利用其他领域的知识。

2.2 迁移学习

近年来,一种更常见的方法依赖于迁移学习,即在一个与任务相关的大量数据上训练网络,并用下游任务数据对其进行微调,后者通常规模较小。这种方法涉及在一个特定的上游任务上训练模型,例如音频标记,对于该任务有大量的数据集可用,然后在特定的下游任务上进一步训练模型。这个过程,称为微调,通过利用之前学习的权重,使模型能够适应新任务,并因此利用了在初始训练阶段识别相关特征的能力。

2.2.1 基本原理

  • 使用在相关任务上训练的大型模型(如 PANNs 或 WAV2VEC2.0)。
  • 在目标任务上微调模型,以适应特定任务。
  • 利用预训练模型学习到的通用特征,提高模型性能。

2.2.2 优缺点

2.2.2.1 优点

  • 利用预训练模型的知识,提高模型泛化能力。
  • 减少标记数据需求,降低成本。
  • 可以利用其他领域的知识。

2.2.2.2 缺点

  • 预训练模型可能存在偏差,影响模型性能。
  • 微调过程可能需要大量计算资源。
  • 难以适应与预训练任务差异较大的新任务。

3 音频基础模型

       音频基础模型基于标准的深度学习和迁移学习,但它们的规模导致了新的涌现能力,它们在如此多任务上的有效性激励了同质化。

音频基础模型的两种主要方式

3.1 基本组成

3.1.1 音频编码器(Audio Encoder)

负责将原始音频波形转换成一系列特征表示或“嵌入”(embeddings),这些嵌入能够捕捉音频信号的重要特征。

3.1.2 文本编码器(Text Encoder)

如果模型需要处理语言信息,文本编码器将文本转换为模型可以理解的嵌入形式。

3.1.3 预训练语言模型(Pretrained Language Model, LLM)

一个大型的语言模型,通常在大量文本数据上进行预训练,能够理解和生成自然语言文本。

3.1.4 自监督学习任务(Self-Supervised Learning Tasks)

在预训练阶段,模型通过执行如预测掩码部分(masked parts)的任务来学习音频和文本数据的表示。

3.1.5 接口或适配器(Interface or Adapters)

允许不同组件之间进行有效的信息交换,例如将音频嵌入映射到与文本嵌入相同的空间,以便语言模型可以处理。

3.1.6 融合方法(Fusion Methods)

决定了如何将音频和文本信息结合在一起,可以是早期融合(在输入阶段结合信息)或深度融合(在模型的中间层结合信息)。

3.1.7 微调数据集(Finetuning Dataset)

用于微调预训练模型,使其适应特定的下游任务,如声音事件检测或音频字幕生成。

3.1.8 输出解码器(Output Decoder)

将模型的内部表示转换为最终输出,例如将嵌入转换回文本或生成音频描述。

3.1.9 提示(Prompts)

用于指导模型执行特定任务的语言提示,可以是简单的问题或更复杂的指令。

3.1.10 评估机制(Evaluation Mechanisms)

用于衡量模型性能的标准和工具,包括准确性、适当性和其他与任务相关的指标。

3.1.11 多模态能力(Multimodal Capabilities)

如果模型设计为处理多种类型的输入(如音频和视觉数据),则需要具备将这些不同模态的信息整合在一起的能力。

3.1.12 检索增强(Retrieval-Augmented Generation)

结合外部知识库来增强模型的生成能力,特别是在处理特定领域或高度专业化的查询时。

检索增强生成(Retrieval-Augmented Generation, RAG)的工作原理

3.1.13 指令微调(Instruction Finetuning)

使用特定的指令对模型进行微调,使其能够按照给定的格式或风格生成输出。

3.2 核心优势

3.2.1 通用性

AFMs 通常基于大型语言模型(LLMs),如 GPT-3 或 LLaMA,它们在预训练阶段学习了大量的文本数据,因此具备丰富的语言知识和推理能力。通过将音频信息转换为文本 token,AFMs 可以利用这些知识来理解和描述音频内容。

3.2.2 多任务能力

AFMs 可以通过指令微调(Instruction Fine-tuning)来适应不同的音频分析任务,例如:

声场景分类(ASC):将整个声音场景分类到预定义的类别中,例如“室内”、“户外”、“交通”等。

  • 声音事件检测(SED):识别和标记音频中的单个声音事件,并可选地提供它们的时间信息。
  • 声音状态和特征预测:识别声音源的特征,例如“汽车加速”、“门关闭”等。
  • 音频字幕生成:生成描述音频内容的文本字幕,例如“一只狗在门口叫”。
  • 音频问答:根据音频内容回答与声音相关的自然语言问题,例如“这是音乐吗?”
  • 空间定位和跟踪:估计声音源的位置和时间变化。
  • 环境参数估计:估计空间的物理参数,例如房间大小或回声时间。

3.2.3 易于交互

AFMs 可以通过自然语言指令与用户进行交互,这使得它们更加易于使用和理解。

3.2.4 迁移学习

AFMs 可以利用在预训练阶段学习到的知识来适应新的任务,即使数据量有限也可以取得不错的效果。

3.3 现有音频模型

模型名称

模块

使用的数据

融合类型

能力

是否公开可用

Pengi

音频编码器: CLAP, 文本编码器: CLAP

前缀层: 使用音频和文本

AudioSet, FSD50K, CochlScene, 等

早期

音频字幕生成,音频问题回答,声音事件分类等

APT-LLM

音频编码器: Audio-MAE

声学适配器: APT LLM

AudioSet, Wavcaps, AudioCaps, 等

早期

音频标记,声音事件分类,自然语言-音频推理等

LTU

音频编码器: AST LoRA适配器LLM: LLaMA-7b

OpenAQA

早期

音频标记,音频字幕生成,音频推理等

LTU-AS

音频编码器: Whisper TLTR

投影层LoRA适配器: LLM

Open-ASQA

早期

音频字幕生成,声音事件分类,音频问题回答等

QWEN-Audio

音频编码器: Whisper-L-v2, LLM: Qwen

CoVOST 2, Macaw-LLM 指令数据集, 等

早期

音频字幕生成,声音事件分类,声学场景分类等

Salmonn

音频编码器: Whisper, BEATs, Q-Former

LoRA适配器: LLM

LibriSpeech, GigaSpeech M-set, WavCaps, 等

早期

音频字幕生成,语音识别,语音情绪识别等

BAT

音频编码器: Spatial-ASL,

投影层LLM: LLaMA2

SpatialSoundQA

早期

声音事件分类,声音事件检测和空间定位,音频问题回答

Audio Flamingo

音频编码器: CLAP

投影层LLM: opt-iml-max-1.3b

WavCaps, Macs, SoundDescs, 等

早期

深度音频字幕生成,声音事件分类,音频问题回答

UniAudio 1.5

音频编码器: LLM-Codec

LLM: LLaMA2-7b

MLS, AudioCaps

早期

声音事件分类,语音情绪分类,文本到语音生成等

Gemini 1.5 Pro

N/A

N/A

N/A

音频相关*

GPT-4o9

N/A

N/A

N/A

音频相关*

LauraGPT

基于Encodec的音频编码器LLM: Qwen

AISHELL-1, AISHELL-2, WenetSpeech, 等

早期

自动语音识别,口语理解,语音到文本翻译等

4 未来展望

4.1 大规模基准测试

  • 建立通用音频分析基准: 目前缺乏一个用于比较不同音频基础模型性能的通用基准,这限制了模型的比较和评估。未来需要建立一个涵盖不同任务、数据集和模型架构的基准,以促进模型的可比性和透明度。
  • 避免数据泄漏: 避免使用训练和测试数据集之间共享数据源的情况,例如使用 AudioSet 衍生的数据集来评估基于 AudioSet 训练的模型,以防止数据泄露。
  • 考虑多音源环境: 实际环境中的声音场景通常包含多个声音源,需要考虑多音源环境下的模型性能。

4.2 音频生成

  • 利用基础模型的生成能力: 基础模型不仅可以理解音频,还可以生成音频。这可以用于创建逼真的声音效果、生成音乐、甚至进行语音合成。
  • 音源化解释: 利用基础模型的音频生成能力,可以提供音源化解释,例如用声音来解释图像或文本,增强人工智能系统的可解释性和可信度。

4.3 多模态融合

  • 视觉-语音-语言模型融合: 将视觉、语音和语言模型融合,可以创建能够处理更复杂任务的多模态模型,例如图像描述、视觉问答和图像生成。
  • 音频-语言模型融合: 将音频和语言模型融合,可以创建能够更好地理解音频内容的多模态模型,例如更准确的音频分类、音频描述和音频问答。

4.4 超越人类评估

未来基础模型可能能够识别人类无法听到的声音,例如超声波或次声波。需要开发新的评估方法来衡量这些模型的能力,例如通过监测动物或使用外部传感器。

5 常用数据集列表定性观察

数据集

评论

AudioSet

AudioSet是一个大型(约200万实例)的音频(视觉)数据集,收集自YouTube。原始用户标签已由人工评估者根据527个类别的层次化本体论进行验证。每个实例对应一个10秒的剪辑,平均有2.7个标签,显示出低度的多声源性。请注意,原始数据集包括原始视频的ID,而不是视频本身;鉴于平台不断有内容被移除,AudioSet数据集的大小一直在持续缩小。此外,不同的组可能根据下载日期拥有稍有不同的数据集版本。数据集还部分存在缺失标签的问题。

AudioSet-SL

这是AudioSet数据集的一个较小子集(67k实例),已进一步在帧级别上对剪辑中出现的所有事件进行了注释。

Freesound

Freesound是一个在线声音存储库,用户可以上传带有多个标签和简短描述的音频录音。目前拥有超过60万个短剪辑。录音倾向于集中在单一声源上(没有或最小限度地存在其他声源)。

FSD50K

FSD50K是从Freesound中选出的一个小规模(约51k实例)剪辑集合,已根据AudioSet本体论的一个子集(200个类别)由人工评估者进行了弱注释。

CochlScene

CochlScene是一个通过韩国的智能手机用户众包收集的数据集。用户被要求使用他们的手机提交符合一小套标签的数据。他们还被要求验证其他用户收集的数据。

AudioCaps

AudioCaps包含一个较小的AudioSet子集(约46k),具有人工生成的字幕。注释者在字幕过程中有原始AudioSet类别的单词提示,并且在不确定音频内容时可以访问视频流。

Clotho

Clotho包含来自Freesound的约5k实例的字幕。在注释过程中,评估者没有得到任何提示。

ClothoAQA

ClothoAQA是Clotho的一个子集(约2k实例),包含问题-答案对。它只包含是/否和单词答案的问题。问题是人为注释者在一个三阶段过程中制定的;后续阶段的评估者可以访问前一阶段的问题,并被指示制定不同的问题。每个问题由与提出问题不同的注释者回答。

WavText5K

WavText5K是一个小规模数据集,包含来自两个在线存储库的音频剪辑,这些存储库提供了许可的音效。剪辑由原始上传者进行注释。这些存储库针对“音效”专家市场,因此可能包含使用高质量麦克风收集的典型声音,干扰或多声源性很小。

SoundDescs

SoundDescs与WavText5K类似,但来自不同的非商业许可源。

MACS

MACS是一个小型的音频场景分类子集,包含人工注释的字幕。由于原始重点是记录自然声音景观,它的多声源性比其他字幕数据集要高。仅使用了三种基本的声音景观类别。原始音频是使用一小套录音设备收集的,录音位于几个欧洲城市中的众多位置。

WavCaps

WavCaps是一个大规模(约40万)自动字幕数据集。字幕是使用ChatGPT(基于GPT-3的一个版本)生成的,以重新制定数据集来源中的原始标签或描述。

NLAR

在预先筛选ClothoAQA的原始注释以去除错误注释后,作者使用ChatGPT总结每个字幕的声学特征。随后,他们使用ChatGPT创建与原始音频及其预处理字幕相关的问题对。

OpenAQA

OpenAQA是一个大型开放式问答数据集。数据集来自多个领域,字幕是使用ChatGPT从原始标签/字幕/描述自动生成的。

SpatialSoundQA

从AudioSet获取的原始音频是使用SoundSpaces 2.0模拟器[108]进行渲染的,房间脉冲响应(RIR)来自90个扫描建筑。问题是通过模板创建的,然后用GPT4重新表述。

LAION-630k

该数据集是从其来源通过聚合音频剪辑及其随附的——上传者定义的——描述派生而来。

NonSpeech7K

NonSpeech7k是一个人类非语言声音(例如咳嗽)的精选集,已经过人工验证并在帧级别上进行了强注释。

Chime-Home

Chime-Home是一个小数据集,使用单个设备在单个环境中收集。录音被分割成不重叠的4秒块,然后由人工评估者对多个声音事件进行注释。

Sonyc-UST

Sonyc-UST是一个小规模的人工注释标签数据集。数据是从美国纽约市的多个位置使用相同的录音设备录制的。

相关文章:

智能听觉:从任务特定的机器学习到基础模型

关键词:计算机听觉、音频基础模型、多模态学习、声音事件检测 声音无处不在,弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声,浓缩咖啡机中蒸汽的嘶嘶作响,午后阳光下昆虫振翅的嗡嗡声,金属屋顶上雨滴跳跃的滴答…...

14、如何⽤DDD设计微服务代码模型

在完成领域模型设计后,接下来我们就可以开始微服务的设计和 落地了。在微服务落地前,⾸先要确定微服务的代码结构,也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后,我们才可以将 领域对象映射到…...

ArcGIS Pro SDK (九)几何 12 多面体

ArcGIS Pro SDK (九)几何 12 多面体 文章目录 ArcGIS Pro SDK (九)几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…...

二次元手游《交错战线》游戏拆解

交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词: 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点: 符合目标群体审美的原画。 三、核心趣味: 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…...

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身…...

Java开发之Redis

1、非关系型数据库、快、高并发、功能强大 2、为什么快?内存单线程 非阻塞的IO多路复用有效的数据类型/结构 3、应用:支持缓存、支持事务、持久化、发布订阅模型、Lua脚本 4、数据类型: 5 种基础数据类型:String(字…...

Java面试八股之 Spring Bean的生命周期

Spring Bean的生命周期 实例化(Instantiation):Spring容器根据Bean定义信息创建Bean的实例,通常通过无参构造函数进行。 依赖注入(Dependency Injection,DI):Spring容器按照Bean定…...

SQL中的函数

目录 前言 一、系统内置函数 1、数学函数 2、日期和时间函数 3、聚合函数 4、字符串函数 二、自定义函数 1、标量函数的创建与调用 2、内嵌表值函数的创建与调用 3、多语句表值函数的创建与调用 前言 函数是由一个或多个 T-SQL 语句组成的子程序,可用于封…...

VSCode | 修改编辑器注释的颜色

1 打开VsCode的设置进入settings.json 2 添加如下代码 "editor.tokenColorCustomizations": {"comments": "#17e917"},3 保存即可生效...

媒体邀约专访与群访的区别?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体邀约中的专访与群访在多个方面存在显著差异,以下是对这两种采访方式的详细比较: 一、定义与形式 专访: 定义:专访是指由媒体记者对单…...

Pycharm2024最新版community社区版下载安装配置,快速上手

第一步:下载 方法1:官网链接 https://www.jetbrains.com/pycharm/download/?sectionwindows .方法2:百度网盘 链接:https://pan.baidu.com/s/1ic2N5hUQ2m1Kmyr5nK9Jxw?pwd76dt 提取码:76dt --来自百度网盘超级…...

服务器选择租用还是托管?托管和租用哪个比较划算

在构建或扩展IT基础设施时,服务器作为关键组件,其选择方式——租用或托管,直接关系到企业的运营成本、灵活性、安全性及长期发展战略。本文将从技术、经济、安全等多个维度,深入解析这两种方案的优缺点,并探讨在何种情…...

智能制造·数字化工厂建设规划方案(65P)

获取完整PPT见下图 更多有关华为研发管理/IPD、MBSE、PLM、ERP、MES、数据治理、数字样机等方面免费解决方案、资料获取,请见下图...

ACM中国图灵大会专题 | 图灵奖得主Manuel Blum教授与仓颉团队交流 | 华为论坛:面向全场景应用编程语言精彩回顾

ACM 中国图灵大会(ACM Turing Award Celebration Conference TURC 2024)于2024年7月5日至7日在长沙举行。本届大会由ACM主办,in cooperation with CCF,互联网之父Vinton Cerf、中国计算机学会前理事长梅宏院士和廖湘科院士担任学术…...

k8s 公共服务

修改named.conf。修改第13行和第21行 下面是 named.rfc1912 修改位置,在最后 所以用cp -p 复制文件,保留权限 nslookup 回车,server是看哪个dns 在起作用 dns服务器要配置给所有公共服务节点和 k8s 节点 就在网络文件加个DNS2就行了&…...

【数据分析详细教学】全球气温变迁:一个多世纪的数据分析

全球气温变迁:一个多世纪的数据分析 1. 数据集选择与获取 数据可以从NASA的GISTEMP数据集获取,通常提供的格式有TXT和CSV。我们假设数据是以CSV格式提供。 2. 数据预处理 使用Python的pandas库读取数据并进行预处理。 import pandas as pd# 加载数…...

AV1技术学习:Reference Frame System

一、Reference Frames AV1 Codec 允许在其解码的帧缓冲区中最多允许保存 8 帧。对于一个编码帧,可以从解码的帧缓冲区中选择任意 7 个帧作为它的参考帧。编码端可以通过比特流显式地传输参考帧索引,范围从 1到 7。原则上,参考帧索引 1-4 为当…...

数学建模(7)——Logistic模型

一、马尔萨斯人口模型 import numpy as np import matplotlib.pyplot as plt# 初始人口 N0 100 # 人口增长率 r 0.02 # 时间段(年) t np.linspace(0, 200, 200)# 马尔萨斯人口模型 N N0 * np.exp(r * t)# 绘图 plt.plot(t, N, labelPopulation) plt.…...

“微软蓝屏”事件,给IT行业带来的宝贵经验和教训

“微软蓝屏”事件是指2024年7月19日发生的一次全球性技术故障,主要涉及微软视窗(Windows)操作系统及其相关应用和服务。 以下是对该事件的详细解析: 一、事件概述 发生时间:2024年7月19日事件影响:全球多个…...

QT总结——图标显示坑

最近写代码遇到一个神仙大坑,我都怀疑我软件是不是坏了,这里记录一下。 写qt工程的时候我们一般会设置图标,这个图标是窗体的图标同时也是任务栏的图标,但是我发现生成的exe没有图标,这个时候就想着给他加一个图标&…...

SQL 注入漏洞详解 - Union 注入

1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,…...

Qt创建自定义组件并且promote to之后导致编译错误(CMake)

创建自定组件并且加入到全局(勾选"Global include"选项)后,重新编译,元对象编译器生成的ui_xxxx.h文件中会新加入自定义组件的头文件: 如图所示,编译器提示找不到自定义组件的头文件: Solution: 在CMakeL…...

告别写作瓶颈,4款AI协作工具助你迸发灵感

想要一个可以理解你思路,捕捉你灵感,并且帮你将这些内容转化为高质量文本的工具吗?现下大火的ai智能写作就能做到。 1 宙.语AI 传送门:https://ailjyk.com/pc 这个工具也是一种在线的AI工具。他可以写的文章种类非常多&#…...

java30-Shiro

概述 解决认证和授权 基本使用 package com.xpc.simple;import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.realm.SimpleAccountRealm; import o…...

【linux驱动开发】卸载驱动时报错:Trying to free already-free IRQ 0

【linux驱动开发】free_irq时报错:Trying to free already-free IRQ 0 卸载驱动时报错Trying to free already-free IRQ 0 第一次加载卸载驱动没有任何问题。第二次加载驱动,按键中断触发失效,卸载驱动时报错:Trying to free already-free IRQ 0 看了…...

SpringBoot如何解决yml明文密码问题

​ 博客主页: 南来_北往 🔥系列专栏:Spring Boot实战 前言 在现代的软件开发中,安全性是一个重要的考量因素。对于使用SpringBoot框架开发的应用程序而言,敏感信息如数据库密码、API密钥等通常存储在YAML配置文件中&#xf…...

SDL常用结构体和函数接口

1. 结构体 SDL_Window:SDL库中用于表示应用程序窗口的结构体。它封装了一个操作系统窗口的所有属性和功能,是创建图形用户界面的基础。通过创建一个SDL_Window,开发者可以定义窗口的初始大小、位置、是否全屏、是否具有边框等属性&#xff0…...

【数据结构】AVL树(图文解析 + 代码实现)

目录 1、AVL树的概念 2、AVL树结点的定义 3、AVL树的插入 4、AVL树的旋转 4.1 左单旋 4.2 右单旋 4.3 右左双旋 4.4 左右双旋 5、AVL树的验证 6、AVL树的性能 前面对map/multimap/set/multiset进行了简单的介绍,会大仙,这几个容器有个共同点是…...

HTML(六)——HTML表单和框架

HTML 表单 HTML 表单用于收集用户的输入信息,是一个包含表单元素的区域 HTML 表单表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到 Web 服务器。 HTML 表单通常包含各种输入字段、复选框、单选按钮、下拉列表等元素。 …...

【Qt 】JSON 数据格式详解

文章目录 1. JSON 有什么作用?2. JSON 的特点3. JSON 的两种数据格式3.1 JSON 数组3.2 JSON 对象 4. Qt 中如何使用 JSON 呢?4.1 QJsonObject4.2 QJsonArray4.3 QJsonValue4.4 QJsonDocument 5. 构建 JSON 字符串6. 解析 JSON 字符串 1. JSON 有什么作用? &#x…...

路由表与IP数据报转发:基础小白指南

目录 1. 路由表的基本概念 2. 路由表中的默认路由 3. IP数据报的转发流程 4. 路由聚合 5. 最长前缀匹配 总结 在网络世界中,IP数据报的转发是如何进行的? 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实…...

python—selenium爬虫

文章目录 Selenium与Requests对比一、工作原理二、功能特点三、性能表现 下载对应驱动1.首先我们需要打开edge浏览器,打开设置,找到“关于Microsoft Edge”,点击进入查看浏览器版本。2.查找版本之后,搜索edge驱动下载,…...

Mysql - 索引

目录 一、存储引擎 二、索引 索引结构 索引分类 索引语法 联合索引 前缀索引 索引使用规则 最左前缀法则 范围查询使索引失效 字段做运算操作索引失效 字符串字段不加单引号索引失效 字段做前模糊查询索引失效 or连接条件索引失效 数据发布情况索引失效 指定使用…...

从课本上面开始学习的51单片机究竟有什么特点,在现在的市场上还有应用吗?

引言 51单片机,作为一种经典的微控制器,被广泛应用于各种嵌入式系统中。尽管如今ARM架构的高性能低成本单片机在市场上占据主导地位,但51单片机凭借其独特的优势依然在某些领域保持着应用价值。本文将深入探讨51单片机的特点、架构、应用以及…...

uniapp中出现Uncaught runtime errors

项目中运行出现上面的错误信息,使用uniapp发现,其实我只是跨域了,控制台报错,但是不想屏幕上显示; 解决办法是在vue.config.js增加如下配置即可 devServer: {client: {overlay: false,errors:true},}, 错误信息也不想…...

数字信号处理基础知识(二)

在介绍完“离散时间序列”基本概念和性质后,实际上就已经踏入了“数字信号处理”这门学科的学习征程,这篇文章里主要去说明“线性时不变系统”的定义概念和探讨“周期采样”的注意细节,相信更加理解这些概念定义和底层逻辑,对于大…...

人生低谷来撸C#--015 C# 属性(Property)

1、概念 在C#中,属性(Property)是一种特殊的成员,它提供了一种灵活的机制来访问和修改对象的状态(即类的字段)。属性结合了字段和方法的特性,使得数据的访问和修改更加安全和便捷。下面我用一个…...

面试题003:面向对象的特征——封装性

Java规定了4种权限修饰,分别是:private、缺省、protected、public。我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。 封装性在程序中的体现: 场景1:私有化(private)类的属性,提供公共(pub…...

森林防火,森林防火智能储水罐_鼎跃安全

森林防火是保护森林的重要措施,每年发生的森林火灾都严重威胁着自然安全,对社会经济和生态造成严重的破坏。为了切实有效地预防并扑灭森林火灾,森林防火智能储水罐已成为现代森林防火体系中的重要装备。 储水罐内置传感器和控制系统&#xff…...

虚幻引擎,体积雾、体积光、镜头泛光

1、体积雾 这里介绍的是用于地面的体积雾效果,效果如图1-1: 图1-1 首先,需要场景中存在指数级高度雾并开启体积雾(如图1-2)。然后创建材质,材质域选择“体积”,混合模式选择“Additive”。材质节…...

Python 机器学习求解 PDE 学习项目——PINN 求解二维 Poisson 方程

本文使用 TensorFlow 1.15 环境搭建深度神经网络(PINN)求解二维 Poisson 方程: 模型问题 − Δ u f in Ω , u g on Γ : ∂ Ω . \begin{align} -\Delta u & f \quad & \text{in } \Omega,\\ u & g \quad & \text{on } \Gamma:\p…...

微信小程序删除滑块 SwiperCell 自动收起 Van weapp van-swipe-cell 滑块自动收起 点击页面也自动收起滑块

在当前页面整个 view 中 给页面绑定 点击事件bindtap"onSwipeCellPage"给 van-swipe-cell 组件设置 id (for循环可以添加 id"swip-cell-{{item.id}}" )van-swipe-cell 组件 添加属性 当用户打开滑块时触发 bind:open"swiperCel…...

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境:192.168.3.180 kail环境:192.168.203.12【NAT…...

Redis核心技术与实战学习笔记

Redis核心技术与实战学习笔记 最近想沉下心来看下redis,买了蒋德钧老师的《Redis 核心技术与实战》,这里记录一些学习笔记 希望能够坚持下去有想一起学习的童鞋,可以点击跳转到文章尾部获取学习资源,仅供学习不要用于任何商业用途!!! redis知识全景图 …...

力扣经典题目之->设计循环队列 的超详细讲解与实现

一:题目 二:思路讲解 前提: a:本文采取数组来实现队列去解决题目 b:开辟k1个空间,front指向队首,rear指向队尾的后一个,rear这样会更好的判空和判满 以下根据pop和push感受满和空…...

【数据结构】排序算法——Lesson2

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...

Ubuntu编译ffmpeg并添加cmake工程

文章目录 前言前提须知为什么要自己编译 FFmpeg前提软件包与工具的安装编译ffmpeg写CMakeList.txt包含ffmpeg到我们项目中 总结 前言 FFmpeg 是一个领先的多媒体框架,能够解码、编码、转码、复用、解复用、流化、过滤和播放几乎所有人类和机器创造的内容。FFmpeg 包…...

Vue.js[组件(Component)]

什么是: 拥有专属的HTML,CSS,数据的,可重用的页面独立区域 一个页面由多个组件聚合而成一个大型的页面 在代码层面上,一个组件就是一个可反复使用的自定义标签。 vs jq插件 vs boot组件 boot插件: 虽然可重用,但仍需…...

基于微信小程序+SpringBoot+Vue的校园自助打印系统(带1w+文档)

基于微信小程序SpringBootVue的校园自助打印系统(带1w文档) 基于微信小程序SpringBootVue的校园自助打印系统(带1w文档) 管理信息可以处理复杂的信息从而提高用户的工作效率,减少失误。所以本基于Vue和微信小程序的校园自助打印系统的开发非常有意义,本系…...

qt设置过滤器

1.创建事件过滤器类,在主窗口中安装事件过滤器 class PasteFilter : public QObject {Q_OBJECTpublic:PasteFilter(QObject *parent nullptr) : QObject(parent) {}protected:bool eventFilter(QObject *obj, QEvent *event) override {if (event->type() QEv…...