每 10 毫秒录制一次音频的音频缓冲区大小和 FFT 大小是多少?
Posted
技术标签:
【中文标题】每 10 毫秒录制一次音频的音频缓冲区大小和 FFT 大小是多少?【英文标题】:What is the audio buffer size and FFT size for recording audio every 10 ms? 【发布时间】: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 = ?;
【问题讨论】:
【参考方案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);以上是关于每 10 毫秒录制一次音频的音频缓冲区大小和 FFT 大小是多少?的主要内容,如果未能解决你的问题,请参考以下文章