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

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)

​​​​​​​

目录

一、引言 

二、自动语音识别(automatic-speech-recognition)

2.1 概述

2.2 技术原理

2.2.1 whisper模型

2.2.2 Wav2vec 2.0模型

2.3 pipeline参数

2.3.1 pipeline对象实例化参数​​​​​​​

2.3.2 pipeline对象使用参数 

2.3.3 pipeline对象返回参数

2.4 pipeline实战

2.4.1 facebook/wav2vec2-base-960h(默认模型)

 2.4.2 openai/whisper-medium

2.5 模型排名

三、总结


一、引言 

 pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks),共计覆盖32万个模型。

今天介绍Audio音频的第二篇,自动语音识别(automatic-speech-recognition),在huggingface库内共有1.8万个音频分类模型。

二、自动语音识别(automatic-speech-recognition)

2.1 概述

自动语音识别 (ASR),也称为语音转文本 (STT),是将给定音频转录为文本的任务。主要应用场景有人机对话语音转文本、歌词识别、字幕生成等。

2.2 技术原理

自动语音识别主要原理是音频切分成25ms-60ms的音谱后,采用卷机网络抽取音频特征,再通过transformer等网络结构与文本进行对齐训练。比较知名的自动语音识别当属openai的whisper和meta的Wav2vec 2.0。

2.2.1 whisper模型

语音部分:基于680000小时音频数据进行训练,包含英文、其他语言转英文、非英文等多种语言。将音频数据转换成梅尔频谱图,再经过两个卷积层后送入 Transformer 模型。

文本部分:文本token包含3类:special tokens(标记tokens)、text tokens(文本tokens)、timestamp tokens(时间戳),基于标记tokens控制文本的开始和结束,基于timestamp tokens让语音时间与文本对其。

 不同尺寸模型参数量、多语言支持情况、需要现存大小以及推理速度如下

2.2.2 Wav2vec 2.0模型

Wav2vec 2.0是 Meta在2020年发表的无监督语音预训练模型。它的核心思想是通过向量量化(Vector Quantization,VQ)构造自建监督训练目标,对输入做大量掩码后利用对比学习损失函数进行训练。模型结构如图,基于卷积网络(Convoluational Neural Network,CNN)的特征提取器将原始音频编码为帧特征序列,通过 VQ 模块把每帧特征转变为离散特征 Q,并作为自监督目标。同时,帧特征序列做掩码操作后进入 Transformer [5] 模型得到上下文表示 C。最后通过对比学习损失函数,拉近掩码位置的上下文表示与对应的离散特征 q 的距离,即正样本对。

2.3 pipeline参数

2.3.1 pipeline对象实例化参数​​​​​​​

  • 模型(PreTrainedModel或TFPreTrainedModel)— 管道将使用其进行预测的模型。 对于 PyTorch,这需要从PreTrainedModel继承;对于 TensorFlow,这需要从TFPreTrainedModel继承。
  • feature_extractor(SequenceFeatureExtractor)——管道将使用其来为模型编码波形的特征提取器。
  • tokenizer ( PreTrainedTokenizer ) — 管道将使用 tokenizer 来为模型编码数据。此对象继承自 PreTrainedTokenizer。
  • 解码器pyctcdecode.BeamSearchDecoderCTC可选)— PyCTCDecode 的 BeamSearchDecoderCTC 可以传递用于语言模型增强解码。有关更多信息,请参阅Wav2Vec2ProcessorWithLM 。
  • chunk_length_s ( float可选,默认为 0) — 每个块的输入长度。如果chunk_length_s = 0禁用分块(默认)。
  • stride_length_s ( float可选,默认为chunk_length_s / 6) — 每个块左侧和右侧的步幅长度。仅与 一起使用chunk_length_s > 0。这使模型能够看到更多上下文并比没有此上下文时更好地推断字母,但管道会在最后丢弃步幅位,以使最终的重构尽可能完美。
  • 框架str可选)— 要使用的框架,"pt"适用于 PyTorch 或"tf"TensorFlow。必须安装指定的框架。如果未指定框架,则默认为当前安装的框架。如果未指定框架且两个框架都已安装,则默认为 的框架model,如果未提供模型,则默认为 PyTorch 的框架。
  • 设备(Union[ inttorch.device],可选)— CPU/GPU 支持的设备序号。设置为None将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。
  • torch_dtype (Union[ inttorch.dtype],可选) — 计算的数据类型 (dtype)。将其设置为None将使用 float32 精度。设置为 torch.float16torch.bfloat16将在相应的 dtype 中使用半精度。

2.3.2 pipeline对象使用参数 

  • 输入np.ndarraybytesstrdict) — 输入可以是:
    • str即本地音频文件的文件名,或下载音频文件的公共 URL 地址。文件将以正确的采样率读取,以使用 ffmpeg获取波形。这需要系统上安装ffmpeg 。
    • bytes它应该是音频文件的内容,并以相同的方式由ffmpeg进行解释。
    • np.ndarray形状为(n,)类型为np.float32np.float64)正确采样率的原始音频(不再进行进一步检查)
    • dict形式可用于传递任意采样的原始音频sampling_rate,并让此管道进行重新采样。字典必须采用{"sampling_rate": int, "raw": np.array}可选格式"stride": (left: int, right: int),可以要求管道在解码时忽略第一个left样本和最后一个right样本(但在推理时使用,为模型提供更多上下文)。仅用于strideCTC 模型。
  • return_timestamps可选strbool)— 仅适用于纯 CTC 模型(Wav2Vec2、HuBERT 等)和 Whisper 模型。不适用于其他序列到序列模型。

    对于 CTC 模型,时间戳可以采用以下两种格式之一:

    • "char":管道将返回文本中每个字符的时间戳。例如,如果您得到[{"text": "h", "timestamp": (0.5, 0.6)}, {"text": "i", "timestamp": (0.7, 0.9)}],则意味着模型预测字母“h”是在 秒后0.5和 0.6秒之前说出的。
    • "word":管道将返回文本中每个单词的时间戳。例如,如果您得到[{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}],则意味着模型预测单词“hi”是在 秒后0.50.9秒之前说的。

    对于 Whisper 模型,时间戳可以采用以下两种格式之一:

    • "word":与上文相同,适用于字级 CTC 时间戳。字级时间戳通过动态时间规整 (DTW)算法进行预测,该算法通过检查交叉注意权重来近似字级时间戳。
    • True:管道将返回文本中单词片段的时间戳。例如,如果您得到[{"text": " Hi there!", "timestamp": (0.5, 1.5)}],则意味着模型预测“Hi there!” 片段是在 秒后0.51.5秒之前说的。请注意,文本片段指的是一个或多个单词的序列,而不是像单词级时间戳那样的单个单词。
  • generate_kwargsdict可选generate_config)—用于生成调用的临时参数化字典。有关 generate 的完整概述,请查看以下指南。
  • max_new_tokensint可选)— 要生成的最大令牌数,忽略提示中的令牌数。

2.3.3 pipeline对象返回参数

  • 文本str):识别的文本。
  • chunks可选(,List[Dict])当使用时return_timestampschunks将成为一个列表,包含模型识别的所有各种文本块,例如* [{"text": "hi ", "timestamp": (0.5, 0.9)}, {"text": "there", "timestamp": (1.0, 1.5)}]。通过执行可以粗略地恢复原始全文 "".join(chunk["text"] for chunk in output["chunks"])

2.4 pipeline实战

2.4.1 facebook/wav2vec2-base-960h(默认模型)

pipeline对于automatic-speech-recognition的默认模型是facebook/wav2vec2-base-960h,使用pipeline时,如果仅设置task=automatic-speech-recognition,不设置模型,则下载并使用默认模型。

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"from transformers import pipelinespeech_file = "./output_video_enhanced.mp3"
pipe = pipeline(task="automatic-speech-recognition")
result = pipe(speech_file)
print(result)

 可以将.mp3内的音频转为文本:

{'text': "WELL TO DAY'S STORY MEETING IS OFFICIALLY STARTED SOMEONE SAID THAT YOU HAVE BEEN TELLING STORIES FOR TWO OR THREE YEARS FOR SUCH A LONG TIME AND YOU STILL HAVE A STORY MEETING TO TELL"}

 2.4.2 openai/whisper-medium

我们指定模型openai/whisper-medium,具体代码为:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"from transformers import pipelinespeech_file = "./output_video_enhanced.mp3"
pipe = pipeline(task="automatic-speech-recognition", model="openai/whisper-medium")
result = pipe(speech_file)
print(result)

输入为一段mp3格式的语音,输出为

{'text': " Well, today's story meeting is officially started. Someone said that you have been telling stories for two or three years for such a long time, and you still have a story meeting to tell."}

2.5 模型排名

在huggingface上,我们筛选自动语音识别模型,并按下载量从高到低排序:

三、总结

本文对transformers之pipeline的自动语音识别(automatic-speech-recognition)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline使用文中的代码极简的进行自动语音识别推理,应用于语音识别、字幕提取等业务场景。

期待您的3连+关注,如何还有时间,欢迎阅读我的其他文章:

《Transformers-Pipeline概述》

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

《Transformers-Pipeline 第一章:音频(Audio)篇》

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)​​​​​​​

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)​​​​​​​

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio)

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

《Transformers-Pipeline 第二章:计算机视觉(CV)篇》

【人工智能】Transformers之Pipeline(五):深度估计(depth-estimation)

【人工智能】Transformers之Pipeline(六):图像分类(image-classification)

【人工智能】Transformers之Pipeline(七):图像分割(image-segmentation)

【人工智能】Transformers之Pipeline(八):图生图(image-to-image)

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

【人工智能】Transformers之Pipeline(十):视频分类(video-classification)

【人工智能】Transformers之Pipeline(十一):零样本图片分类(zero-shot-image-classification)

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)

《Transformers-Pipeline 第三章:自然语言处理(NLP)篇》

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

【人工智能】Transformers之Pipeline(十四):问答(question-answering)

【人工智能】Transformers之Pipeline(十五):总结(summarization)

【人工智能】Transformers之Pipeline(十六):表格问答(table-question-answering)

【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)

【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)

【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)

【人工智能】Transformers之Pipeline(二十一):翻译(translation)

【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)

《Transformers-Pipeline 第四章:多模态(Multimodal)篇》

【人工智能】Transformers之Pipeline(二十三):文档问答(document-question-answering)

【人工智能】Transformers之Pipeline(二十四):特征抽取(feature-extraction)

【人工智能】Transformers之Pipeline(二十五):图片特征抽取(image-feature-extraction)

【人工智能】Transformers之Pipeline(二十六):图片转文本(image-to-text)

【人工智能】Transformers之Pipeline(二十七):掩码生成(mask-generation)

【人工智能】Transformers之Pipeline(二十八):视觉问答(visual-question-answering)

相关文章:

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)

​​​​​​​ 目录 一、引言 二、自动语音识别(automatic-speech-recognition) 2.1 概述 2.2 技术原理 2.2.1 whisper模型 2.2.2 Wav2vec 2.0模型 2.3 pipeline参数 2.3.1 pipeline对象实例化参数​​​​​​​ 2.3.2 pipeline对象使用参数…...

Linux 工作队列

系列文章目录 Linux内核学习 Linux 知识(1) Linux 知识(2) Linux 工作队列 Linux 内核源代码情景分析(一) Linux 设备驱动程序(二) 文章目录 系列文章目录综述工作(work_…...

程序血缘分析技术在工商银行软件工程中的应用

当前,随着软件领域技术更新换代速度的日益加快,市场需求也变得更加多样化和个性化,业界普遍通过加速产品迭代来满足客户需求,但在此过程中也暴露出一些研发管理痛点问题,如服务和程序类资产信息分散于各个不同的应用和系统中,信息归集费时费力;设计、开发和测试人员无法…...

纯手工(不基于maven的pom.xml、Web容器)连接MySQL数据库的详细过程(Java Web学习笔记)

1 引言 最近读一些Java Web开发类的书籍时,发现书中的连接数据库的过程缺少了一些关键性的过程,这对初学者非常不友好。为此,本文将给出详细的连接MySQL数据库的过程,并且是纯手工,不依赖于pom.xml和Web容器&#xff…...

node-sass@4.14.1报错的最终解决方案分享

输入npm i全安装文件所需的依赖的时候,博主是使用sass去书写的,使用的是node-sass4.14.1和sass-loader7.3.1的版本的,安装的时候老是出现错误, node-sass4.14.1版本不再被支持的原因 node-sass 是一个基于 LibSass 的 Node.js 绑…...

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨 作品简介 身处当今如火箭般迅猛发展的互联网时代,智能聊天助手已然化身成为提升用户体验的关键利器,全方位渗透至人们的数字生活。 紧紧跟随着这股汹涌澎湃的时代浪潮,我毅然投身于极具挑战性…...

【Linux系列】如何使用 nohup 命令在后台运行脚本

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Web渗透测试之XSS跨站脚本攻击 跨域是什么?同源机制又是什么? cors以及Jsonp是什么 一篇文章给你说明白

目录 Cookie的Httponly属性和逃过方式 浏览器同源机制 cors跨域和jsonp跨域和跨域标签 Cors跨域 - 跨源 Jsonp 跨域 jsonp跨域原理: 说明: Cookie的Httponly属性和逃过方式 Xss攻击手段 最常用的目的获取cookie Cookie中设置了 httponlyTrue 方式js操作获…...

K-Means 聚类算法:用生活场景讲解机器学习的“分组”方法

一、K-Means 算法概述 K-Means 是一种经典的无监督学习聚类算法,目的是将数据集中 n 个样本划分成 K 个簇(cluster),每个样本根据其特征被归入与之最接近的簇。简单来说,这就像在超市购物时,顾客会被根据购…...

C语言与ASCII码应用之简单加密

加密是什么?什么是加密通话?用人话说就是一句有含义的话,经过一定的特殊规则把里面的每个字按照这个规则进行改变,但是这个规则只有你和你想让知道这条信息的人知道 今天我们来用ASCII码编写一个简单加密与解密的程序&#xff0c…...

python无需验证码免登录12306抢票 --selenium(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 [TOC](python无需验证码免登录12306抢票 --selenium(2)) 前言 提示:这里可以添加本文要记录的大概内容: 就在刚刚我抢的票:2025年1月8日…...

[论文阅读]Corpus Poisoning via Approximate Greedy Gradient Descent

Corpus Poisoning via Approximate Greedy Gradient Descent [2406.05087] Corpus Poisoning via Approximate Greedy Gradient Descent 基于近似贪婪梯度下降的语料库投毒 面向检索器的攻击 AGGD 通过从所有符元位置中选择排名最高的符元,而不是从单个随机采样…...

C++—9、如何在Microsoft Visual Studio中调试C++

本文通过实例操作来介绍 Visual Studio 调试器的功能。调试器在运行过程中可提供许多方法让你查看代码的情况。 你可以逐步浏览代码、查看变量中存储的值、设置对变量的监视以查看值何时改变、检查代码的执行路径、查看代码分支是否正在运行等等。本实例主要是设置断点及查看内…...

《深度剖析:开源与闭源模型,AI舞台上的不同角色》

在人工智能蓬勃发展的当下,模型的选择如同为一场战役挑选合适的武器,至关重要。开源模型与闭源模型作为AI领域的两大阵营,在性能和应用场景上展现出显著差异,深刻影响着开发者、企业以及整个行业的走向。 性能差异:实…...

开源 vGPU 方案 HAMi 解析

开源 vGPU 方案 HAMi 一、k8s 环境下 GPU 资源管理的现状与问题 (一)资源感知与绑定 在 k8s 中,资源与节点紧密绑定。对于 GPU 资源,我们依赖 NVIDIA 提供的 device-plugin 来进行感知,并将其上报到 kube-apiserver…...

Unity 大地图功能 离线瓦片地图

不使用第二个摄像机实现类似开放世界的大地图功能。 功能如下: 按下M键打开/关闭大地图功能 打开大地图时,默认玩家位置居中 大地图支持拖拽,可调节拖拽速度,支持XY轴翻转 支持大地图设置边缘偏移量 可设置是否启动拖拽边界 …...

【计算机网络】什么是网关(Gateway)?

网上冲浪多了,你可以听到过网关(Gateway)这个词,但是却不太清楚网关(Gateway)到底是干什么的、负责网络当中的什么任务,本篇文字将会为你介绍网关(Gateway)的作用&#x…...

AIOps 平台

AIOps(Artificial Intelligence for IT Operations)平台是一种结合人工智能(AI)技术和IT运营管理的解决方案,旨在通过自动化、智能化的手段优化企业IT系统的运行与管理。以下是AIOps平台的核心功能、优势以及常见的技术…...

使用 SQL 和表格数据进行问答和 RAG(1)—数据库准备

一. 从 .sql/csv/xlsx 文件创建 sqlite 数据库。 要从.sql文件准备 SQL DB,这里会将创建数据库的代码放到了,将文件复制到data/sql目录中,然后在终端中的项目文件夹中执行: pip install sqlite3现在创建一个名为sqldb的数据库&a…...

TCP与UDP协议

一、主要区别 ① 连接的建立和断开: TCP(Transform Control Protocol)通过三次握手来建立一个可靠的连接。这个过程确保了双方都能发送和接收数据。连接建立后,TCP提供稳定的数据传输服务。当通信结束时,TCP通过四次…...

【MySQL】MVCC详解, 图文并茂简单易懂

欢迎来到啊妮莫的学习小屋 祝读本文的朋友都天天开心呀 目录 MVCC简介快照读与当前读快照读当前读 隔离级别隐藏字段和Undo Log版本链✨MVCC原理--ReadView✨ReadView简介设计思路适用隔离级别重要内容 ReadView规则MVCC整体流程 不同隔离级别下的MVCC读已提交可重复读 总结 M…...

Cisco认证是Cisco公司建立的网络技术证书体系

思科认证体系是由Cisco公司建立的分为3个层次的网络技术证书体系,随着Cisco产品线的扩大和市场份额的不断提升,Cisco产品从当初仅有的 Cisco路由器和Cisco交换机发展到现在的6大方向:路由交换,网络设计,网络安全&#…...

Clojure语言的面向对象编程

Clojure语言的面向对象编程 引言 Clojure是一种现代的Lisp方言,它特别强调函数式编程,Immutable数据结构和强大的并发能力。然而,很多人可能会问:Clojure支持面向对象编程吗?虽然Clojure没有像Java或C那样的传统类和…...

React快速上手到项目实战总篇

React核心价值与前置知识 时刻保持对知识的渴望 家人们 开学!!! 核心价值 组件化(易开发易维护) 数据驱动视图 :定义好数据和ui的显示规则 即UIf(state) 只关注业务数据修改,不在操作DOM 增加开发效率 使用vite创建Recat项目 …...

Dart语言的语法

Dart语言的魅力与应用 引言 随着互联网的发展和移动设备的普及,编程语言层出不穷,各种语言如雨后春笋般被创造出来。其中,Dart语言作为一种现代编程语言,凭借其简洁的语法、强大的功能以及良好的性能,受到了越来越多…...

C++——多态

目录 前言 1. 多态的概念 2. 多态的定义及其实现 2.1 多态的构成条件 2.1.1 实现多态的两个重要条件 2.1.2 虚函数 2.1.3 虚函数的重写/覆盖 2.1.4 多态场景的⼀个选择题 2.1.5 虚函数重写的⼀些其他问题 2.1.5.1 协变(了解) 2.1.5.2 析构函…...

什么是Transformer模型中的KV缓存:上下文新增那之前计算的KV还可用,在原有基础上对新增的进行计算就行

什么是Transformer模型中的KV缓存? 在Transformer模型中,KV缓存(Key-Value Cache)具有重要作用,以下是关于它的详细介绍: 概念含义 KV缓存主要是用于存储在模型推理过程中已经计算过的键(Key)和值(Value)信息。在Transformer架构里,比如在自注意力机制等计算环节…...

12.C语言中的struct详解:定义、赋值、指针、嵌套与位字段

目录 1.简介2.struct 的复制3.struct 指针4.struct 的嵌套5.位字段6.弹性数组成员 1.简介 本篇原文为:C语言中的struct详解:定义、赋值、指针、嵌套与位字段。 更多C进阶、rust、python、逆向等等教程,可点击此链接查看:酷程网 …...

洛谷 P3000 [USACO10DEC] Cow Calisthenics G

思路 题目要求断若干条边后形成的连通块中,最大的直径最小,很明显的二分。关键就在于如何写 c h e c k check check 函数了。 可以用 d f s dfs dfs 来判断要断哪条边。 一、 d [ u ] d[u] d[u] 定义 设 d [ u ] d[u] d[u] 为从 u u u 出发到子树…...

前端拿到zip中所有文件并下载为新的zip文件

问题原因:后端返回了一个zip格式文件供前端下载,然后下载后,形成了zip套zip的形式,当后端不愿处理时,前端不能坐以待毙 PS:当压缩包文件量过大,前端可能会出问题(脑测,未…...

JVM调优

jvm调优步骤:1发现问题、2。定位问题、3.解决问题 jdk自带的命令行调优工具: 1. jps 查看正在运行的 Java 进程 jps -v 查看进程启动时的JVM参数 options 参数: -q:仅仅显示 LVMID(local virtual machine id&#x…...

【前端】【HTML】入门基础知识

参考视频&#xff1a;【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一、基本结构 二、基本标签 <h1>&#xff1a;一级标题&#xff0c;通常用于页面的主标题&#xff0c;字体较大且醒目。 <h2>&#xff1a;二级标题&#xff0c;用于副标题或主要章节标…...

Ubuntu桌面管理环境: GDM3,KDM,LightDM

介绍 Ubuntu是一个广受欢迎的Linux操作系统&#xff0c;拥有强大而多样化的桌面管理环境。其中三个常用的桌面管理环境是GDM3&#xff0c;KDM和LightDM。本篇博客将介绍这三个桌面管理环境的特点和功能。 GDM3 (GNOME Display Manager) GDM3是默认的桌面管理环境&#xff0c…...

每天你好20250110(距离春节19天!!!)

亲爱的朋友们&#xff0c;大家早上好&#xff01; &#x1f31e; 今晨乃 2025 年 1 月 10 日&#xff0c;星期五&#xff0c;农历乙巳[蛇]年十一月二十一日。祥蛇逸彩送祥&#xff0c;金乌喷薄耀世&#xff0c;晨晖破雾而来&#xff0c;恰似“赤日初升&#xff0c;其道大光”&…...

iOS 本地新项目上传git仓库,并使用sourceTree管理

此文记录的场景描述&#xff1a; iOS前期开发时&#xff0c;在本地创建项目&#xff0c;直至开发一段时间&#xff0c;初期编码及框架已完善后&#xff0c;才拿到git仓库的地址。此时需要将本地代码上传到git仓库。 上传至git仓库&#xff0c;可以使用终端&#xff0c;键入命令…...

计算机网络之---计算机网络的性能评估

计算机网络的性能评估是指通过各种标准和指标来衡量网络的工作效率和质量&#xff0c;进而对网络进行优化和改进的过程。评估的目标是确保网络能够满足预期的服务质量&#xff08;QoS&#xff09;和性能需求。常见的计算机网络性能评估指标包括带宽、延迟、吞吐量、丢包率等。 …...

对话|企业如何构建更完善的容器供应链安全防护体系

对话&#xff5c;企业如何构建更完善的容器供应链安全防护体系 云布道师 随着云计算和 DevOps 的兴起&#xff0c;容器技术和自动化成为软件开发中的必要手段&#xff0c;软件供应链也进入了自动化及 CI/CD 阶段。然而&#xff0c;容器技术和自动化虽然提升了软件的更新速度&…...

【SpringSecurity】二、自定义页面前后端分离

文章目录 1、用户认证流程AuthenticationSuccessHandler AuthenticationFailureHandlerSecurityFilterChain配置用户认证信息 2、会话并发处理2.1、实现处理器接口2.2、SecurityFilterChain配置 1、用户认证流程 AuthenticationSuccessHandler AuthenticationFailureHandler …...

在 Vue 3 集成 e签宝电子合同签署功能

实现 Vue 3 e签宝电子合同签署功能&#xff0c;需要使用 e签宝提供的实际 SDK 或 API。 e签宝通常提供针对不同平台&#xff08;如 Web、Android、iOS&#xff09;的 SDK&#xff0c;而 Web 端一般通过 WebView 或直接使用嵌入式 iframe 来加载合同签署页面。 下面举个 &…...

基于华为ENSP的OSPF接口网络类型深入浅出(4)

本篇技术博文摘要 &#x1f31f; OSPF的接口在不同网络类型下的工作方式&#xff1b;不同网络类型下的报文通告方式深入浅出hub-spoke架构 引言 &#x1f4d8; 在这个快速发展的技术时代&#xff0c;与时俱进是每个IT人的必修课。我是肾透侧视攻城狮&#xff0c;一名什么都会一…...

西电-算法分析-研究生课程复习笔记

24年秋的应该是张老师最后一次用卷面考试&#xff0c;他说以后这节课的期末考试都是在OJ上刷题了张老师上课还挺有意思的&#xff0c;上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念&#xff0c;考试也是考个人对这些的理解&#xff0c;还挺好玩的哈…...

音频数据增强:提升音频信号质量的多种技术

在音频处理和机器学习领域&#xff0c;音频数据增强是一种常用的技术&#xff0c;旨在通过对原始音频信号进行各种变换和处理&#xff0c;生成更多样化的训练数据。这不仅可以提高模型的鲁棒性&#xff0c;还能改善其在真实世界应用中的表现。本文将介绍几种常用的音频数据增强…...

如何在 Ubuntu 22.04 上安装 Caddy Web 服务器教程

简介 Caddy 是一个开源的 Web 服务器&#xff0c;它支持静态和现代 Web 应用程序&#xff0c;使用预定义的配置规则&#xff0c;并为所有链接的域名自动启用 HTTPS。Caddy 使用 GO 语言编写&#xff0c;提供了用户友好的配置指令&#xff0c;使你既可以将其用作 Web 服务器&am…...

python_excel列表单元格字符合并、填充、复制操作

读取指定sheet页&#xff0c;根据规则合并指定列&#xff0c;填充特定字符&#xff0c;删除多余的列&#xff0c;每行复制四次&#xff0c;最后写入新的文件中。 import pandas as pd""" 读取指定sheet页&#xff0c;根据规则合并指定列&#xff0c;填充特定字…...

基于GAN和RL的思想来训练对话生成

Paper https://arxiv.org/pdf/1701.06547.pdf 基于GAN和RL的思想来训练对话生成 Implementation https://github.com/jiweil/Neural-Dialogue-Generation/tree/master/Adversarial...

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况&#xff0c;提供解决IPv6 无法获取的更硬核的方法&#xff0c;需要有ssh 工具。&#xff08;无安卓设备&#xff0c;测试环境win、mac、ios&#xff09; 首先明确一点&#xff0c;就是如果想让你的设备得到GUA 地址&#xff0c;即访问 6.i…...

运放输入偏置电流详解

1 输入阻抗与输入偏置电路关系 在选择运放和仪表运放时&#xff0c;经常听到这样的说法&#xff1a;“需要非常高的输入阻抗”&#xff0c;事实上真实如此吗&#xff1f; 输入阻抗&#xff08;更确切的说是输入电阻&#xff09;很少会成为一个重要的问题&#xff08;输入电容也…...

C++指针类型的基本理论和使用方式-学习记录

一、指针简概 &#xff08;一&#xff09;指针定义 指针&#xff08;pointer&#xff09;是“指向&#xff08;point to&#xff09;”另外一种类型的复合类型。与引用类似&#xff0c;指针也实现了对其他对象的间接访问。然而指针与引用相比又有很多不同点。其一&#xff0c;…...

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者&#xff1a;来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能&#xff0c;可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…...

计算机网络之---物理层设备

什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备&#xff0c;它们主要处理数据的转换、信号的传输与接收&#xff0c;而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡&#xff08;N…...