相关疑难解决方法(0)

使用快速傅里叶变换分析音频

我正在尝试在python中创建一个图形频谱分析器.

我目前正在读取1024字节的16位双通道44,100 Hz采样率音频流,并将两个通道的幅度平均在一起.所以现在我有256个签名短裤阵列.我现在想要使用像numpy这样的模块在该阵列上预先形成一个fft,然后使用结果创建图形频谱分析器,开始时只需32个小节.

我已经阅读了关于快速傅里叶变换和离散傅里叶变换的维基百科文章,但我仍然不清楚结果数组代表什么.这是我使用numpy在我的数组上执行fft后数组的样子:

   [ -3.37260500e+05 +0.00000000e+00j   7.11787022e+05 +1.70667403e+04j
   4.10040193e+05 +3.28653370e+05j   9.90933073e+04 +1.60555003e+05j
   2.28787050e+05 +3.24141951e+05j   2.09781047e+04 +2.31063376e+05j
  -2.15941453e+05 +1.63773851e+05j  -7.07833051e+04 +1.52467334e+05j
  -1.37440802e+05 +6.28107674e+04j  -7.07536614e+03 +5.55634993e+03j
  -4.31009964e+04 -1.74891657e+05j   1.39384348e+05 +1.95956947e+04j
   1.73613033e+05 +1.16883207e+05j   1.15610357e+05 -2.62619884e+04j
  -2.05469722e+05 +1.71343186e+05j  -1.56779748e+04 +1.51258101e+05j
  -2.08639913e+05 +6.07372799e+04j  -2.90623668e+05 -2.79550838e+05j
  -1.68112214e+05 +4.47877871e+04j  -1.21289916e+03 +1.18397979e+05j
  -1.55779104e+05 +5.06852464e+04j   1.95309737e+05 +1.93876325e+04j
  -2.80400414e+05 +6.90079265e+04j   1.25892113e+04 -1.39293422e+05j
   3.10709174e+04 -1.35248953e+05j   1.31003438e+05 +1.90799303e+05j...
Run Code Online (Sandbox Code Playgroud)

我想知道这些数字究竟代表什么,以及我如何将这些数字转换为32个柱中每一个的高度百分比.另外,我应该将2个频道平均在一起吗?

python audio signal-processing fft spectrum

107
推荐指数
3
解决办法
6万
查看次数

如何从实时音频开发频谱分析仪?

我正在开发一个应用程序,实时从麦克风获取源音频,没有文件存储.基本上,我使用:

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile("/dev/null");
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何从这个实时音频中创建频谱图形,没有文件.可以办到?

我读到的所有帖子都在分析缓冲文件.

谢谢你,对不起我的英语.

audio android spectrum

9
推荐指数
2
解决办法
2万
查看次数

计算频谱分析仪的值

我将如何实现如下WinAmp中的频谱分析仪?

来自Winamp的'均衡器条'示例

仅仅通过观察它,我认为这些条被渲染以显示输入音频数据的特定频带的"音量级"; 但是,我不确定如何实际计算绘制条形图这么简单的任务所需的数据.

根据我的说法和理解,计算这些值可以通过使用FFT来完成 - 但是,我不确定如何计算这些值,给定输入数据的缓冲区 - 我是否在关于FFT的正确轨道上?如何对输入数据应用FFT,并从FFT中获得表示特定频段"体积"的整数?

绘图部分不是问题,因为我可以直接绘制到我的帧缓冲区并将其渲染出来.我正在使用Nios II软CPU作为FPGA上的项目,以防任何人想知道潜在的硬件限制.音频数据以96kHz的24位数据形式输入.

c equalizer

2
推荐指数
1
解决办法
1942
查看次数

标签 统计

audio ×2

spectrum ×2

android ×1

c ×1

equalizer ×1

fft ×1

python ×1

signal-processing ×1