音声区間検出のための零交差数カウント [詳細]
#include <sent/stddefs.h>
マクロ定義 | |
#define | UNDEF 2 |
Undefined mark used for sign. | |
#define | POSITIVE 1 |
Positive mark used for sign. | |
#define | NEGATIVE -1 |
Negative mark used for sign. | |
関数 | |
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) |
変数 | |
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 SP16 * | data |
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). |
音声区間検出のための零交差数カウント
与えられたバッファ長内の零交差数をカウントします. 同時に, 呼ばれたバッファを順次バッファ長分だけ古いものに入れ替えます. このため入力はバッファ長分だけ遅延することになります.
zc-e.c で定義されています。
void init_count_zc_e | ( | int | c_trigger, | |
int | c_length, | |||
int | c_offset | |||
) |
Initialize all parameters and buffers for zero-cross counting.
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 |
参照元 adin_cut().
void end_count_zc_e | ( | ) |
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.
buf | [I/O] new samples given, and swapped samples will be returned. | |
step | [in] length of above. |
参照元 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.
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. |
void zc_copy_buffer | ( | SP16 * | newbuf, | |
int * | len | |||
) |
Flush samples in the current cycle buffer.
newbuf | [out] the samples in teh cycle buffer will be written here. | |
len | [out] length of above. |
参照元 adin_cut().