- 博客(68)
- 收藏
- 关注
原创 Python 责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求的发送者和接收者解耦。通过将多个处理对象连接成一条链,责任链模式可以让请求沿着这条链传递,直到有一个对象处理它为止。这种模式的核心思想是将请求的处理逻辑分散到多个处理者中,每个处理者负责处理特定类型的请求。
2025-04-01 19:09:57
371
原创 Python 克隆模式
克隆模式的核心思想是通过复制一个已有的对象(原型)来创建一个新的对象(克隆)。这种方式可以避免重复的初始化过程,从而提高效率。clone。
2025-04-01 11:44:27
601
原创 Python 装饰模式
装饰模式是一种设计模式,它通过将对象包装在一个装饰器类中来实现功能的扩展。装饰器类可以在调用原始对象的方法之前或之后添加额外的行为。这种方式使得我们可以在运行时动态地改变对象的行为,而不需要修改对象的代码。装饰模式的核心思想是“将功能分离”。通过将功能封装在不同的装饰器中,我们可以灵活地组合这些装饰器,从而实现复杂的功能。这种方式不仅提高了代码的复用性,还使得系统的扩展变得更加简单。在 Python 中,装饰器是一种特殊的函数,用于在运行时动态地修改或增强其他函数或方法的功能。记录日志。
2025-03-28 17:29:30
272
原创 Python 中介模式
中介模式是一种行为设计模式,它通过引入一个中介对象来协调多个对象之间的交互。中介者负责管理对象之间的通信,避免了对象之间的直接引用,从而降低了系统的复杂性和耦合度。
2025-03-28 12:59:39
588
原创 Python 状态模式
状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。换句话说,状态模式使得一个对象在其状态改变时能够表现得就像是改变了其类。
2025-03-26 11:33:01
929
原创 Python 监听模式(Observer Pattern)
监听模式(Observer Pattern)是一种行为设计模式,允许对象(称为“观察者”或“监听者”)在另一个对象(称为“被观察者”或“主题”)的状态发生变化时接收通知。这种模式的核心思想是解耦,使得被观察者和观察者之间没有直接的依赖关系,从而提高系统的灵活性和可维护性。在监听模式中,观察者可以动态地注册和注销到被观察者。当被观察者的状态发生变化时,它会通知所有注册的观察者,观察者可以根据需要执行相应的操作。这种模式特别适用于需要处理异步事件的场景,例如用户界面事件、数据变化通知等。
2025-03-19 18:03:10
978
原创 Python 单例模式
我们将创建一个Logger类,使用单例模式确保只有一个日志记录器实例。该类将提供记录日志的功能,并将日志输出到文件中。import os# 使用示例print(logger1 is logger2) # 输出: True,两个变量指向同一个实例。
2025-02-21 17:42:30
494
原创 模型可视化技术:特征图与热力图
在深度学习领域,尤其是计算机视觉任务中,模型的可解释性和透明性变得越来越重要。可视化特征图和热力图是两种有效的技术,能够帮助研究人员和开发者理解模型的内部工作原理。本文将介绍可视化特征图和热力图的目的、实现方法,并提供简单的代码示例。
2025-02-06 18:27:06
1027
原创 Deepseek本地部署指南:在linux服务器部署,在mac远程web-ui访问
32B 模型在推理基准测试中表现优异,接近 70B 模型的推理能力,但对硬件资源需求更低。通过上面的步骤,已经可以直接在 Linux服务器通过命令行的形式使用Deepseek了。设置OLLAMA_HOST=0.0.0.0环境变量,这使得Ollama服务能够监听所有网络接口,从而允许远程访问。为了确保您的Linux服务器允许从外部访问Ollama服务,您需要配置防火墙以允许通过端口11434的流量。在完成上述配置后,您可以通过远程设备(如Mac)测试对Ollama服务的访问。
2025-02-06 08:52:57
30055
31
原创 U-Net解析:含代码实现
U-Net 是一种用于图像分割的卷积神经网络架构,其设计旨在处理生物医学图像分割任务。U-Net 的网络结构具有对称性,包含编码器和解码器两个主要部分,并通过跳跃连接(skip connections)将两者连接起来。U-Net 网络结构因其对称性而得名,形似英文字母 “U”。整个网络架构由蓝色和白色框表示特征图(feature map),不同颜色的箭头则代表了不同的操作和连接方式。
2025-01-23 20:01:17
1163
原创 不同音频振幅dBFS计算方法
人耳对声音的感知是非线性的,通常对响度变化的感知与实际的物理振幅变化不成正比。最大 RMS 是通过将音频信号分成多个窗口,计算每个窗口的 RMS 值,并返回这些值中的最大值。最小 RMS 与最大 RMS 类似,但它返回的是每个窗口中计算出的最小 RMS 值。平均 RMS 是所有窗口 RMS 值的平均值,提供了音频信号的整体响度水平。总 RMS 是一种常用的振幅计算方法,表示整个音频信号的平均能量。峰值幅度是音频信号中最大绝对值的幅度,通常用于表示信号的瞬时强度。是音频信号的样本值,
2025-01-10 15:58:33
1722
2
原创 音频数据增强:提升音频信号质量的多种技术
在音频处理和机器学习领域,音频数据增强是一种常用的技术,旨在通过对原始音频信号进行各种变换和处理,生成更多样化的训练数据。这不仅可以提高模型的鲁棒性,还能改善其在真实世界应用中的表现。本文将介绍几种常用的音频数据增强技术,包括时间拉伸、音高变换、带通滤波、均衡器、冲激响应处理、归一化、填充、延迟处理和非线性模拟。
2025-01-09 21:08:15
1080
原创 语音增强的损失函数选择
最优尺度不变信噪比(OSI-SNR)是一种用于评估信号质量的指标,特别是在语音分离和增强任务中。OSI-SNR 通过优化估计信号与目标信号之间的相似性,提供了一种更稳定和可靠的信号质量度量。s表示原始语音信号,s表示重建的语音信号。
2024-12-23 23:20:28
1064
原创 论文解读 --Optimal scale-invariant signal-to-noise ratio and curriculum learning for monaural multi-spea
在日常聆听环境中,语音总是受到背景噪声、房间混响和干扰说话者的扭曲。随着深度学习方法的发展,单声道多说话者语音分离取得了许多进展。然而,这个领域的大多数研究都集中在实验室环境中的简单问题设置上,没有考虑背景噪声和房间混响。在本文中,我们开发了一个新的目标函数,名为。此外,我们提出了一种基于conv-TasNet的课程学习方法,以应对噪声和干扰说话者的显著影响。通过联合使用OSI-SNR和课程学习方法,我们的算法在分离基线上取得了显著的改进。
2024-12-23 20:41:55
641
原创 理想比值掩蔽(IRM)和理想幅度掩蔽(IAM)在语音分离中的应用
IRM和IAM都是有效的语音分离技术,它们各自有不同的优势和劣势。IRM在理论上具有优越性,因为它提供了连续的值范围,并且与维纳滤波器有直接的联系。然而,它在相位信息处理上存在不足。IAM则在处理语音和噪声叠加时更为灵活,但需要对输出值进行截断以避免训练过程中的问题。在实际应用中,选择哪种技术取决于具体的噪声条件和语音增强的目标。下面是使用 Python 实现理想比值掩蔽(IRM)和理想幅度掩蔽(IAM)计算的示例代码。"""计算短时傅里叶变换(STFT)""""""计算理想比值掩蔽(IRM)"""
2024-12-20 18:53:54
1039
原创 ICASSP AEC BASELINE代码解读
在这篇博客中,我们将深入探讨 ICASSP 2022 会议上提出的 AEC 基线模型的实现。该模型旨在通过深度学习技术改善音频信号的质量,特别是在回声消除和噪声抑制方面。
2024-12-20 15:25:13
874
原创 深度回声消除模型中,Mask 的设置
在深度学习的音频信号处理领域,回声消除是一个重要的研究方向。回声消除模型的性能在很大程度上依赖于输入信号的特性以及掩码(mask)的设计。本文将介绍深度回声消除模型中的各种信号、训练和推理过程中的信号与掩码的关系,以及引入额外掩码的好处。在深度回声消除模型中,主要涉及以下几种信号:麦克风信号 ():这是模型的输入信号,包含了目标语音、背景噪声和回声。麦克风信号是我们希望处理的主要信号。远端信号 ():这是来自远端的信号,通常是清晰的语音信号。远端信号用于生成回声,帮助模型学习如何去除回声成分。目标语音 ()
2024-12-18 11:49:28
988
原创 深度学习模型中音频流式处理
在现代深度学习应用中,音频处理是一个重要的领域,尤其是在语音识别、音乐生成和音频分类等任务中。流式处理(Streaming Processing)是一种有效的处理方式,它允许模型逐帧处理音频数据,而不是一次性处理整个序列。这种方法在实时应用中尤为重要,因为它可以减少延迟并提高响应速度。流式处理的核心思想是将音频数据分成多个帧(frames),并逐帧输入模型进行处理。在训练阶段,模型可以接受多个帧作为输入,但在推理阶段,通常会逐帧输入数据。这种方法的优势在于:以下是一个基于 PyTorch 的简单示例,展示了
2024-12-11 15:45:19
635
原创 高效模拟小房间声学的镜像方法
讨论了一种基于近似镜像展开的小型房间模拟方法,适用于矩形非刚性墙封闭空间。该方法是简单、易于实现的,并且计算机模拟效率高。讨论了几个示例,其中其他方法将很困难。
2024-12-10 18:27:46
1031
原创 通过交叉相关性在大估计误差存在的情况下进行时间延迟估计
摘要本文考察了在两个传感器接收到的共同随机信号的时间到达差异的估计问题,每个传感器还接收到不相关的噪声,这种估计问题在水下声学中具有相当的实际兴趣。对于小误差和大误差情况都进行了分析。结果表明,随着后向积分信噪比的降低,相关器表现出阈值效应;即大误差(异常估计)的概率迅速增加。本文提出了异常概率的近似理论结果,并通过实验进行了验证。同时,对于门控模式和非门控模式下的时延估计方差进行了检验,门控模式使用最接近真实时延的相关峰值作为时延估计,而非门控模式使用在整个相关器延迟时间范围内最大的峰值作为估计。两种模
2024-12-10 18:08:19
901
原创 门控卷积(GConv)与转置门控卷积(TrGConv)详解
在深度学习中,卷积神经网络(CNN)被广泛应用于图像处理、音频处理等领域。门控卷积(Gated Convolution, GConv)和转置门控卷积(Transposed Gated Convolution, TrGConv)是卷积操作的扩展,能够更灵活地处理复杂信号。本文将介绍这两种卷积的原理、代码实现及其在音频处理中的应用,并提供可视化示例。
2024-12-10 15:54:36
1150
原创 AEC论文解读 -- MULTI-TASK DEEP RESIDUAL ECHO SUPPRESSION WITH ECHO-AWARE LOSS
本文介绍了西北工业大学音频、语音和语言处理小组(ASLP@NPU)参加2022年ICASSP回声消除挑战赛(AEC Challenge)的参赛作品。我们采用了一种混合方法,将线性回声消除(AEC)与神经网络后处理滤波器级联。前者用于处理线性回声分量,而后者用于抑制剩余的非线性回声分量。我们使用门控卷积F-T-LSTM神经网络(GFTNN)作为骨干网络,并通过多任务学习(MTL)框架塑造后处理滤波器,其中采用了语音活动检测(VAD)模块作为辅助任务,与回声抑制一起进行,目的是避免过度抑制导致语音失真。
2024-12-09 15:11:30
1561
原创 AEC论文解读 -- A Deep Hierarchical Fusion Network for Fullband Acoustic Echo Cancellation
图1展示了所提出的层次融合网络的概述。输入的48k近端和远端信号被送入SpeexDSP的线性AEC模块,该模块具有160ms自适应滤波器长度,30ms帧大小和10ms帧移位。关于系统延迟引起的近端和远端信号之间的时间延迟,我们使用基于互相关[14]的鲁棒延迟估计方法来估计和补偿因果延迟。近端时间域信号ddd、远端信号rrr和线性AEC输出信号eee通过1440点(30ms)的短时傅里叶变换(STFT)转换到时频(T-F)域,步长为480点(10ms)。
2024-12-09 14:53:51
951
原创 AEC论文解读 -- MULTI-SCALE TEMPORAL FREQUENCY CONVOLUTIONAL NETWORK WITH AXIAL ATTENTION FOR SPEECH ENHA
语音质量常因声学回声、背景噪声和混响而降低。本文提出了一个结合深度学习和信号处理的系统,用于同时抑制回声、噪声和混响。在深度学习部分,我们设计了一个新颖的语音密集预测骨干网络。在信号处理部分,使用线性声学回声消除器(LAEC)作为深度学习的条件信息。为了提高语音密集预测骨干的性能,设计了麦克风和参考相位编码器、多尺度时频处理和流式轴向注意力等策略。所提出的系统在ICASSP 2022的AEC和DNS Challenge(非个人赛道)中均排名第一。
2024-12-09 14:14:41
970
原创 AEC论文解读 -- RESIDUAL ACOUSTIC ECHO SUPPRESSION BASED ON EFFICIENT MULTI-TASK CONVOLUTIONAL NEURAL NET
多任务卷积神经网络:论文中提出的残余声学回声抑制(RAES)方法基于高效的多任务卷积神经网络(CNN)。该网络架构受到 MobileNetV2 的启发,采用深度卷积和点卷积的组合,以减少计算成本并提高模型的效率。声学回声会降低语音通信系统中的用户体验,因此需要完全抑制。我们提出了一种实时残余声学回声抑制(RAES)方法,使用高效的卷积神经网络。在多任务学习的背景下,使用双工检测器作为辅助任务来提高RAES的性能。训练标准基于一种新颖的损失函数,我们称之为抑制损失,以平衡残余回声的抑制和近端信号的失真。
2024-12-06 18:32:53
816
原创 基于频谱处理的音频分离方法
在音频处理领域,音频分离是一个重要的任务,尤其是在语音识别、音乐制作和通信等应用中。音频分离的目标是从混合信号中提取出单独的音频源。通过频谱处理进行音频分离是一种有效的方法,本文将介绍其基本原理、公式以及如何通过降噪作为一个具体的例子来实现音频分离。
2024-12-04 17:26:15
1462
原创 PyTorch 实现动态输入
在深度学习中,处理不同大小的输入数据是一个常见的挑战。许多实际应用需要模型能够灵活地处理可变长度的输入。本文将介绍如何使用 PyTorch 实现支持动态输入的 CNN 和 LSTM/GRU 模型,并打印每一层的输入和输出。:CNN 通常用于处理图像数据。它通过卷积层提取局部特征,并能够处理不同大小的输入图像。通过使用全局池化层,CNN 可以将不同大小的特征图转换为固定大小的输出。:LSTM 和 GRU 是处理序列数据的 RNN 变体。它们能够捕捉时间序列中的长期依赖关系,并支持可变长度的输入序列。
2024-12-03 20:42:17
780
原创 AEC论文解读 -- ACOUSTIC ECHO CANCELLATION WITH THE DUAL-SIGNAL TRANSFORMATION LSTM NETWORK
本文将双信号变换LSTM网络(DTLN)应用于实时声学回声消除(AEC)任务。DTLN结合了短时傅里叶变换和学习到的特征表示,在堆叠网络方法中实现,这使得在时频域和时域(包括相位信息)中都能进行鲁棒的信息处理。模型仅在60小时的真实和合成回声场景上进行训练。训练设置包括多语言语音、数据增强、额外的噪声和混响,以创建一个能够很好地泛化到各种真实世界条件的模型。DTLN方法在干净和嘈杂的回声条件下都产生了最先进的性能,减少了声学回声和额外的噪声。
2024-12-03 17:15:52
1479
原创 最简单的 DeepAEC Demo
介绍一个最简单的 DeepAEC 模型,使用深度学习技术来实现回声消除。我们将详细描述模型的结构、输入输出的维度以及技术流程。
2024-12-02 20:39:33
428
原创 实数与复数频谱掩蔽在音频分离中的应用
频谱掩蔽是指在音频信号的频谱表示中,通过选择性地增强或抑制某些频率成分来改善信号质量或实现信号分离的技术。频谱掩蔽可以分为两种类型:实数掩蔽和复数掩蔽。
2024-12-02 20:03:00
1196
原创 回声消除延时估计TDE的一些方法:时域互相关和广义互相关(GCC-PHAT)
互相关是一种用于测量两个信号之间相似性的统计方法。它通过计算一个信号在另一个信号上的滑动(或延迟)来评估它们之间的相似性。互相关函数可以帮助我们找到一个信号相对于另一个信号的最佳对齐位置,从而估计它们之间的延迟。
2024-11-29 21:35:35
1098
原创 深度学习基本单元结构与输入输出维度解析
卷积神经网络(CNN)反卷积(转置卷积)循环神经网络(RNN)门控循环单元(GRU)长短期记忆网络(LSTM)全连接层。
2024-11-28 17:54:42
1597
原创 PyTorch 模型转换为 ONNX 格式
在 C++ 进行深度学习模型的工程化时,选择 ONNX 格式通常更为合适,因为它提供了更好的跨平台兼容性和灵活性。PTH 格式虽然在 PyTorch 环境中非常方便,但在 C++ 中的使用受到限制,通常需要额外的转换步骤。ONNX 的开放性和广泛支持使其成为在多种环境中部署深度学习模型的首选格式。
2024-11-28 16:12:08
1612
2
原创 在远程服务器和本地同步数据的指南
在现代软件开发和数据管理中,保持本地和远程服务器之间的数据同步是至关重要的。无论是代码、配置文件还是其他数据,确保它们在不同环境中的一致性都是高效工作的关键。本文将介绍如何使用 Bash 脚本和rsync工具在本地和远程服务器之间同步数据,重点讲解两种同步方式:直接同步和通过跳板机同步。
2024-11-26 20:37:13
947
原创 彻底解决 macOS 下Matplotlib 中文显示乱码问题
安装支持中文的字体:确保系统中安装了支持中文的字体。本文列出的一般都是系统自带的。配置 Matplotlib 使用这些字体:在 Matplotlib 中设置字体,以确保中文字符能够正确显示。# 设置字体为支持中文的字体matplotlib.rcParams['axes.unicode_minus'] = False # 解决负号 '-' 显示为方块的问题matplotlib.rcParams['font.family'] = 'Kaiti SC' # 可以替换为其他字体'''
2024-11-26 12:33:59
1074
原创 前向概率与隐马尔可夫模型的解码问题
在机器学习和信号处理领域,隐马尔可夫模型(HMM)是一种广泛应用于时间序列数据的统计模型。它不仅可以用于序列的生成,还可以用于序列的解码。本文将介绍前向概率和隐马尔可夫模型的解码问题,并通过示例和代码进行说明,最后探讨其在语音模型(如降噪模型)中的应用。
2024-11-25 19:46:06
661
原创 AEC论文解读 -- Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios
传统的声学回声消除(AEC)通过使用自适应算法识别声学脉冲响应来工作。我们将AEC表述为一个监督语音分离问题,该问题分离扬声器信号和近端信号,以便只有后者被传输到远端。一个带有双向长短期记忆(BLSTM)的递归神经网络被训练用来从近端和远端信号的混合特征中估计理想比率掩模。然后应用BLSTM估计的掩模来分离和抑制远端信号,从而消除回声。实验结果表明,所提出的方法在双工、背景噪声和非线性失真场景中去除回声方面是有效的。此外,所提出的方法可以推广到未经训练的说话者。
2024-11-22 10:31:36
313
原创 Microsoft AEC Challenge 数据集介绍
Microsoft AEC Challenge 数据集旨在为自适应回声消除算法的开发和评估提供真实的音频数据。数据集中包含多种场景的录音,涵盖了不同的回声特性和环境噪声。这些数据集的设计为研究人员提供了丰富的资源,以测试和比较不同的 AEC 算法。
2024-11-21 16:45:32
1291
原创 残差网络,解决梯度消失
在深度学习的快速发展中,模型的深度和复杂性不断增加。然而,随着网络层数的增加,训练过程中的一些问题逐渐显现出来,尤其是梯度消失和梯度爆炸问题。这些问题导致了深层神经网络的性能下降,限制了模型的表达能力。为了解决这一问题,Kaiming He 等人在 2015 年提出了残差网络(ResNet),该架构通过引入残差学习的概念,显著提高了深层神经网络的训练效果。
2024-11-21 15:39:19
1044
AEC论文解读 - MULTI-TASK DEEP RESIDUAL ECHO SUPPRESSION WITH ECHO-AWARE LOSS
2024-12-09
AEC论文解读 - A Deep Hierarchical Fusion Network for Fullband Acoustic Echo Cancellation
2024-12-09
AEC论文解读 - MULTI-SCALE TEMPORAL FREQUENCY CONVOLUTIONAL NETWORK WITH AXIAL ATTENTION FOR SPEECH ENHA
2024-12-09
AEC论文解读 - RESIDUAL ACOUSTIC ECHO SUPPRESSION BASED ON EFFICIENT MULTI-TASK CONVOLUTIONAL NEURAL NET
2024-12-06
AEC论文解读 - ACOUSTIC ECHO CANCELLATION WITH THE DUAL-SIGNAL TRANSFORMATION LSTM NETWORK
2024-12-04
AEC论文解读 - Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios
2024-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人