byte[]
サウンドからホワイト ノイズを除去するアルゴリズムを教えてもらえますか? 私はAndroid用の個人用オーディオ録音アプリで働いており、録音にはAndroid APIを使用しています。以下は、録音をファイル (wav 形式) に書き込むために使用される方法です。
private AudioRecord.OnRecordPositionUpdateListener updateListener = new AudioRecord.OnRecordPositionUpdateListener()
{
public void onPeriodicNotification(AudioRecord recorder)
{
aRecorder.read(buffer, 0, buffer.length);
try
{
fWriter.write(buffer); // Write buffer to file
payloadSize += buffer.length;
if (bSamples == 16)
{
for (int i=0; i<buffer.length/2; i++)
{ // 16bit sample size
short curSample = getShort(buffer[i*2], buffer[i*2+1]);
if (curSample > cAmplitude)
{ // Check amplitude
cAmplitude = curSample;
}
}
}
else
{ // 8bit sample size
for (int i=0; i<buffer.length; i++)
{
if (buffer[i] > cAmplitude)
{ // Check amplitude
cAmplitude = buffer[i];
}
}
}
}
catch (IOException e)
{
Log.e(AudioRecorder2.class.getName(), "Error occured in updateListener, recording is aborted");
}
}
public void onMarkerReached(AudioRecord recorder)
{}
};
バッファにいくつかの変換を適用して、録音の再生中に聞こえるホワイト ノイズを除去したいと考えています。ローパスフィルターへのアルゴリズム/リンク(または役立つ可能性のあるもの)を知っている人がいる場合は、助けてください。
ありがとう。