Group PJMEDIA_SILENCEDET

group PJMEDIA_SILENCEDET

Adaptive Silence Detector.

Typedefs

typedefPJ_BEGIN_DECL struct pjmedia_silence_det pjmedia_silence_det

Opaque declaration for silence detector.

Functions

pj_status_t pjmedia_silence_det_create(pj_pool_t *pool, unsigned clock_rate, unsigned samples_per_frame, pjmedia_silence_det **p_sd)

Create voice activity detector with default settings. The default settings are set to adaptive silence detection with the default threshold.

Parameters
  • pool – Pool for allocating the structure.

  • clock_rate – Clock rate.

  • 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.

  • p_sd – Pointer to receive the silence detector instance.

Returns

PJ_SUCCESS on success.

pj_status_t pjmedia_silence_det_set_name(pjmedia_silence_det *sd, const char *name)

Set silence detector name to identify the particular silence detector instance in the log.

Parameters
  • sd – The silence detector.

  • name – Name.

Returns

PJ_SUCCESS on success.

pj_status_t pjmedia_silence_det_set_fixed(pjmedia_silence_det *sd, int threshold)

Set the sd to operate in fixed threshold mode. With fixed threshold mode, the threshold will not be changed adaptively.

Parameters
  • sd – The silence detector

  • threshold – The silence threshold, or -1 to use default threshold.

Returns

PJ_SUCCESS on success.

pj_status_t pjmedia_silence_det_set_adaptive(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.

Parameters
  • sd – The silence detector

  • threshold – Initial threshold to be set, or -1 to use default threshold.

Returns

PJ_SUCCESS on success.

pj_status_t pjmedia_silence_det_set_params(pjmedia_silence_det *sd, int before_silence, int recalc_time1, int recalc_time2)

Set other silence detector parameters.

Parameters
  • sd – The silence detector

  • before_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.

  • recalc_time1 – The interval (in msec) to recalculate threshold in non-silence condition when adaptive silence detection is set. If -1 is specified, then the default value will be used. The default is 4000 (msec).

  • recalc_time2 – The interval (in msec) to recalculate threshold in silence condition when adaptive silence detection is set. If -1 is specified, then the default value will be used. The default value is 2000 (msec).

Returns

PJ_SUCCESS on success.

pj_status_t pjmedia_silence_det_disable(pjmedia_silence_det *sd)

Disable the silence detector.

Parameters

sd – The silence detector

Returns

PJ_SUCCESS on success.

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)

Perform voice activity detection on the given input samples. This function uses pjmedia_calc_avg_signal() and pjmedia_silence_det_apply() for its calculation.

Parameters
  • sd – The silence detector instance.

  • samples – Pointer to 16-bit PCM input samples.

  • count – Number of samples in the input.

  • p_level – Optional pointer to receive average signal level of the input samples.

Returns

Non zero if signal is silence.

pj_int32_t pjmedia_calc_avg_signal(const pj_int16_t samples[], pj_size_t count)

Calculate average signal level for the given samples.

Parameters
  • samples – Pointer to 16-bit PCM samples.

  • count – Number of samples in the input.

Returns

The average signal level, which simply is total level divided by number of samples.

pj_bool_t pjmedia_silence_det_apply(pjmedia_silence_det *sd, pj_uint32_t level)

Perform voice activity detection, given the specified average signal level.

Parameters
  • sd – The silence detector instance.

  • level – Signal level.

Returns

Non zero if signal is silence.