?? silencedet.h
字號:
/* $Id: silencedet.h 974 2007-02-19 01:13:53Z bennylp $ *//* * Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef __PJMEDIA_SILENCE_DET_H__#define __PJMEDIA_SILENCE_DET_H__/** * @file silencedet.h * @brief Adaptive silence detector. */#include <pjmedia/types.h>/** * @defgroup PJMEDIA_SILENCEDET Adaptive Silence Detection * @ingroup PJMEDIA_FRAME_OP * @brief Adaptive Silence Detector * @{ */PJ_BEGIN_DECL/** * Opaque declaration for silence detector. */typedef struct pjmedia_silence_det pjmedia_silence_det;/** * Create voice activity detector with default settings. The default settings * are set to adaptive silence detection with the default threshold. * * @param pool Pool for allocating the structure. * @param clock_rate Clock rate. * @param samples_per_frame Number of samples per frame. The clock_rate and * samples_per_frame is only used to calculate the * frame time, from which some timing parameters * are calculated from. * @param p_sd Pointer to receive the silence detector instance. * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_create( pj_pool_t *pool, unsigned clock_rate, unsigned samples_per_frame, pjmedia_silence_det **p_sd );/** * Set silence detector name to identify the particular silence detector * instance in the log. * * @param sd The silence detector. * @param name Name. * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_set_name(pjmedia_silence_det *sd, const char *name);/** * Set the sd to operate in fixed threshold mode. With fixed threshold mode, * the threshold will not be changed adaptively. * * @param sd The silence detector * @param threshold The silence threshold, or -1 to use default * threshold. * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_set_fixed( pjmedia_silence_det *sd, int threshold );/** * Set the sd to operate in adaptive mode. This is the default mode * when the silence detector is created. * * @param sd The silence detector * @param threshold Initial threshold to be set, or -1 to use default * threshold. * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_set_adaptive(pjmedia_silence_det *sd, int threshold);/** * Set other silence detector parameters. * * @param sd The silence detector * @param min_silence Minimum duration of silence (in msec) before * silence is reported. If -1 is specified, then * the default value will be used. The default is * 400 msec. * @param min_signal Minimum duration of signal (in msec) before * signal is reported. If -1 is specified, then * the default value will be used. The default is * equal to one frame. * @param recalc_time The interval to recalculate signal and silence * proportion and to readjust the silence threshold * when adaptive silence detection is set. If -1 * is specified, then the default value will be used. * The default value is 5000 (msec). * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_set_params( pjmedia_silence_det *sd, int min_silence, int min_signal, int recalc_time);/** * Disable the silence detector. * * @param sd The silence detector * * @return PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjmedia_silence_det_disable( pjmedia_silence_det *sd );/** * Perform voice activity detection on the given input samples. This * function uses #pjmedia_calc_avg_signal() and #pjmedia_silence_det_apply() * for its calculation. * * @param sd The silence detector instance. * @param samples Pointer to 16-bit PCM input samples. * @param count Number of samples in the input. * @param p_level Optional pointer to receive average signal level * of the input samples. * * @return Non zero if signal is silence. */PJ_DECL(pj_bool_t) pjmedia_silence_det_detect( pjmedia_silence_det *sd, const pj_int16_t samples[], pj_size_t count, pj_int32_t *p_level);/** * Calculate average signal level for the given samples. * * @param samples Pointer to 16-bit PCM samples. * @param count Number of samples in the input. * * @return The average signal level, which simply is total level * divided by number of samples. */PJ_DECL(pj_int32_t) pjmedia_calc_avg_signal( const pj_int16_t samples[], pj_size_t count );/** * Perform voice activity detection, given the specified average signal * level. * * @param sd The silence detector instance. * @param level Signal level. * * @return Non zero if signal is silence. */PJ_DECL(pj_bool_t) pjmedia_silence_det_apply( pjmedia_silence_det *sd, pj_uint32_t level);PJ_END_DECL/** * @} */#endif /* __PJMEDIA_SILENCE_DET_H__ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -