4

我正在制作 TalkingTomcat 之类的应用程序。我正在使用 android 录音机录制声音,并使用 libsonic 我通过改变音高来播放声音。但是在播放声音时它会发出很多噪音。即使我正在使用音轨播放声音样本,它也会发出声音。我使用的是 44100 采样率和 MONO 和 16 位。

如果有人可以帮助我,请帮助我。或者给我另一种方法来实现这一点。

4

2 回答 2

2

您可以在预处理阶段进行噪声去除。在这里,我过滤了语音和音乐的可听范围。我发现这在我的测试中非常有效,而不是 NoiseSuppressor。使用方法和实用方法,

recorder.read(data, 0, data.length);
if(isAudible(data)) {
    // TODO further processing can go here
}

public static boolean isAudible(short[] data) {
    double rms = getRootMeanSquared(data);
    return (rms > 198 && 5600 > rms);
}

public static double getRootMeanSquared(short[] data) {
    double ms = 0;
    for (int i = 0; i < data.length; i++) {
        ms += data[i] * data[i];
    }
    ms /= data.length;
    return Math.sqrt(ms);
}
于 2015-06-08T15:20:43.367 回答
0

你玩过NoiseSuppressor吗?“噪声抑制 (NS) 是一种音频预处理,可从捕获的信号中去除背景噪声”

于 2013-04-12T12:13:05.350 回答