我正在尝试从 wav 文件(44100Hz)中识别单词的声音区域。我的研究给了我一个想法,我必须使用“短时能量”和“零交叉率”。但问题是我不清楚编写代码的公式。因此,如果有人可以指导我获得非常清晰的伪代码,我将不胜感激。而且,如果有人能告诉我使用它的顺序,我也会非常感激。提前致谢。
使用短时能量和过零率
信息处理
声音的
2022-01-30 07:33:40
1个回答
音频块的音频处理 FFT 这将为您提供作为时间和频率函数的短期能量。
过零本身很容易编码(这个例子是概念性的,但效率很低)
x0 = x(1);
for i = 2:length(x)
x1 = x(i);
if (x0 > 0 && x1 < 0) || (x0 < 0 && x1 > 0)
% you have a zero crossing
doSomethingWithAZeroCrossing(i);
end
x0 = x1;
end
然而,过零对音频信号中的良性且通常不相关的变化相当敏感,因此过零的用处有限。尤其
- 即使是少量的噪声也会产生大量额外的过零并“抖动”现有的过零
- 直流偏移的波动或极低频噪声(如空调或加热风扇拿起我的麦克风)将零交叉移动到整个地方
其它你可能感兴趣的问题