Lines Matching refs:chan
45 void init_voicing_analysis(voicing_info *chan)
47 chan->count = -1;
48 chan->sil_count = 0;
49 chan->speech_count = 0;
50 chan->fast_count = 0;
57 long voicing_analysis(voicing_info *chan, voicedata enval , int* log)
62 if (chan->count < 0)
64 chan->b1 = SHIFT_UP(enval, 8);
65 chan->b0 = SHIFT_UP(enval, 8);
66 chan->count = -1;
71 if (chan->b0 > SHIFT_UP(enval, 8))
73 chan->b0 = SHIFT_UP(enval, 8);
74 chan->count = 0;
76 if (chan->count > B0_HANG2)
77 chan->b0 += B0_RATE2;
78 else if (chan->count > B0_HANG1)
79 chan->b0 += B0_RATE1;
81 chan->count++;
85 if ((enval - chan->quiet_margin) < (chan->b0 >> 8))
86 chan->b1 += SHIFT_DOWN(B1_RATE * (SHIFT_UP(enval, 8) - chan->b1), 8);
90 if (chan->s0 < SHIFT_UP(enval, 8))
91 chan->s0 = SHIFT_UP(enval, 8);
93 chan->s0 -= B0_RATE1;
96 threshold = (chan->b1 + (SHIFT_DOWN(
97 MAX(chan->s0 - chan->b0 - DYNAMIC_RANGE, 0), 2))) >> 8;
101 if (enval > (threshold + chan->margin))
102 chan->speech_count++;
104 chan->speech_count = 0;
108 if (enval > (threshold + chan->fast_margin))
109 chan->fast_count++;
111 chan->fast_count = 0;
113 if (enval <= (threshold + chan->quiet_margin))
114 chan->sil_count++;
116 chan->sil_count = 0;
124 if (chan->fast_count > chan->voice_duration)
126 else if (chan->sil_count > chan->quiet_duration)
129 if (chan->speech_count > chan->voice_duration)
132 if (chan->sil_count > 0)
135 chan->voice_status = retval;
138 chan->b0 / 256.0, chan->b1 / 256.0,
139 chan->speech_count, chan->fast_count,
140 chan->sil_count, chan->count);