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

如何快速分析音频中的各种频率成分

从视频中提取音频

from moviepy.editor import VideoFileClip# Load the video file and extract audio
video_path = "/mnt/data/WeChat_20241026235630.mp4"
video_clip = VideoFileClip(video_path)# Extract audio and save as a temporary file for further analysis
audio_path = "/mnt/data/extracted_audio.wav"
video_clip.audio.write_audiofile(audio_path)audio_path

分析分离出的音频

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from scipy.fft import fftaudio_path="/mnt/data/extracted_audio.wav"
# Load the audio file
sample_rate, audio_data = wavfile.read(audio_path)# If the audio has two channels (stereo), convert it to mono by averaging the channels
if audio_data.ndim > 1:audio_data = audio_data.mean(axis=1)# Select a segment of the audio for analysis (e.g., the first 5 seconds)
duration_seconds = 5
num_samples = duration_seconds * sample_rate
audio_segment = audio_data[:num_samples]# Perform FFT on the audio segment to get the frequency spectrum
audio_fft = fft(audio_segment)
frequencies = np.fft.fftfreq(len(audio_segment), 1 / sample_rate)
magnitude = np.abs(audio_fft)# Filter positive frequencies for plotting
positive_frequencies = frequencies[:len(frequencies) // 2]
positive_magnitude = magnitude[:len(magnitude) // 2]# Plot the frequency spectrum
plt.figure(figsize=(12, 6))
plt.plot(positive_frequencies, positive_magnitude)
plt.title("Frequency Spectrum of Audio")
plt.xlabel("Frequency (Hz)")
plt.ylabel("Magnitude")
plt.xlim(0, 5000)  # Focus on lower frequencies (common range for mechanical noises)
plt.grid(True)
plt.show()

在这里插入图片描述

这是音频的频谱图,展示了在0到5000 Hz范围内的频率成分。通过观察图中的频率峰值,我们可以得出以下初步分析:

主要频率峰值:

  • 如果在高频范围(1000 Hz以上)有明显峰值,可能来源于电机的旋转噪音,尤其是电机的无刷运行特性。
  • 如果在中低频范围(200-1000Hz)出现峰值,可能是齿轮啮合、传动系统或轮胎摩擦噪声。
  • 低频段(100 Hz以下)的峰值一般是由振动噪声或结构传递噪音引起。

噪声来源可能性:

  • 电机噪声:如果有高频噪声,电机或其驱动电路可能是主要噪声源。
  • 传动系统噪声:中频峰值可能与齿轮啮合或皮带传动有关,可能由于齿轮不对中、松动或缺乏润滑等原因引起。
  • 轮胎和路面摩擦:在较低频率的情况中,轮胎与路面接触的摩擦噪声较为常见。

常见频率峰值的音频噪声源

常见的频率峰值可以帮助识别音频噪声的来源。以下是一些常见的噪声源及其对应的频率范围和特点:

  • 电机噪声
    无刷直流电机(BLDC):主要噪声峰值在高频段(1000 Hz以上),因其高速旋转和换向特性,可能会在电机转速的倍频位置产生峰值。
    有刷电机:通常会产生中频至高频噪声(300-2000 Hz),由于电刷和换向器的摩擦,带来高频成分。
    步进电机:通常在200-600 Hz之间产生噪声峰值,其噪声源于步进脉冲和扭矩振动,尤其在低速时更明显。
  • 齿轮传动噪声
    齿轮啮合频率:齿轮传动系统中最明显的频率峰值通常是齿轮啮合频率(Gear Mesh Frequency, GMF),典型频率范围在200-1000 Hz之间。
    倍频噪声:齿轮系统可能会在啮合频率的倍频位置产生额外的噪声峰值,尤其在齿轮不对中或磨损情况下。
  • 轴承噪声
    滚珠轴承缺陷频率:轴承噪声通常位于中高频(500 Hz以上),主要来源于内外圈、滚珠或保持架的缺陷。
    轴承故障频率:
  • 外圈缺陷:产生的频率取决于滚珠通过外圈的频率,通常较低频段。
  • 内圈缺陷:通常位于较高频段,频率与轴承的转速和滚珠通过内圈的频率有关。
    保持架缺陷:产生频率较低,因为保持架运动速度较慢。
  • 振动和结构共振
    机械共振频率:机械结构和支架可能会在某些频率上产生共振峰值,通常是低频段(20-200 Hz)。共振频率依赖于结构的材料、形状和支撑方式。
    固有频率:当外界激励频率接近结构的固有频率时,可能会引起大幅振动,并导致明显的低频噪声。
  • 风扇和冷却系统噪声
    风扇叶片通过频率(Blade Pass Frequency, BPF):当风扇运行时,叶片通过的频率会产生一个显著的频率峰值,通常在100-500 Hz之间,频率峰值取决于叶片数和风扇速度。
    空气涡流噪声:高速空气流动会产生随机噪声,频率分布较宽,但一般集中在中高频段(500 Hz以上)。
  • 皮带和链条传动噪声
    皮带传动噪声:频率通常在中低频(100-500 Hz),主要由皮带振动和摩擦引起。
    链条传动噪声:与皮带相似,链条传动也会在100-500 Hz范围内产生噪声,特别是链条松紧度不当或磨损时。
  • 轮胎和地面摩擦噪声
    低频摩擦噪声:轮胎与地面的接触摩擦通常在低频段(20-200 Hz),特别在硬地面或粗糙地面上行驶时更明显。
    振动噪声:轮胎不平衡或路面不平整会在较低频率产生明显的振动噪声(通常低于100 Hz)。
  • 电磁干扰噪声
    电源开关噪声:常见于开关电源,通常在数千赫兹到十几千赫兹的频率范围,可能通过电磁辐射方式产生噪声。
    变频器噪声:变频器控制的电机可能产生明显的高频噪声(1000 Hz以上),尤其是PWM(脉宽调制)频率。
    通过识别频谱图中的这些常见频率峰值,可以帮助快速定位噪声来源。
http://www.lryc.cn/news/471961.html

相关文章:

  • MongoDB 6.0 主从复制配置
  • NPU 神经网络处理单元
  • 安宝特分享 | AR技术引领:跨国工业远程协作创新模式
  • Vulkan 开发(五):Vulkan 逻辑设备
  • Kafka 解决消息丢失、乱序与重复消费
  • 计算机专业毕业生面试工具推荐:白瓜面试
  • 数字IC开发:布局布线
  • 高空作业未系安全带监测系统 安全带穿戴识别预警系统
  • k8s的配置和存储(ConfigMap、Secret、Hostpath、EmptyDir以及NFS的服务使用)
  • JS轮播图实现自动轮播、悬浮停止轮播、点击切换,下方指示器与图片联动效果
  • 使用 Kafka 和 MinIO 实现人工智能数据工作流
  • 力扣题86~90
  • 【JavaEE】【多线程】定时器
  • CI/CD 的原理
  • 进一步认识ICMP协议
  • NUUO网络视频录像机upload.php任意文件上传漏洞复现
  • WebGL 3D基础
  • Docker 部署MongoDb
  • 【Hadoop】hadoop的路径分不清?HDFS路径与本地文件系统路径的区别
  • 倪师学习笔记-天纪-易经八卦
  • 自动驾驶性能分析时,非常有用的两个信息
  • 数据结构 - 并查集
  • canvas基础+应用+实例
  • Linux命令 用户操作简介
  • 大语言模型的Scaling Law【Power Low】
  • windows环境下,使用docker搭建redis集群
  • Python(pandas库3)
  • WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装
  • 数据结构————map,set详解
  • fdisk - Linux下的磁盘分区利器