【发布时间】:2015-04-02 05:11:16
【问题描述】:
我能够编写一个程序来捕获音频信号、消除背景噪音、应用窗口函数和可视化该信号。我的程序运行到现在没有错误。现在我正在尝试对我的代码实施高通滤波器。我已经找到了这部分的 API。但我无法根据我的代码应用它。这是我的代码:
private class RecordAudio extends AsyncTask<Void, double[], Void> {
@Override
protected Void doInBackground(Void... params) {
started = true;
try {
DataOutputStream dos = new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(
recordingFile)));
int bufferSize = AudioRecord.getMinBufferSize(frequency,
channelConfiguration, audioEncoding);
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
frequency, channelConfiguration, audioEncoding,
bufferSize);
NoiseSuppressor.create(audioRecord.getAudioSessionId());
short[] buffer = new short[blockSize];
double[] toTransform = new double[blockSize];
long t = System.currentTimeMillis();
long end = t + 15000;
audioRecord.startRecording();
while (started && System.currentTimeMillis() < end) {
int bufferReadResult = audioRecord.read(buffer, 0,
blockSize);
for (int i = 0; i < blockSize && i < bufferReadResult; i++) {
toTransform[i] = (double) buffer[i] / 32768.0;
dos.writeShort(buffer[i]);
}
toTransform = hann(toTransform);
transformer.ft(toTransform);
publishProgress(toTransform);
}
audioRecord.stop();
dos.close();
} catch (Throwable t) {
Log.e("AudioRecord", "Recording Failed");
}
return null;
}
This 是 API 链接。
谁能帮我做这个功能?我真的很感激! :)
提前致谢!
【问题讨论】:
-
您在 3 天前提出了 [同样的问题][1]。 [1]:stackoverflow.com/questions/28252665/…
-
@Jens 是的。我再次发布它,因为它没有帮助我。无论如何,昨天晚上我能够实现高通滤波器功能。那我需要做什么??我需要关闭这个问题吗?因为我是 stackoverflow 的新手。
-
通常您会在对第一个问题的回复中添加评论,说明为什么回复没有回答您的问题。也许改写(编辑)您的原始问题以提高可读性。请记住,StackOverflow 用户在提出这些问题后很长一段时间都会继续阅读这些问题。
-
好的,谢谢 Jens ......干杯! ....:)
标签: java android signal-processing highpass-filter