计算人声录音后电平的大小(dB SPL->dBFS)
计算人声录音后电平的大小
这里笔记记录一下,怎么计算已知大小的声音,经过麦克风、声卡录制后软件内录得的音量电平值。(文章最后将计算过程整理为Python代码,方便复用)
假设用正常说话的声音大小65dB(SPL)来计算。思路,这里的链路是:人说话声 -> 麦克风 -> 麦克风输出电压信号 -> 声卡麦克风输入 -> 电脑软件记录。那么计算所需的关键参数:
- 麦克风的灵敏度(算得麦克风输出电压信号所需)
- 声卡麦克风输入接口的最大输入电平(软件能录到的最大电平值,0dBFS,音量100%的位置)
麦克风的灵敏度
假设麦克风的灵敏度是:
S m V / P a = 10 m V / P a S_{mV/Pa}=10mV/Pa SmV/Pa=10mV/Pa
S d B V = − 40 d B V S_{dBV}=-40dBV SdBV=−40dBV
简化计算过程,这里不考虑麦克风的等效输入噪声,不考虑麦克风输入阻抗,也不考虑环境噪声。
声卡麦克风输入规格
某款带可调增益的声卡麦克风输入的部分规格如下:
- 动态范围(A加权):116dB
- THD+N:-97dB(-1dBFS@8dB增益)
- 等效输入噪声(EIN)(A加权):-127dBu
- 最大输入电平(在最小增益下):16dBu
- 增益范围:69dB
- 输入阻抗:3kΩ
简化计算,假设录音时增益设置为0,输入阻抗不考虑,声卡的EIN足够小也不考虑。只取计算过程需要用的最大输入电平:16dBu。
计算过程
声压级单位换算
人说话声音声压级65dB(SPL)单位需要转换为帕斯卡(Pa),否则无法根据麦克风的灵敏度公式转换为mV。找到这两者的关联公式是:
SPL (dB) = 20 log 10 ( P P 0 ) \text{SPL (dB)} = 20 \log_{10} \left( \frac{P}{P_0} \right) SPL (dB)=20log10(P0P)
- P 是需要算出来的帕斯卡声压级。
- P_0 是参考的帕斯卡声压级,一般取20uPa。
所以算出来是:
P = P 0 × 1 0 S P L ( d B ) 20 = 20 ( u P a ) × 1 0 65 ( d B ) 20 = 35566 ( u P a ) P = P_0 \times 10 ^ { \frac{SPL(dB)}{20} } = 20 (uPa) \times 10 ^ {\frac{65(dB)}{20} } = 35566(uPa) P=P0×1020SPL(dB)=20(uPa)×102065(dB)=35566(uPa)
计算结果四舍五入保留了整数部分。
算出麦克风输出电压
上一步算出来的 35566(uPa) 换算为Pa单位,得到P=0.035566(Pa)。代入麦克风灵敏度公式算得:
V m i c = P × S m V / P a = 0.035566 ( P a ) × 10 ( m V / P a ) = 0.35565 ( m V ) = 3.5565 × 1 0 − 4 ( V ) V_{mic} = P \times S_{mV/Pa}=0.035566(Pa) \times 10 (mV/Pa) = 0.35565(mV)=3.5565 \times 10^{-4}(V) Vmic=P×SmV/Pa=0.035566(Pa)×10(mV/Pa)=0.35565(mV)=3.5565×10−4(V)
由于声卡灵敏度用的电压是有效值(RMS),所以这里算出来的值也是有效值。
计算电压和声卡最大输入电压的占比
声卡最大输入电压
声卡最大输入电平是16dBu。dBu 是一个对数单位,用于表示相对于参考值 0.775 伏特(有效值)的电压电平。即:
V d B u = 20 × l o g 10 ( V m a x 0.775 ) V_{dBu}=20 \times log_{10}( \frac {V_{max}} {0.775}) VdBu=20×log10(0.775Vmax)
V_max是声卡最大输入电压(有效值,RMS)。根据公式,要计算16 dBu对应的电压值,如下:
V m a x = 0.775 × 1 0 V d B u 20 = 0.775 × 1 0 16 ( d B u ) 20 = 4.89 ( V ) V_{max} = 0.775 \times 10^{\frac{V_{dBu}}{20}}=0.775 \times 10^{\frac{16(dBu)}{20}}= 4.89(V) Vmax=0.775×1020VdBu=0.775×102016(dBu)=4.89(V)
这里保留2位小数。
计算人声的电平数值
软件录音电平音量条的最大值通常是0 dBFS(dB Full Scale),这是一个数字音频信号电平单位。dBFS表示满度相对电平,0 dBFS的位置是系统能处理的最大音频信号的编码值,即最大值。实际数字音频信号的幅度相对于这个最大值的比值即为满度相对电平,因此实际的电平值都是负值。
在软件中,音量条的最大值通常表示为0 dBFS,这意味着任何超过这个值的信号都会导致削波失真。为了防止失真,通常会将录音电平设置在-3 dBFS到-6 dBFS之间,以留出一定的余量。
V m i c = 3.5565 × 1 0 − 4 ( V ) , V m a x = 4.89 ( V ) V_{mic} = 3.5565 \times 10^{-4}(V) , \space V_{max} = 4.89(V) Vmic=3.5565×10−4(V), Vmax=4.89(V)
计算dBFS如下(保留2位小数):
dBFS = 20 × log 10 ( V m i c V m a x ) = 20 × log 10 ( 3.5565 × 1 0 − 4 ( V ) 4.89 ( V ) ) = − 82.77 ( d B F S ) \text{dBFS} = 20 \times \log_{10} \left( \frac{V_{mic}}{V_{max}} \right)=20 \times \log_{10} \left( \frac{3.5565 \times 10^{-4}(V)}{4.89(V)} \right)=-82.77(dBFS) dBFS=20×log10(VmaxVmic)=20×log10(4.89(V)3.5565×10−4(V))=−82.77(dBFS)
-82.77(dBFS)很小声,播放出来得将音量调很大才能听见声音。这种情况录音时得将增益调大。
计算过程Python实现
直接把文章复制扔给Kimi,开启长思考,代码实现完了。检查了一下能跑,而且计算过程是对的。小改后如下:
# SPDX-License-Identifier: MIT
# ******************************************************************************
# (c) 2025 庵中十三居士
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# ******************************************************************************import mathdef calculate_dBFS(spl: float, mic_sensitivity_mV_Pa: float, max_input_dBu: float) -> float:'''根据声音声压级、麦克风灵敏度和声卡最大输入电平计算录音后软件内的电平值(dBFS)。参数:spl (float):声音声压级,单位为分贝(dB SPL)mic_sensitivity_mV_Pa (float):麦克风灵敏度,单位为毫伏每帕(mV/Pa)max_input_dBu (float):声卡的最大输入电平,单位为分贝伏特(dBu)返回:float:计算得到的软件内电平值,单位为分贝满量程(dBFS)感谢 Moonshot AI 提供的代码实现。这份计算代码基于庵中十三居士的文章原理编写,帮助您将声学参数与实际录音电平联系起来,方便对录音电平进行预估和调整。'''# 声压级转帕斯卡(Pa)P0 = 20 # uPa(参考声压级)spl_db = splPa = P0 * 10 ** (spl_db / 20)# 转换为Pa单位(因为Pa = V/mic_sensitivity_mV_Pa)Pa = Pa / 1000000 # 将微帕转换为帕# 计算麦克风输出电压(V)V_mic_mV = Pa * mic_sensitivity_mV_PaV_mic = V_mic_mV / 1000# 计算声卡最大输入电压(V)V_ref_dBu = 0.775 # dBu的参考电压max_input_V = V_ref_dBu * 10 ** (max_input_dBu / 20)# 计算dBFSdBFS = 20 * math.log10(V_mic / max_input_V)return dBFSif __name__ == "__main__":# 参数spl = 65 # 人说话声音大小(SPL)=65dBmic_sensitivity_mV_Pa = 10 # 麦克风的灵敏度(mV/Pa)max_input_dBu = 16 # 声卡最大输入电平(dBu)# 计算dBFS = calculate_dBFS(spl, mic_sensitivity_mV_Pa, max_input_dBu)print(f"计算结果:dBFS = {dBFS:.2f} dBFS") # 计算结果:dBFS = -82.77 dBFS
执行之后结果:
$ python test.py
计算结果:dBFS = -82.77 dBFS
文章CSDN:庵中十三居士
相关文章:
计算人声录音后电平的大小(dB SPL->dBFS)
计算人声录音后电平的大小 这里笔记记录一下,怎么计算已知大小的声音,经过麦克风、声卡录制后软件内录得的音量电平值。(文章最后将计算过程整理为Python代码,方便复用) 假设用正常说话的声音大小65dB(SP…...
Android kernel日志中healthd关键词意义
Android kernel日志中healthd关键词意义 在kernel的healthd日志中会打印电池信息。通常比较关心的是电池温度,剩余电量,电压,电池健康,电池状况等。 level:剩余电量。 voltage:电压。 temperatureÿ…...
操作系统面试问题(4)
32.什么是操作系统 操作系统是一种管理硬件和软件的应用程序。也是运行在计算机中最重要的软件。它为硬件和软件提供了一种中间层,让我们无需关注硬件的实现,把心思花在软件应用上。 通常情况下,计算机上会运行着许多应用程序,它…...
【nestjs】一般学习路线
nestjs中文文档 其实几个月前也对nestjs进行了学习,前前后后看了很多文档、博客,另外也找了相应的代码看了,但最后也还是一知半解,只是知道大概怎么写,怎么用。 这次下定决心再次看一遍,从代码学习到文档…...
多线程面试题总结
基础概念 进程与线程的区别 进程:操作系统资源分配的基本单位,有独立内存空间线程:CPU调度的基本单位,共享进程资源对比: 创建开销:进程 > 线程通信方式:进程(IPC)、线程(共享内存)安全性:进程更安全(隔离),线程需要同步线程的生命周期与状态转换 NEW → RUNNABLE …...
面试常考算法2(核心+acm模式)
15. 三数之和 核心代码模式 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ansnew ArrayList<>();Arrays.sort(nums);int lennums.length;int pre2000000;for(int i0;i<len-2;i){while(i<len-…...
虚拟文件系统
虚拟文件系统(Virtual File System,VFS)是操作系统内核中的一个抽象层,它为不同的文件系统(如ext4、NTFS、FAT32等)提供统一的访问接口。通过VFS,用户和应用程序无需关心底层文件系统的具体差异…...
机器学习与深度学习的区别与联系:多角度详细分析
机器学习与深度学习的区别与联系:多角度详细分析 引言 随着人工智能技术的快速发展,机器学习和深度学习已成为当今科技领域的核心驱动力。尽管这两个术语经常被一起提及,甚至有时被互换使用,但它们之间存在着明显的区别和紧密的…...
c++:迭代器(Iterator)
目录 🚪什么是迭代器? 🔧 迭代器的本质 为什么不用普通数组或下标? STL容器的迭代器并不是共用一个类型! 迭代器的类型(Iterator Categories) 📦 常见容器的迭代器类型 ✅ 迭…...
MindSpore框架学习项目-ResNet药物分类-数据增强
目录 1.数据增强 1.1设置运行环境 1.1.1数据预处理 数据预处理代码解析 1.1.2数据集划分 数据集划分代码说明 1.2数据增强 1.2.1创建带标签的可迭代对象 1.2.2数据预处理与格式化(ms的data格式) 从原始图像数据到 MindSpore 可训练 / 评估的数…...
python打卡day20
特征降维------特征组合(以SVD为例) 知识点回顾: 奇异值的应用: 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高&#…...
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索,先到先得 B题完整论文https://www.jdmm.cc/file/2712066/ 近年来,我国马拉松赛事数量呈现 “ 先井喷、后调整、再复苏 ” 的显著 变化。据中国田径协会数据, …...
深入解析WPF中的3D图形编程:材质与光照
引言 在Windows Presentation Foundation (WPF) 中创建三维(3D)图形是一项既有趣又具有挑战性的任务。为了帮助开发者更好地理解如何使用WPF进行3D图形的渲染,本文将深入探讨GeometryModel3D类及其相关的材质和光源设置。 1、GeometryModel3D类简介 GeometryMode…...
python格式化小数加不加f的区别
一直好奇这个f是必须加的吗,但是不论是搜索还是ai都给不出准确的回复,就自己测试了一下 结论是不带f指定的是总的数字个数,包含小数点前的数字 带f的就是仅指小数点后数字个数 需要注意的是不带f的话数字是会用科学计数法表示的ÿ…...
【MySQL】存储引擎 - FEDERATED详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
window 显示驱动开发-线性内存空间段
线性内存空间段是显示硬件使用的经典段类型。 线性内存空间段符合以下模型: 它虚拟化位于图形适配器上的视频内存。GPU 直接访问它;也就是说,无需通过页面映射进行重定向。它在一维地址空间中以线性方式进行管理。 驱动程序将DXGK_SEGMENTDESCRIPTOR结…...
uniapp-商城-46-创建schema并新增到数据库
在后台页面中,数据管理是关键。最初,数据可能是通过代码硬编码在页面中,但这种方式缺乏灵活性和扩展性。为了适应实际需求,应使用数据库来存储数据,允许用户自行添加和更新信息。通过数据库,后台页面可以动…...
Go语言的宕机恢复,如何防止程序奔溃
Go语言中的panic机制用于处理程序中无法继续执行的严重错误。当程序触发panic时,当前函数的执行会立即停止,程序开始逐层向上回溯调用栈,执行每个函数的defer语句,直到到达recover函数或者程序崩溃退出。通过recover函数ÿ…...
阅文集团C++面试题及参考答案
能否不使用锁保证多线程安全? 在多线程编程中,锁(如互斥锁、信号量)是实现线程同步的传统方式,但并非唯一方式。不使用锁保证多线程安全的核心思路是避免共享状态、使用原子操作或采用线程本地存储。以下从几个方面详…...
三款实用电脑工具
今天为大家精心推荐三款实用软件,分别是人声伴奏分离软件、文件夹迁移软件和文字转拼音软件。 第一款:NovaMSS NovaMSS是一款功能强大的人声伴奏分离软件,它提供社区版和专业版,社区版永久免费。 该软件能够一键提取人声、伴奏、…...
【图片识别内容改名】图片指定区域OCR识别并自动重命名,批量提取图片指定内容并重命名,基于WPF和阿里云OCR识别的解决
基于WPF和阿里云OCR的图片区域识别与自动重命名解决方案 应用场景 电商商品管理:批量处理商品图片,从固定区域识别商品名称、型号、价格等信息,重命名为"商品名称_型号_价格.jpg"格式档案数字化:扫描后的合同、文件等图片,从固定位置识别合同编…...
可再生能源中的隔离栅极驱动器:光伏逆变器的游戏规则改变者
在迈向可持续未来的征程中,可再生能源已成为全球发展的基石。在可再生能源中,太阳能以其可及性和潜力脱颖而出。光伏(PV)逆变器是太阳能系统的核心,它严重依赖先进技术将太阳能电池板的直流电转换为可用的交流电。隔离栅极驱动器就是这样一种…...
解决:EnvironmentNameNotFound: Could not find conda environment?
明明创建了环境却找不到? conda env list 查看所有环境 使用绝对路径激活 conda activate /home/guokaiyin/miniconda3/envs/synthocc...
Java SE(10)——抽象类接口
1.抽象类 1.1 概念 在之前讲Java SE(6)——类和对象(一)的时候说过,所有的对象都可以通过类来抽象。但是反过来,并不是说所有的类都是用来抽象一个具体的对象。如果一个类本身没有足够的信息来描述一个具体的对象,而…...
数据结构与算法—顺序表和链表(1)
数据结构与算法—顺序表(1) 线性表顺序表概念与结构分类静态顺序表动态顺序表 动态顺序表的实现 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的…...
软件测试的概念
需求的概念 开发模型 测试模型 1. 什么是需求 在多数软件公司,会有两部分需求,⼀部分是⽤⼾需求,⼀部分是软件需求。 1.1 ⽤⼾需求 ⽤⼾需求:可以简单理解为甲⽅提出的需求,如果没有甲⽅,那么就是终端⽤⼾…...
基于Qwen-14b的基础RAG实现及反思
1、概览 本文主要介绍RAG的基础实现过程,给初学者提供一些帮助,RAG即检索增强生成,主要是两个步骤:检索、生成,下面将基于这两部分进行介绍。 2、检索 检索的主要目的是在自定义的知识库kb中查询到与问题query相关的候…...
TikTok广告投放优化指南
1. 广告账户时区设置 在创建广告账户时,建议优先选择美国太平洋时区(UTC-8洛杉矶时间),这有助于与国际投放节奏保持一致。 2. 达人视频授权问题解答 当在广告后台选择"Affiliate post"却找不到已授权的达人视频时,这种情况确实会…...
WorkManager与Kotlin后台任务调度指南
在Android开发中,使用WorkManager和Kotlin可以高效管理后台任务。以下是分步指南及关键概念: 1. 添加依赖项 在build.gradle文件中添加依赖: dependencies {implementation("androidx.work:work-runtime-ktx:2.7.1") }2. 创建Wor…...
生信服务器如何安装cellranger|生信服务器安装软件|单细胞测序软件安装
一.Why cellranger Cell Ranger 是由 10x Genomics 公司开发的一款用于处理其单细胞测序(single-cell RNA-seq, scRNA-seq)数据的软件套件。它主要用于将原始测序数据(fastq 文件)转换为可以用于下游分析的格式,比如基…...
Spring Web MVC基础理论和使用
目录 什么是MVC 什么是SpringMVC SpringMVC基础使用 建立连接 RequestMapping介绍 请求 传递参数 传递对象 参数重命名 传递数组 传递JSON数据 获取URL中参数 上传文件 获取Cookie/Session 获取Header 响应 返回静态页面 RestController和Controller的区别 返…...
Go Modules 的基本使用
在 Go Modules 项目中,首次运行时下载依赖包的正确流程需要根据项目情况区分处理。以下是详细步骤和最佳实践: 一、首次初始化项目的标准流程 1.1 创建项目目录并初始化模块 mkdir myproject && cd myproject go mod init github…...
等保系列(三):等保测评的那些事
一、等保测评主要做什么 1、测评准备阶段 (1)确定测评对象与范围 明确被测系统的边界、功能模块、网络架构及承载的业务。 确认系统的安全保护等级(如二级、三级)。 (2)签订测评合同 选择具备资质的测…...
一种海杂波背景下前视海面目标角超分辨成像方法——论文阅读
一种海杂波背景下前视海面目标角超分辨成像方法 1. 专利的研究目标与实际问题1.1 研究目标1.2 实际意义2. 专利的创新方法、公式及优势2.1 总体思路2.2 关键公式及技术细节2.2.1 运动几何模型2.2.2 方位卷积模型2.2.3 贝叶斯反演与迭代方程2.2.4 参数估计2.3 与传统方法的对比优…...
在线caj转换word
CAJ格式是中国知网特有的一种文献格式,在学术研究等领域广泛使用,但有时我们需要将其转换为Word格式,方便编辑、引用文献。本文分享如何轻松将CAJ转换为word的转换工具,提高阅读和办公效率。 如何将CAJ转换WORD? 1、使用CAJ转换…...
考研英一学习笔记 2018年
2018 年全国硕士研究生招生考试 英语 (科目代码:201) Section Ⅰ Use of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Trust i…...
如何工作的更有职业性
职场中的人,如何让对方对你的评价是你很职业?如何让对方认为你更专业? 这里的职业是形容词 与人沟通的职业性,首当其冲的是你的表达,不管是直接的交流沟通还是文字沟通都清晰明了。 文字沟通 写出来的文字应该尽可…...
transformer 笔记 tokenizer moe
(超爽中英!) 2025吴恩达大模型【Transformer】原理解析教程!附书籍代码 DeepLearning.AI_哔哩哔哩_bilibili 自回归就是上文全部阅读 好像学过了,向量互乘好像 transformer不需要rnn 掩码自注意力 训练bert import torch import torch.nn as nn import …...
6.01 Python中打开usb相机并进行显示
本案例介绍如何打开USB相机并每隔100ms进行刷新的代码,效果如下: 一、主要思路: 1. 打开视频流、读取帧 self.cam_cap = cv2.VideoCapture(0) #打开 视频流 cam_ret, cam_frame = self.cam_cap.read() //读取帧。 2.使用定时器,每隔100ms读取帧 3.显示到Qt的QLabel…...
什么是AIOps
AIOps(Artificial Intelligence for IT Operations,智能运维)是以人工智能技术为核心的新型IT运维模式,通过整合机器学习、大数据分析等技术,实现运维流程的自动化与智能化,从而提升系统稳定性、降低运营成…...
javax.net.ssl.SSLHandshakeException: No appropriate protocol
大家好,我是 程序员码递夫。 我有个SpringBoot项目用到邮件发送功能, 在开发环境运行,一切正常,但是我 部署jar 包,在本机上运行时却报错了, 提示: javax.mail.MessagingException: Could not…...
【身份证识别表格】批量识别身份证扫描件或照片保存为Excel表格,怎么大批量将身份证图片转为excel表格?基于WPF和腾讯OCR的识别方案
以下是基于WPF和腾讯OCR的身份证批量识别与导出Excel的完整方案: 一、应用场景 企业人事管理 新员工入职时需批量录入数百份身份证信息,传统手动录入易出错且耗时。通过OCR自动提取姓名、身份证号等字段,生成结构化Excel表格…...
Java+Selenium+快代理实现高效爬虫
目录 一、前言二、Selenium简介三、环境准备四、代码实现4.1 创建WebDriver工厂类4.2 创建爬虫主类4.3 配置代理的注意事项 六、总结与展望 一、前言 在Web爬虫技术中,Selenium作为一款强大的浏览器自动化工具,能够模拟真实用户操作,有效应对…...
掌握Multi-Agent实践(三):ReAct Agent集成Bing和Google搜索功能,采用推理与执行交替策略,增强处理复杂任务能力
一个普遍的现象是,大模型通常会根据给定的提示直接生成回复。对于一些简单的任务,大模型或许能够较好地应对。然而,当我们面对更加复杂的任务时,往往希望大模型能够表现得更加“智能”,具备适应多样场景和解决复杂问题的能力。为此,AgentScope 提供了内置的 ReAct 智能体…...
【愚公系列】《Manus极简入门》028-创业规划顾问:“创业导航仪”
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! …...
SpringBoot统一功能处理
一.拦截器(实现两个接口,并重写方法) 1. 定义拦截器 ⾃定义拦截器: 实现HandlerInterceptor接⼝, 并重写其所有⽅法 preHandle()⽅法:⽬标⽅法执⾏前执⾏. 返回true: 继续执⾏后续操作; 返回false: 中断后…...
并发设计模式实战系列(19):监视器(Monitor)
🌟 大家好,我是摘星! 🌟 今天为大家带来的是并发设计模式实战系列,第十九章监视器(Monitor),废话不多说直接开始~ 目录 一、核心原理深度拆解 1. 监视器三要素模型 2. 线程调度…...
Oracle Fusion常用表
模块表名表描述字段说明sodoo_headers_all销售订单头表sodoo_lines_all销售订单行表sodoo_fulfill_lines_all销售订单明细行表popo_headers_all采购订单头表popo_lines_all采购订单行表popo_line_locations_all采购订单分配表popo_distributions_all采购订单发运表invEGP_SYSTE…...
虚假AI工具通过Facebook广告传播新型Noodlophile窃密木马
网络安全公司Morphisec的研究人员发现,攻击者正利用虚假人工智能(AI)平台传播名为Noodlophile Stealer的新型信息窃取木马。这种复杂攻击手法利用AI工具的热度诱骗用户下载恶意软件,窃取浏览器凭证、加密货币钱包,并可…...
华为云Flexus+DeepSeek征文|从开通到应用:华为云DeepSeek-V3/R1商用服务深度体验
前言 本文章主要讲述在华为云ModelArts Studio上 开通DeepSeek-V3/R1商用服务的流程,以及开通过程中的经验分享和使用感受帮我更多开发者,在华为云平台快速完成 DeepSeek-V3/R1商用服务的开通以及使用入门注意:避免测试过程中出现部署失败等问…...