byte[]
サウンドからホワイトノイズを除去するアルゴリズムを誰にでも教えてもらえますか?私はアンドロイドのためのパーソナルオーディオレコーディングアプリのために働き、私は録音のためにアンドロイドAPIを使用します。以下は、録音をファイルに書き込む方法(wav形式)です。java - バイト配列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)
{}
};
バッファリングにいくつかの変換を適用して、録音再生中に聞こえる白色ノイズを除去したいとします。 誰かが何らかのアルゴリズムを知っている/いくつかの低域フィルター(または役立つかもしれない他のもの)へのリンクがあれば、助けてください。
ありがとうございました。
、あなたの前処理段階で、次のだろう、あなたのオーディオ信号について何かを知っている限り、あなたは、ホワイトノイズを削除することはできません。たとえば、特定の周波数帯域しか占有していないことがわかっている場合は、ローパスフィルタを使用して高周波ノイズを除去できます。しかし、一般的な解決策はありません。 –
私も同じ騒音を得ています。解決策を見つけましたか? – Manoj
いいえ、私はこのプロジェクトを後にしました。見つけたら、ここに返信してください。私はあなたの答えを受け入れます。 –