diff --git a/file_demo/am572x/svd.h b/file_demo/am572x/svd.h
--- /dev/null
+++ b/file_demo/am572x/svd.h
@@ -0,0 +1,232 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Simple Voice Activity Detection (SVD) module\r
+ * \r
+ ******************************************************************************\r
+ * FILE NAME: svd.h \r
+ *\r
+ * DESCRIPTION: Implements a (very) simple Voice Activity Detector (VAD) based \r
+ * almost solely on the SNL module.\r
+ *\r
+ * Copyright (c) 2007 \96 2013 Texas Instruments Incorporated
+ *
+ * All rights reserved not granted herein.
+ *
+ * Limited License.
+ *
+ * Texas Instruments Incorporated grants a world-wide, royalty-free,
+ * non-exclusive license under copyrights and patents it now or hereafter owns
+ * or controls to make, have made, use, import, offer to sell and sell
+ * ("Utilize") this software subject to the terms herein. With respect to the
+ * foregoing patent license, such license is granted solely to the extent that
+ * any such patent is necessary to Utilize the software alone. The patent
+ * license shall not apply to any combinations which include this software,
+ * other than combinations with devices manufactured by or for TI (\93TI
+ * Devices\94). No hardware patent is licensed hereunder.
+ *
+ * Redistributions must preserve existing copyright notices and reproduce this
+ * license (including the above copyright notice and the disclaimer and (if
+ * applicable) source code license limitations below) in the documentation
+ * and/or other materials provided with the distribution
+ *
+ * Redistribution and use in binary form, without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * * No reverse engineering, decompilation, or disassembly of this software
+ * is permitted with respect to any software provided in binary form.
+ *
+ * * any redistribution and use are licensed by TI for use only with TI
+ * Devices.
+ *
+ * * Nothing shall obligate TI to provide you with source code for the
+ * software licensed and provided to you in object code.
+ *
+ * If software source code is provided to you, modification and redistribution
+ * of the source code are permitted provided that the following conditions are
+ * met:
+ *
+ * * any redistribution and use of the source code, including any resulting
+ * derivative works, are licensed by TI for use only with TI Devices.
+ *
+ * * any redistribution and use of any object code compiled from the source
+ * code and any resulting derivative works, are licensed by TI for use only
+ * with TI Devices.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of its
+ * suppliers may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * DISCLAIMER.
+ *
+ * THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE. \r
+ *****************************************************************************/\r
+#ifndef _SVD_H\r
+#define _SVD_H\r
+\r
+/**\r
+ * @file svd.h\r
+ * @brief Contains external APIs for the SVD module.\r
+ *\r
+ */\r
+\r
+/** \r
+ * @defgroup SVD Simple Voice activity Detector (SVD)\r
+ *\r
+ * @brief The SVD module examines the signal and noise levels measured by SNL \r
+ * and makes a decision whether voice is active or not. \r
+ */\r
+/** @ingroup SVD */\r
+/* @{ */\r
+\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/** @defgroup svd_api_return_codes SVD API return codes\r
+ * These are the return codes for the SVD module API functions.\r
+ * \r
+ * @{\r
+ * @name SVD Function Return Value Definitions\r
+ *\r
+ */\r
+/* @{ */\r
+enum{\r
+ svd_NOERR = 0, /**< success, no error */\r
+ svd_ERR = 1, /**< failed */\r
+ svd_BADPARAM = 2 /**< Returned from function with wrong parameters */ \r
+}; \r
+/* @} */\r
+/** @} */\r
+\r
+/**\r
+ * @name SVD decision codes\r
+ *\r
+ */\r
+enum{\r
+ svd_VOICE_UNDEFINED = -1, /**< VAD decision undefined */\r
+ svd_VOICE_INACTIVE = 0, /**< VAD decision NO VOICE */\r
+ svd_VOICE_ACTIVE = 1 /**< VAD decision VOICE */\r
+}; \r
+\r
+/**\r
+ * @name SVD sampling rate factor\r
+ * \remark These numbers are used as multipliers, so can't be changed to other values.\r
+ *\r
+ */\r
+enum{\r
+ svd_SRATE_8K = 1, /**< sampling rate is 8kHz */\r
+ svd_SRATE_16K = 2 /**< sampling rate is 16kHz */\r
+}; \r
+\r
+/**\r
+ * @def svd_ENV_Q\r
+ * The Fract Q format for the adaptive envelope threshold returned by\r
+ * svdGetLevels(). \r
+ */\r
+#define svd_ENV_Q 3\r
+\r
+/**\r
+ * @def svd_PWR_Q\r
+ * The Fract Q format for the speech and noise power level returned by\r
+ * svdGetLevels(). \r
+ */\r
+#define svd_PWR_Q 0\r
+\r
+/**\r
+ * @def svd_INVALID_POW_DB\r
+ * The initialization value for the signal and noise dB value. It's not a \r
+ * valid result for either signal or noise level estimation. \r
+ * @sa \r
+ */\r
+#define svd_INVALID_POW_DB 0x7F\r
+\r
+/**\r
+ * @name External APIs for SVD\r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ * @brief Obtain from SVD the instance memory requirements. \r
+ * \remark This must be the first function to be called before calling any other SVD APIs\r
+ * \r
+ * @param[out] instsize The size of the instance\r
+ *\r
+ * @return \link SVD::svd_NOERR svd_NOERR, \endlink \n\r
+ * \link SVD::svd_ERR svd_ERR \endlink: if instsize==NULL \r
+ */\r
+tint svdGetSizes (tint *instsize);\r
+\r
+/**\r
+ * @brief Initialize simple voice activity detector\r
+ * \remark This function is called after svdGetSizes(), and initializes the instance. \r
+ *\r
+ * @param[in] *inst Pointer to the SVD instance memory, must NOT be NULL.\r
+ * @param[in] samp_rate \link SVD::svd_SRATE_8K svd_SRATE_8K \endlink \n\r
+ * \link SVD::svd_SRATE_16K svd_SRATE_16K \endlink \n \r
+ * @param[out] *inst Initialized SVD instance memory.\r
+ *\r
+ * @return \link SVD::svd_NOERR svd_NOERR, \endlink \n\r
+ * \link SVD::svd_ERR svd_ERR, \endlink :if inst==NULL \n \r
+ * \link SVD::svd_BADPARAM svd_BADPARAM \endlink :if samp_rate is not one of \r
+ * svd_SRATE_8K\r
+ * or svd_SRATE_16K\r
+ *\r
+ */\r
+tint svdInit (void *inst, tint samp_rate);\r
+\r
+/**\r
+ * @brief Simple VAD detection process\r
+ * \remark This is the function that processes the signal and makes the Voice/Noise decision. The \r
+ * function should be called every frame. The frame size must be at least 1.5ms (12 for 8kHz, \r
+ * 24 for 16kHz).\r
+ *\r
+ * @param[in, out] *inst Pointer to the instance\r
+ * @param[in] *samples Pointer to samples\r
+ * @param[in] nSamps Number of samples, or frame size\r
+ *\r
+ * @return \link SVD::svd_NOERR svd_NOERR, \endlink \n\r
+ * \link SVD::svd_ERR svd_ERR, \endlink \n \r
+ */\r
+tint svdProcess (void *inst, linSample *samples, tuint nSamps);\r
+\r
+/**\r
+ * @brief Get Voice decision\r
+ * \remark This is the function to call when a Voice/Noise decision is needed. It can be called \r
+ * as needed.\r
+ *\r
+ * @param[in] *inst Pointer to the instance\r
+ * @param[out] sig_pow Exponentially averaged signal power\r
+ * \r
+ * @return \link SVD::svd_VOICE_UNDEFINED svd_VOICE_UNDEFINED \endlink \n\r
+ * \link SVD::svd_VOICE_INACTIVE svd_VOICE_INACTIVE \endlink \n \r
+ * \link SVD::svd_VOICE_ACTIVE svd_VOICE_ACTIVE \endlink \n \r
+ */\r
+tint svdGetDecision (void *inst, LFract *sig_pow);\r
+\r
+/**\r
+ * @brief Get speech and noise levels\r
+ * \remark This is the function to be called whenever the levels are needed. \r
+ * It can be called every frame or when requested.\r
+ *\r
+ * @param[in] *inst Pointer to the instance\r
+ * @param[out] *spchdB pointer to returned speech power level in Q0 dB\r
+ * @param[out] *noisedB pointer to returned noise power level in Q0 dB\r
+ * @param[out] *thresh pointer to returned adaptive threshold for envelope \r
+ * in Q\link SVD::svd_ENV_Q svd_ENV_Q \endlink linear amplitude.\r
+ * \r
+ * @return \link SVD::svd_NOERR svd_NOERR \endlink\r
+ */\r
+tint svdGetLevels (void *inst, Fract *spchdB, Fract *noisedB, UFract *thresh);\r
+\r
+/* @} */\r
+/* @} */ /* ingroup SVD */\r
+#endif\r
+\r
+/* Nothing past this point */\r