2012-03-21 1 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ビットオーディオを扱っていることはほとんどありません。 –

答えて

0

2番目のコードスニペットでは、値をスケーリングしていますが、整数を使って行います。

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の配列のためのより-より-やや混乱変数名です。あなただけの直接浮動小数点値を使用してみました

関連する問題