将音频样本从字节转换为复数?

大家问候,

我目前正在使用C#后端开发Silverlight中的乐器/语音半音调音器。 我处于起步阶段,在获取音频数据方面存在问题。 我正在使用AudioSink类在实时捕获开始时将音频写入内存流。 我遇到的问题是将流中的这些字节转换为复数,以便将其输入FFT算法。 我已经尝试过这篇文章中讨论的各种方法将字节数组转换为double但不确定应该使用哪种方法。

从字节数组到复数数组的任何建议? 准确性和速度是必须的(比速度更准确),因为我的项目的后期阶段将实时执行此过程,以便在声音进入时显示正在播放的音高。

干杯谢谢!

玩笑

CodeProject上的这个项目可能对您有用,因为它在C#中,并通过Cooley-Turkey FFT算法处理音频处理。

如果你不想筛选它,那么字节到复数位:

  byte [] data = yourByteArray;
 double [] x = new double [data.Length];
 for(int i = 0; i 

我对声音处理知之甚少,所以不知道除以32768是否是这个解决方案所独有的,或者通常是真的。

此外,虽然这将是100%准确,但我不知道它的表现如何。 如果这成为一个问题,您可能需要重构。