diff src/vad.h @ 0:56410792419a

src: original EFR source from ETSI
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 03 Apr 2024 05:31:37 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/vad.h	Wed Apr 03 05:31:37 2024 +0000
@@ -0,0 +1,106 @@
+/***************************************************************************
+ *
+ *   File Name: vad.h
+ *
+ *   Purpose:   Contains the prototypes for all functions of voice activity
+ *              detection. Also contains the type definition for the pseudo
+ *              floating point data type.
+ *
+ **************************************************************************/
+
+/* Struct for storing pseudo floating point exponent and mantissa */
+struct _fp
+{
+    Word16 e;          /* exponent */
+    Word16 m;          /* mantissa */
+};
+
+typedef struct _fp Pfloat;
+
+void vad_reset (void);
+
+Word16 vad_computation (
+    Word16 r_h[],
+    Word16 r_l[],
+    Word16 scal_acf,
+    Word16 rc[],
+    Word16 ptch
+);
+
+void energy_computation (
+    Word16 r_h[],
+    Word16 scal_acf,
+    Word16 rvad[],
+    Word16 scal_rvad,
+    Pfloat * acf0,
+    Pfloat * pvad
+);
+
+void acf_averaging (
+    Word16 r_h[],
+    Word16 r_l[],
+    Word16 scal_acf,
+    Word32 L_av0[],
+    Word32 L_av1[]
+);
+
+void predictor_values (
+    Word32 L_av1[],
+    Word16 rav1[],
+    Word16 *scal_rav1
+);
+
+void schur_recursion (
+    Word32 L_av1[],
+    Word16 vpar[]
+);
+
+void step_up (
+    Word16 np,
+    Word16 vpar[],
+    Word16 aav1[]
+);
+
+void compute_rav1 (
+    Word16 aav1[],
+    Word16 rav1[],
+    Word16 *scal_rav1
+);
+
+Word16 spectral_comparison (
+    Word16 rav1[],
+    Word16 scal_rav1,
+    Word32 L_av0[]
+);
+
+void threshold_adaptation (
+    Word16 stat,
+    Word16 ptch,
+    Word16 tone,
+    Word16 rav1[],
+    Word16 scal_rav1,
+    Pfloat pvad,
+    Pfloat acf0,
+    Word16 rvad[],
+    Word16 *scal_rvad,
+    Pfloat * thvad
+);
+
+void tone_detection (
+    Word16 rc[],
+    Word16 *tone
+);
+
+Word16 vad_decision (
+    Pfloat pvad,
+    Pfloat thvad
+);
+
+Word16 vad_hangover (
+    Word16 vvad
+);
+
+void periodicity_update (
+    Word16 lags[],
+    Word16 *ptch
+);