如何在wav文件中跟踪没有声音的部分? 我想开发的一个小软件是一个wav文件,它认为没有卷区域作为一个重点。 程序怎么知道wav文件的音量很低? 我将使用Java或MFC。
答案 0 :(得分:8)
通过计算信号的RMS,我在静音检测方面取得了成功。这是通过以下方式完成的(假设您有一个音频样本数组):
long sumOfSquares = 0;
for (int i = startindex; i <= endindex; i++) {
sumOfSquares = sumOfSquares + samples[i] * samples[i];
}
int numberOfSamples = endindex - startindex + 1;
long rms = Math.sqrt(sumOfSquares / (numberOfSamples));
如果rms低于某个阈值,您可以认为它是静默的。
答案 1 :(得分:3)
嗯,波形文件基本上是一个值列表,它代表一个声波,它以一定的速率(通常为44100 Hz)谨慎划分。当值接近0时,沉默基本上是。只需设置一些阈值并查找值低于该阈值的连续(比如说100ms长度)区域。
答案 2 :(得分:0)
通过比较声音块与某些值(根据记录质量选择)来进行简单的静音检测。
类似的东西:
abs(track[position]) < 0.1
或
(track[position]) < 0.1) && (track[position]) > -0.1)
如果我们假设chunk是[-1,1] float。
如果声音正常化,效果会更好。