view libgsmhr1/vad.h @ 615:5773e3907b86 default tip

libgsmhr1: integrate vad.c
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Mar 2026 09:05:35 +0000
parents cf74197b9d4f
children
line wrap: on
line source

#ifndef __VAD
#define __VAD

#include "typedefs.h"


/*_________________________________________________________________________
 |                                                                         |
 |                            Function Prototypes                          |
 |_________________________________________________________________________|
*/

void vad_algorithm(struct vad_state *vst, Longword pL_acf[9],
		   Shortword swScaleAcf, Shortword pswRc[4],
		   Shortword swPtch, Shortword *pswVadFlag);

void energy_computation(struct vad_state *vst, Longword pL_acf[],
			Shortword swScaleAcf, Shortword pswRvad[],
			Shortword swNormRvad, Shortword *pswM_pvad,
			Shortword *pswE_pvad, Shortword *pswM_acf0,
			Shortword *pswE_acf0);

void average_acf(struct vad_state *vst, Longword pL_acf[],
		 Shortword swScaleAcf, Longword pL_av0[], Longword pL_av1[]);

void predictor_values(struct vad_state *vst, Longword pL_av1[],
			Shortword pswRav1[], Shortword *pswNormRav1);

void schur_recursion(struct vad_state *vst, Longword pL_av1[],
		     Shortword pswVpar[]);

void step_up(struct vad_state *vst, Shortword swNp, Shortword pswVpar[],
		Shortword pswAav1[]);

void compute_rav1(struct vad_state *vst, Shortword pswAav1[],
		  Shortword pswRav1[], Shortword *pswNormRav1);

void spectral_comparison(struct vad_state *vst, Shortword pswRav1[],
			 Shortword swNormRav1, Longword pL_av0[],
			 Shortword *pswStat);

void tone_detection(struct vad_state *vst, Shortword pswRc[4],
		    Shortword *pswTone);

void threshold_adaptation(struct vad_state *vst, Shortword swStat,
			  Shortword swPtch, Shortword swTone,
			  Shortword pswRav1[], Shortword swNormRav1,
			  Shortword swM_pvad, Shortword swE_pvad,
			  Shortword swM_acf0, Shortword swE_acf0,
			  Shortword pswRvad[], Shortword *pswNormRvad,
			  Shortword *pswM_thvad, Shortword *pswE_thvad);

void vad_decision(struct vad_state *vst, Shortword swM_pvad,
		  Shortword swE_pvad, Shortword swM_thvad,
		  Shortword swE_thvad, Shortword *pswVvad);

void vad_hangover(struct vad_state *vst, Shortword swVvad,
		  Shortword *pswVadFlag);

void periodicity_update(struct vad_state *vst, Shortword pswLags[4],
			Shortword *pswPtch);

#endif