两个A、B音频的频谱只有主峰(含有基频、A为黄树蟋的叫声、B为碗杯盖敲打声),一个峰宽,一个峰尖,听起来是不同的,频谱上如何区别它们的不同呢?图1、2为音频A频谱、包络,图3、4为音频B频谱、包络,图5、6为2000Hz的纯音。A、B主峰基频都是2300左右,他们倍数谐波都不在主峰里面,主峰外他们泛音很弱,那主峰里除基频还有什么频率(声音由基频和其整数倍谐波组成,那谐波很弱,又不在主峰里,而且只有主峰情况下)?从共振峰来分析还是主峰带宽来分析声音的不同?另纯音的峰尖很多。
在频谱上区分两个音频的不同可以考虑以下几个方面:
主峰频率:观察主峰的频率位置,即基频所在的频率。不同音频的基频可能不同,通过比较主峰的频率位置可以初步判断它们是否不同。
峰宽:观察主峰的宽度,即主峰在频谱上的展宽程度。不同音频的峰宽可能不同,峰宽较窄的音频通常具有更明显的谐波结构。
峰尖度:观察主峰的峰尖度,即主峰的峰值相对于峰宽的程度。峰尖度较高的音频通常具有更清晰、更锐利的音质。
谐波结构:观察主峰周围是否存在谐波峰,即主峰的倍频频率成分。不同音频的谐波结构可能不同,谐波的存在与相对强度可以提供音频的特征信息。
需要注意的是,频谱分析只能提供一些初步的信息,对于复杂的音频特征和感知差异可能不够准确。其他音频特征,如时域波形、音色、音调、音乐节奏等,也是区分不同音频的重要因素。综合使用多种分析手段和听觉感知可以更全面地理解和区分音频。
在频谱分析中,频谱的主峰通常代表了一个信号的基频,即我们通常说的音高。不过,频谱形状(包括主峰的宽度)也可以影响我们对音频的感知。
音频信号的频谱峰值是一个表示音高的主要因素。而峰值的宽度可以表示音频信号的频率分布范围。比如,如果一个峰值比较宽,那就意味着这个信号包含的频率成分比较多,反之如果峰值比较尖,那就意味着这个信号的频率成分比较集中。
峰宽(宽带):如果一个频率峰比较宽,那就意味着这个音频信号包含的频率成分比较多。这通常对应于我们听到的声音比较"复杂"或者"丰富"。因为除了基频以外,还有很多其他的频率成分在其中。在实际音乐中,比如一种乐器的声音通常就比较复杂,包含很多不同的频率成分。
峰尖(窄带):如果一个频率峰比较尖,那就意味着这个音频信号的频率成分比较集中,通常对应的声音会比较"单一"或者"简单"。比如纯音(sine wave)的频谱就只有一个尖峰,没有其他的频率成分。
所以通过观察频谱上的主峰是否宽或尖,我们可以了解这个音频信号的复杂程度或者说是色彩,从而辨别出两个音频的不同。
观察主峰所在的频率位置,即基频的位置。如果两个音频的基频位置不同,那么它们的频谱就会有明显的差异。峰宽可以用于描述主峰的频率范围。一个峰宽较宽的主峰表示音频中含有更多的频率分量,而一个峰宽较窄的主峰则表示音频中只含有少量的频率分量。峰尖度可以用于衡量主峰的尖锐程度。一个峰尖度较高的主峰表示音频中该频率上的能量较为集中,而一个峰尖度较低的主峰则表示音频中该频率上的能量较为分散。还可以去观察整个频谱的形状是否相似。如果两个音频的频谱形状相似,但在某个特定频率上出现明显的差异,则可以推断该频率是两个音频不同的地方。再有可以比较两个音频中相同频率上的能量强度。如果两个音频在相同频率上的能量强度差异较大,那么可以通过这种差异来区分它们的不同。
在 MATLAB 和 Python 中,您可以使用信号处理库来比较两个音频的频谱。以下是一个基本的示例:
MATLAB 示例代码:
matlab
Copy Code
% 读取音频文件
[audio1, fs1] = audioread('audio1.wav');
[audio2, fs2] = audioread('audio2.wav');
% 计算频谱
spec1 = abs(fft(audio1));
spec2 = abs(fft(audio2));
% 绘制频谱图
f1 = (0:length(spec1)-1)*(fs1/length(spec1));
f2 = (0:length(spec2)-1)*(fs2/length(spec2));
figure;
subplot(2,1,1);
plot(f1, spec1);
title('Audio 1 频谱');
xlabel('频率 (Hz)');
ylabel('幅度');
subplot(2,1,2);
plot(f2, spec2);
title('Audio 2 频谱');
xlabel('频率 (Hz)');
ylabel('幅度');
Python 示例代码:
python
Copy Code
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
# 读取音频文件
fs1, audio1 = wavfile.read('audio1.wav')
fs2, audio2 = wavfile.read('audio2.wav')
# 计算频谱
spec1 = np.abs(np.fft.fft(audio1))
spec2 = np.abs(np.fft.fft(audio2))
# 绘制频谱图
f1 = np.arange(len(spec1)) * (fs1 / len(spec1))
f2 = np.arange(len(spec2)) * (fs2 / len(spec2))
plt.figure()
plt.subplot(2, 1, 1)
plt.plot(f1, spec1)
plt.title('Audio 1 频谱')
plt.xlabel('频率 (Hz)')
plt.ylabel('幅度')
plt.subplot(2, 1, 2)
plt.plot(f2, spec2)
plt.title('Audio 2 频谱')
plt.xlabel('频率 (Hz)')
plt.ylabel('幅度')
plt.show()
这些代码将读取两个音频文件,并使用FFT变换来计算频谱。然后使用 matplotlib 库绘制频谱图,其中 x 轴表示频率,y 轴表示幅度。
请确保您已经安装了对应的 MATLAB 信号处理工具箱或者 Python 的 scipy 库以及 matplotlib 库。
要区分两个音频在频谱上的不同,主要是通过观察以下几个方面:
峰的位置:观察主峰(包含基频)所在的位置。不同音频的主峰位置可能略有差异,可以通过比较峰的中心频率来判断。
峰的幅度:观察峰的幅度大小或者能量强度。不同音频的峰值幅度可能不同,可以通过比较峰值的强度来区别。
峰的宽度:观察峰的宽度,即频谱中峰的带宽。不同音频的峰宽可能不同,可以通过比较峰的宽度来判断。
谐波结构:观察峰的谐波结构。不同音频的谐波分布可能有所差异,可以通过比较谐波结构以及相对于基频的强度关系来区分。
需要注意的是,单凭频谱信息可能无法完全区分两个音频的差异,因为频谱只提供了频率上的信息,而音频还有其他的特征,如时域、时间和声音特性等。因此,在实际应用中,可以综合考虑以上频谱特征以及其他相关特征进行综合分析和判断。
另外,对于频谱分析问题,还可以使用更高级的信号处理方法,如短时傅里叶变换(STFT)或小波变换等,这些方法能够提供更详细和准确的频谱信息,进一步帮助区分音频的不同。
在声学频谱分析中,可以通过以下几个特征来区别具有相同主峰的音频的不同:
谐波结构:观察主峰的谐波结构。如果一个音频具有更多的谐波分量(即主峰的倍频),则说明它在频谱上会有更多的峰,而另一个音频可能具有较少的谐波分量。
峰的幅度:比较主峰的幅度大小。如果一个音频的主峰幅度较高,而另一个音频的主峰幅度较低,则说明它们在频谱上的能量分布不同。
峰的形状:观察主峰的形状。如果一个音频的主峰形状更窄且更尖锐,而另一个音频的主峰形状更宽,则说明它们在频谱上的频率分布不同。
频谱的平滑度:通过对频谱进行平滑处理,观察平滑后的频谱曲线形状。如果一个音频的频谱曲线较为平滑,而另一个音频的频谱曲线较为波动,则说明它们在频谱上的能量分布不同。
需要注意的是,这些特征只是一些常见的区分方法,具体要根据具体的音频数据和分析目的进行判断。同时,其他因素如音色、音量、音频信号的时域特征等也可能对听觉感知产生影响,因此单纯从频谱上进行分析可能无法完全反映听觉上的差异。
补充一下这两个音频主峰的基频都差不多,只是一个峰宽、一个峰尖,然后他们整数倍谐波已超出主峰范围,那主峰除了基频还有什么频率呢?主峰里基频在中间两边会是什么呢?我怀疑是共振峰的影响,我用的是AU软件分析的频谱。
在频谱分析中,不同音频的频谱可以通过以下几个方面进行区别和比较:
频率成分:观察频谱的频率成分分布。不同音频可能在频谱中具有不同的频率成分。即使有相同的主峰和基频,它们在其他频率上的能量分布可能有所不同。比较两个频谱的其他频率成分是否相似或存在差异。
谐波结构:观察频谱中的谐波结构。不同音频的谐波成分可能会有所不同。谐波是基频的倍频,它们会在频谱中以峰的形式出现。比较两个频谱的谐波结构是否相似或存在差异。
峰宽和峰尖:观察频谱中峰的宽度和峰的尖锐程度。不同音频的频谱峰可能具有不同的宽度和尖锐度。峰的宽度可以显示音频频率的波动范围,而峰的尖锐度可以显示音频频率的集中程度。比较两个频谱的峰宽和峰尖是否相似或存在差异。
此外,还可以考虑使用其他技术和算法来区分不同音频的频谱特征,如谱图比较、基于人工智能的模式识别等。这些方法可以进一步分析和比较频谱中的各种特征,以更准确地区分不同音频。但无论使用何种方法,频谱上的不同只是判断音频之间差异的一部分,还需要综合考虑其他音频特征,如时域特征、幅度特征、声音质量等,才能获得更全面和准确的比较结果。
频谱包络:除了查看主峰之外,还可以注意信号整体的频谱包络形状。不同的音频可能在主峰之外有其他频谱分量或特征。
谐波结构:检查主峰附近是否存在谐波分量。不同音频的谐波分量位置、强度和分布可能会有所不同。
频谱的动态变化:观察整个音频信号的频谱变化情况。音频信号可能在时间上有不同的演变或调制,导致频谱的变化。
观察谐波成分。宽峰通常含有更多谐波,而尖峰谐波少,或者比较峰的能量集中度。尖峰能量更集中于基频,宽峰能量分散,宽峰的频率变化更缓慢,尖峰变化急剧,宽峰的相位更规则,尖峰相位急变