Open iLovEing opened 1 year ago
下面对其中重要的概念和方法做简单的介绍
正弦波 $y = Asin(2\pi fx + \varphi )$ 其中,f 为频率, $2\pi f$ 为角频率, $2\pi fx + \varphi$ 为相位, $\varphi$ 为初始相位
频谱 复杂的波形可以通过fft分解为许多个正弦波的叠加,因此我们可以画出这样一张图,其横轴为这些正弦波分量的频率,纵轴为这些正弦波分量的振幅,这样的图就是频谱。
基音与基频 复杂声音中最低且通常情况下最强的频率,我理解为声音的基础“音调”
功率与声强
假设周期信号为 $y=f(t)$ ,声音的功率可以表示为:
$P=\frac{1}{T}\int{0}^{T}(f(t))^{2}dt$
声强定义为:
$L{dB} =10\log{10}{\frac{P}{P{0}}} $单位为分贝, $P_{0}$ 为人耳能听到的最小分贝
非线性刻度 人耳对声音的感知是非线性的,这种非线性主要体现在两方面:对频率感知的非线性,以及对声强感知的非线性。经典的频率刻度有:
将连续的模拟信号转换为离散的数字信号有两个步骤:采样和量化。再使用一定的编码规则转换成最后的音频文件。
采样 采样是指对模拟信号进行周期性采样,给定一个采样率,能重建的周期信号的频率是该采样率的一半(波峰一次,波谷一次)。
量化 信号经过采样之后,得到时间轴上每个点的幅值,在计算机上保存时,会用一定位数的存储空间保存(二进制),比如8位,这时所有的幅值都用这个8位二进制来表示,就是8位量化,量化意味着精度的损失。
编码 量化时具体的映射关系即编码规则,比如最简单的线性脉冲编码(liner PCM),其在量化时相邻整数表示的信号差值固定,即信号在映射到量化区域上是均匀且线性的。常见的编码规则有:线性编码、非线性编码、自适应编码、差分编码(对相邻信号差做量化),线性预测编码($x[n]=\sum{i=1}^{p}a{i}x[n-i]+e[n] $),频域编码等
对一段音频做全局特征分析,比如将整段信号进行ft计算频谱,相当于对音频信号在时间轴上做了某种平滑处理,从而使时间分辨率降为零,这种做法会丢失信号中的大量局部信息。如果音频中有一些噪音片段,那么这些片段会对最后得到的特征造成进一步污染。 全局特征只有当信号十分平稳的时候才是有意义的,而日常的音频信号随时间变化而变化,因此,需要从局部提取特征,在每一个局部的短时间内,可以近似地认为信号是平稳的。这是音频信号特征分析的基础——短时分析技术。
分帧 从局部提取特征,就需要将音频按一定长度的窗口分割为帧,分帧时会遇到帧长度,取帧间隔等超参。25 毫秒的帧长度,10 毫秒的帧间隔,是一组语音识别中常用的设置,该设置下帧有重叠。 在分帧后可以计算每帧的特征向量,再使用特征向量做相关任务。有时每一帧输入模型的效果可能不如多帧叠加,引申出帧叠加与帧采样两种做法:
窗函数处理 分帧处理后,每帧的头尾被截断。如果直接对这样的信号做fft,会发生吉布斯现象,在不连续点出产生高频分量,导致频谱出现局部峰值。此外,由于周期信号在分帧过程中被截断,会导致频谱在整个频带内发生拖尾现象,这被称为频谱泄漏。 为了避免上述不良影响,可以对分帧之后的信号进行加窗处理,将较大的权重赋予靠近窗中心的信号,将接近零的权重赋予靠近窗边缘的信号,减轻分帧时所造成的信号不连续性。常见的有汉宁窗和汉明窗。(直接用窗口函数乘以信号强度)
貌似这里和Z变换有关
声纹的概念来自于指纹,广义上讲,可以将一个\一类声音和其他声音区分开来的特征,都可以认为是声纹特征。这里主要记录声纹识别相关的技术发展和工程应用