java - 每10毫秒记录一次音频的音频缓冲区大小和FFT大小是多少?

标签 java android audio signal-processing fft

我正在尝试使用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 = ?; 

最佳答案

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

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

关于java - 每10毫秒记录一次音频的音频缓冲区大小和FFT大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43000205/

相关文章:

Java读取文件并将文本存储为数组

java - 使用 Mockito 在 JUnit 中使用 PowerMock 和 PowerRule 获取 javassist.NotFoundException

android - 从 Firebase 数据库中获取数据时如何显示加载消息?

actionscript-3 - 如何在actionscript-3中应用声音失真?

java - 找不到指定的模块。 Tess4j 使用 Maven

java - 如何使用 postman 调试我的其余 webservices maven 项目?

java - 尝试登录时 Firebase.AuthSateListener 未运行

Android 视频精准搜索

performance - Corona SDK,加快声音播放

ios - React Native - 如何在 iOS 中控制声音输出