少年修仙传客户端代码仓库
client_Zxw
2019-03-04 6beea42305d7bae180f5ec6769f3e9daca3d849c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
namespace NSpeex
{
    using System;
 
    internal class Lpc
    {
        public static void Autocorr(float[] x, float[] ac, int lag, int n)
        {
            while (lag-- > 0)
            {
                int index = lag;
                float num = 0f;
                while (index < n)
                {
                    num += x[index] * x[index - lag];
                    index++;
                }
                ac[lag] = num;
            }
        }
 
        public static float Wld(float[] lpc, float[] ac, float[] xref, int p)
        {
            int num;
            float num4 = ac[0];
            if (ac[0] == 0f)
            {
                for (num = 0; num < p; num++)
                {
                    xref[num] = 0f;
                }
                return 0f;
            }
            for (num = 0; num < p; num++)
            {
                float num3 = -ac[num + 1];
                int index = 0;
                while (index < num)
                {
                    num3 -= lpc[index] * ac[num - index];
                    index++;
                }
                xref[num] = num3 /= num4;
                lpc[num] = num3;
                index = 0;
                while (index < (num / 2))
                {
                    float num5 = lpc[index];
                    lpc[index] += num3 * lpc[(num - 1) - index];
                    lpc[(num - 1) - index] += num3 * num5;
                    index++;
                }
                if ((num % 2) != 0)
                {
                    lpc[index] += lpc[index] * num3;
                }
                float? nullable = 1f;
                num4 *= nullable.Value - (num3 * num3);
            }
            return num4;
        }
    }
}