Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 转换FFT数据以匹配计算频谱FFT输出_Flash_Actionscript 3_Audio_Fft - Fatal编程技术网

Flash 转换FFT数据以匹配计算频谱FFT输出

Flash 转换FFT数据以匹配计算频谱FFT输出,flash,actionscript-3,audio,fft,Flash,Actionscript 3,Audio,Fft,我习惯于使用SoundMixer.computeSpectrum,但我需要从麦克风中实时获取一些数据(我不能将SoundMixer与麦克风一起使用) 如所示,我在转换FFT数据(从)以匹配ByteArray从computeSpectrum输出时遇到问题。我的现有代码用于处理从computeSpectrum接收的数据(将FFT设置为true) 感谢您的帮助 在您链接的示例代码中,m_mag向量包含光谱数据本身。如果要将其修改为与设计用于computeSpectrum的现有代码一起使用,则应将此向量

我习惯于使用
SoundMixer.computeSpectrum
,但我需要从麦克风中实时获取一些数据(我不能将SoundMixer与麦克风一起使用)

如所示,我在转换FFT数据(从)以匹配
ByteArray
computeSpectrum
输出时遇到问题。我的现有代码用于处理从
computeSpectrum
接收的数据(将
FFT
设置为
true


感谢您的帮助

在您链接的示例代码中,
m_mag
向量包含光谱数据本身。如果要将其修改为与设计用于
computeSpectrum
的现有代码一起使用,则应将此向量中的值写入
ByteArray
中,如下所示:

import flash.utils.ByteArray;

var fftBytes:ByteArray = new ByteArray();
for(var i:uint = 0; i < N/2; i++)
{
    var re:Number = m_tempRe[i];
    var im:Number = m_tempIm[i];
    var mag:Number = re*re + im*im;
    // Old method: write to vector
    // m_mag[i] = Math.sqrt(sample);
    // New method: write to ByteArray
    fftBytes.writeFloat(mag);
}
// microphone is mono, so make a copy to match computeSpectrum's stereo output
fftBytes.writeBytes(fftBytes, 0, fftBytes.length);
导入flash.utils.ByteArray;
var fftBytes:ByteArray=newbytearray();
对于(变量i:uint=0;i
然后,您现有的代码可以直接查看
fftBytes
,而不是调用
computeSpectrum
。请注意,我们在
ByteArray
末尾再次复制这些值,以模拟
computeSpectrum
始终返回立体声数据,但麦克风是单声道的这一事实。通过调整现有代码以接受mono数据并查看
m_mag
向量,而不是将其全部写入
ByteArray
,您还可以获得一点速度


此外,您可能需要将代码顶部的
SAMPLE\u RATE
N
常数分别更改为
44100
9
。这将匹配默认的
computeSpectrum
行为,即每个通道返回256个值,采样频率为44100Hz。

不清楚您要做什么。您是在尝试为来自麦克风的音频生成动态波形还是…?不。我想分析音频,就像在示例链接中一样,但我需要执行其他分析。非常有用,Mike。我目前正在使用ASFFT(一种基于炼金术的解决方案)来尝试完成这个项目,但我希望在一切就绪后回到纯AS解决方案。非常感谢您的投入!