libsent/src/adin/zc-e.c File Reference

Count zero cross and level for speech detection. More...

#include <sent/stddefs.h>

Include dependency graph for zc-e.c:

Go to the source code of this file.

Defines

#define UNDEF   2
 Undefined mark used for sign.
#define POSITIVE   1
 Positive mark used for sign.
#define NEGATIVE   -1
 Negative mark used for sign.

Functions

void init_count_zc_e (int c_trigger, int c_length, int c_offset)
void end_count_zc_e ()
int count_zc_e (SP16 *buf, int step)
int count_zc_e_level (SP16 *buf, int step, int *levelp)
void zc_copy_buffer (SP16 *newbuf, int *len)

Variables

static int trigger
 Level threshold.
static int length
 Cycle buffer size = number of samples to hold.
static int offset
 Static data DC offset.
static int * is_zc
 Zero-crossing point flag list.
static SP16data
 Data cycle buffer.
static int zero_cross
 Total zerocross num in data.
static int sign
 Current sign of sample for zerocross counting.
static int is_trig
 Triggering sign.
static int top
 Current pointer of buffer.
static int valid_len
 Valid samples in buffer (for short input).


Detailed Description

Count zero cross and level for speech detection.

Author:
Akinobu LEE
Date:
Mon Feb 14 19:11:34 2005
Count zero cross number within the given length of cycle buffer. The content of the cycle buffer will be swapped with the newest data, So the input delays for the length of the cycle buffer.

Revision
1.3

Definition in file zc-e.c.


Function Documentation

void init_count_zc_e ( int  c_trigger,
int  c_length,
int  c_offset 
)

Initialize all parameters and buffers for zero-cross counting.

Parameters:
c_trigger [in] Tgigger level threshold
c_length [in] Cycle buffer size = Number of samples to hold
c_offset [in] Static DC offset of input data

Definition at line 63 of file zc-e.c.

Referenced by adin_cut().

void end_count_zc_e (  ) 

End procedure: free all buffers.

Definition at line 91 of file zc-e.c.

Referenced by adin_cut().

int count_zc_e ( SP16 buf,
int  step 
)

Adding buf[0..step-1] to the cycle buffer and update the count of zero cross. Also swap them with the oldest ones in the cycle buffer.

Parameters:
buf [I/O] new samples given, and swapped samples will be returned.
step [in] length of above.
Returns:
zero-cross count of the samples in the cycle buffer.

Definition at line 107 of file zc-e.c.

Referenced by adin_cut().

int count_zc_e_level ( SP16 buf,
int  step,
int *  levelp 
)

Adding buf[0..step-1] to the cycle buffer and update the count of zero cross. Also swap them with the oldest ones in the cycle buffer. Also get the maximum level in the cycle buffer.

Parameters:
buf [I/O] new samples, will be swapped by old samples when returned.
step [in] length of above.
levelp [out] maximum level in the cycle buffer.
Returns:
zero-cross count of the samples in the cycle buffer.

Definition at line 157 of file zc-e.c.

void zc_copy_buffer ( SP16 newbuf,
int *  len 
)

Flush samples in the current cycle buffer.

Parameters:
newbuf [out] the samples in teh cycle buffer will be written here.
len [out] length of above.

Definition at line 205 of file zc-e.c.

Referenced by adin_cut().


Generated on Tue Dec 26 16:17:41 2006 for Julius by  doxygen 1.5.0