SphinxBase 0.6
|
00001 /* ==================================================================== 00002 * Copyright (c) 2006 Carnegie Mellon University. All rights 00003 * reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 00009 * 1. Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * 00012 * 2. Redistributions in binary form must reproduce the above copyright 00013 * notice, this list of conditions and the following disclaimer in 00014 * the documentation and/or other materials provided with the 00015 * distribution. 00016 * 00017 * This work was supported in part by funding from the Defense Advanced 00018 * Research Projects Agency and the National Science Foundation of the 00019 * United States of America, and the CMU Sphinx Speech Consortium. 00020 * 00021 * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND 00022 * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00023 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00024 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY 00025 * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00026 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00027 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00028 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00029 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00030 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00031 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00032 * 00033 * ==================================================================== 00034 * 00035 */ 00036 00037 #ifndef FE_WARP_AFFINE_H 00038 #define FE_WARP_AFFINE_H 00039 00040 #include "sphinxbase/fe.h" 00041 00042 00043 #ifdef __cplusplus 00044 extern "C" { 00045 #endif 00046 #if 0 00047 /* Fool Emacs. */ 00048 } 00049 #endif 00050 00051 const char * 00052 fe_warp_affine_doc(void); 00053 00054 uint32 00055 fe_warp_affine_id(void); 00056 00057 uint32 00058 fe_warp_affine_n_param(void); 00059 00060 void 00061 fe_warp_affine_set_parameters(char const *param_str, float sampling_rate); 00062 00063 float 00064 fe_warp_affine_warped_to_unwarped(float nonlinear); 00065 00066 float 00067 fe_warp_affine_unwarped_to_warped(float linear); 00068 00069 void 00070 fe_warp_affine_print(const char *label); 00071 00072 #ifdef __cplusplus 00073 } 00074 #endif 00075 00076 00077 #endif /* FE_WARP_AFFINE_H */ 00078 00079 00080 /* 00081 * Log record. Maintained by RCS. 00082 * 00083 * $Log: fe_warp_affine.h,v $ 00084 * Revision 1.1 2006/02/16 00:18:26 egouvea 00085 * Implemented flexible warping function. The user can specify at run 00086 * time which of several shapes they want to use. Currently implemented 00087 * are an affine function (y = ax + b), an inverse linear (y = a/x) and a 00088 * piecewise linear (y = ax, up to a frequency F, and then it "breaks" so 00089 * Nyquist frequency matches in both scales. 00090 * 00091 * Added two switches, -warp_type and -warp_params. The first specifies 00092 * the type, which valid values: 00093 * 00094 * -inverse or inverse_linear 00095 * -linear or affine 00096 * -piecewise or piecewise_linear 00097 * 00098 * The inverse_linear is the same as implemented by EHT. The -mel_warp 00099 * switch was kept for compatibility (maybe remove it in the 00100 * future?). The code is compatible with EHT's changes: cepstra created 00101 * from code after his changes should be the same as now. Scripts that 00102 * worked with his changes should work now without changes. Tested a few 00103 * cases, same results. 00104 * 00105 */