【问题标题】:What is the audio buffer size and FFT size for recording audio every 10 ms?每 10 毫秒录制一次音频的音频缓冲区大小和 FFT 大小是多少?
【发布时间】:2017-03-24 13:01:12
【问题描述】:

我正在尝试使用 AudioRecord API 录制音频,并且正在尝试将时域转换为频域。如果我想每 10 毫秒录制一次音频,那么缓冲区和 FFT 大小是多少?

audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
            44100, AudioFormat.CHANNEL_IN_MONO,
            AudioFormat.ENCODING_PCM_16BIT, what is the buffersize?);

short = new short[what is the buffer size ?];
int fftSize = ?; 

【问题讨论】:

    标签: java android audio signal-processing fft


    【解决方案1】:

    如果您的采样率为 44.1 kHz,那么 10 ms 将是 0.01 * 44100 = 441 个样本。

    如果您的 FFT 库仅支持 2 个大小的幂,那么您可以使用 N = 512 作为您的 FFT 大小并使用零填充或使用重叠窗口。

    【讨论】:

    • 感谢回复。如果 fft 大小 512 那么这是正确的 audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 512 (0r) 2*512);
    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2021-08-16
    • 2021-06-02
    相关资源
    最近更新 更多