使用audiorecorder消除音频样本记录中的噪音

时间:2013-04-12 12:07:58

标签: android audio audio-recording

我正在制作像应用程序一样的TalkingTomcat。我正在使用Android录音机录制语音并使用libsonic我通过改变音调播放声音。但在播放声音时会产生很多噪音。 即使我正在使用音轨播放声音样本,然后它也会发出噪音。 我使用44100采样率和MONO和16位。

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

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

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