大家好我需要把我的音频流放到[-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];
}
}
并且我不知道如何将值放入流中。因为byte只是正值。我需要从[-1,1]
获得 for (int i = 0; i < bytes.Count(); i++)
{
bytes[i] = (byte)(bytes[i] * (1 / biggest));
}
答案 0 :(得分: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
是一个浮点数组的变量名称,而且稍微有些混乱。