2012-03-21 94 views
0

大家好我需要把我的音频流的值[-1,1]。Naudio - 将音频流转换为值[-1,1]

有人可以告诉我一个好方法。我正在读取流中的字节数组和浮点数组,但我不知道接下来要做什么。

这里是我的代码:

float[] bytes=new float[stream.Length]; 
      float biggest= 0; 
      for (int i = 0; i < stream.Length; i++) 
      { 
       bytes[i] = (byte)stream.ReadByte(); 
       if (bytes[i] > biggest) 
       { 
        biggest=bytes[i]; 
       } 
      } 

,我不知道如何把价值成流。因为字节只是正值。我需要从[-1,1]

 for (int i = 0; i < bytes.Count(); i++) 
     { 
      bytes[i] = (byte)(bytes[i] * (1/biggest)); 
     } 
+0

你的音频格式是什么?浮动,短?你实际上处理8位音频是不太可能的。 – 2012-03-21 16:15:17

回答

0

有在你的第二个代码片段,你缩放值,但使用整数做。您是否尝试过只用浮点值直接:

for (int i = 0; i < bytes.Length; i++) 
    { 
     bytes[i] /= biggest;  // scale bytes to 0..1 
     bytes[i] *= 2;   // scale bytes to 0..2 
     bytes[i]--;    // scale bytes to -1..1 
    } 

顺便说一句bytes是一个更比稍混乱的float数组变量名。