2013-04-12 110 views
4

我正在使TalkingTomcat像app一樣。我正在使用android錄音機錄製聲音,並使用libsonic我正在通過改變音高播放聲音。但在播放聲音時會產生很多噪音。 即使我正在使用音軌播放聲音樣本,那麼它也會產生噪音。 我正在使用44100採樣率和MONO和16位。使用audiorecorder從音頻採樣記錄中消除噪音

如果有人能幫助我,請幫助我。或者給我另一種方法來實現這一點。

回答

0

你玩過NoiseSuppressor嗎? 「噪聲抑制(NS)是一種音頻預處理,可消除捕獲信號中的背景噪聲」

+0

噪音抑制器是在API 16中低於16 API不不支持,我在API 8. – Singhak

+0

增加編碼比特率 –

+0

工作是否有從現有音頻去除噪聲的任何示例代碼。 – vijay

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); 
} 
+0

非常感謝,這件事,我很久以前就想到了。涼!! – Sergey