【问题标题】:Remove noise from audio sample record using audiorecorder使用录音机从音频样本记录中去除噪音
【发布时间】:2013-04-12 12:07:58
【问题描述】:

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

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

【问题讨论】:

    标签: android audio audio-recording


    【解决方案1】:

    您可以在预处理阶段进行去噪。在这里,我过滤了语音和音乐的可听范围。我发现这在我的测试中非常有效,而不是 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);
    }
    

    【讨论】:

    • 非常感谢,这件事,我很久以前就想到了。酷!!
    • 在这个范围内,我们仍然会遇到一些静态问题,我们还能做些什么来清理它?
    【解决方案2】:

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

    【讨论】:

    • Noise Suppressor 在 API 16 中不支持低于 16 的 api,我正在使用 api 8。
    • 提高编码码率
    • 有没有去除现有音频噪音的示例代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2018-07-18
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多