00001 /* boss_concat.h $Revision: 1.2 $ $Date: 2005/12/10 20:33:54 $ 00002 Copyright (C) 2003 University of Bonn. 00003 http://www.ikp.uni-bonn.de/boss 00004 00005 This program is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU General Public License 00007 as published by the Free Software Foundation; either version 2 00008 of the License, or (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 00019 */ 00020 00026 #ifndef BOSS_CONCAT_H 00027 #define BOSS_CONCAT_H 00028 00029 #include <xercesc/dom/DOM.hpp> 00030 #include <string> 00031 #include <vector> 00032 #include <map> 00033 #include <fstream> 00034 #include <sstream> 00035 #include "boss_mysql/boss_mysql_handler.h" 00036 #include "boss_utility/dom_userdata.h" 00037 #include "boss_utility/dom_tools.h" 00038 #include "boss_utility/boss_exceptions.h" 00039 #include "boss_utility/boss_utility.h" 00040 #include "boss_utility/boss_config.h" 00041 #include "tdsp/dsp_weight_window.h" 00042 #include "concat_unit.h" 00043 #include "boss_utility/boss_module.h" 00044 #include "boss_conman/boss_conman.h" 00045 00051 #define F0_DIFFERENCE_LIMIT 10.0 00052 #define UPPER_F0_DIFFERENCE_LIMIT 50.0 00053 00054 typedef vector< CM_Unit > CU_Vector; 00055 00059 class BOSS_Concat : public BOSS_ConMan { 00060 bool sflag; 00061 map<string,string> phones; 00062 map<string,string>::const_iterator pmi; 00063 void getCM_Units(xercesc::DOMNode * node,CU_Vector & cv); 00064 void smoothing(CM_Unit & ul, CM_Unit & ur, t_Signal & res, t_Signal add); 00065 void preEmph(t_Signal & res); 00066 public: 00067 00068 BOSS_Concat(BOSS::Config & __cl, MySQL_Handler * __data_base); 00069 void operator() (xercesc::DOMNode * sentence); 00070 virtual string getDescription(); 00071 }; 00072 00073 extern "C" BOSS::Module * create(BOSS::Config & config, MySQL_Handler * database) { 00074 return new BOSS_Concat(config, database); 00075 } 00076 00077 extern "C" void destroy(BOSS_Concat * cm) { 00078 delete cm; 00079 } 00080 // end of boss_concat group 00082 #endif 00083