Thread: [marf-cvs] marf/src/marf/Preprocessing Makefile, 1.7, 1.7.4.1 Preprocessing.java, 1.47, 1.47.4.1 P
Brought to you by:
mokhov
From: Serguei A. M. <mo...@us...> - 2008-04-09 00:32:48
|
Update of /cvsroot/marf/marf/src/marf/Preprocessing In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv9497/src/marf/Preprocessing Modified Files: Tag: DISTRIBUTED_MARF_0_3_0_INTEGRATION Makefile Preprocessing.java PreprocessingFactory.java Log Message: Consolidate most of the differences between the MAIN and Distributed MARF branches. This primarily includes the copyright year update to 2008, SpeakerIdentApp with the new options of loaders and the BandStopFilter, ZipfLaw, CosineSimilarityMeasure, and HammingDistance. Include stats per config along with stats per subject. Add timing measurements. A lot of comment spell checks and other corrections. Generalize some of the code, fix naming conventions in places. Fix some bugs that popped up in the main branch down to DMARF. Add some new implementation developments, such as nlp.Storage and Classification.Similarity. Refactor Configuration and some other classes. Make WAVLoader more customizable, in particular being able to load 16000 Hz samples. Many other fixes that will be summarized in the MAIN's ChangeLog. Index: PreprocessingFactory.java =================================================================== RCS file: /cvsroot/marf/marf/src/marf/Preprocessing/PreprocessingFactory.java,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -C2 -d -r1.3 -r1.3.4.1 *** PreprocessingFactory.java 10 Apr 2006 01:39:08 -0000 1.3 --- PreprocessingFactory.java 9 Apr 2008 00:32:13 -0000 1.3.4.1 *************** *** 37,44 **** * @param poPreprocessingMethod the integer value corresponding to the * desired Preprocessing module ! * @param poSample passed as an agrument to the preprocessor per framework requirement * @return a reference to the instance of the created feature extraction module * @throws PreprocessingException if the indicated module is ! * uknown or could not be loaded * * @see MARF#DUMMY --- 37,44 ---- * @param poPreprocessingMethod the integer value corresponding to the * desired Preprocessing module ! * @param poSample passed as an argument to the preprocessor per framework requirement * @return a reference to the instance of the created feature extraction module * @throws PreprocessingException if the indicated module is ! * unknown or could not be loaded * * @see MARF#DUMMY *************** *** 72,79 **** * @param piPreprocessingMethod the integer value corresponding to the * desired Preprocessing module ! * @param poSample passed as an agrument to the preprocessor per framework requirement * @return a reference to the instance of the created feature extraction module * @throws PreprocessingException if the indicated module is ! * uknown or could not be loaded * * @see MARF#DUMMY --- 72,79 ---- * @param piPreprocessingMethod the integer value corresponding to the * desired Preprocessing module ! * @param poSample passed as an argument to the preprocessor per framework requirement * @return a reference to the instance of the created feature extraction module * @throws PreprocessingException if the indicated module is ! * unknown or could not be loaded * * @see MARF#DUMMY *************** *** 103,140 **** { case MARF.DUMMY: oPreprocessing = new Dummy(poSample); break; case MARF.BANDPASS_FFT_FILTER: oPreprocessing = new BandpassFilter(poSample); break; case MARF.ENDPOINT: oPreprocessing = new Endpoint(poSample); break; case MARF.HIGH_FREQUENCY_BOOST_FFT_FILTER: ! Debug.debug("here1"); oPreprocessing = new HighFrequencyBoost(poSample); ! Debug.debug("here2"); break; case MARF.LOW_PASS_FFT_FILTER: oPreprocessing = new LowPassFilter(poSample); break; case MARF.HIGH_PASS_FFT_FILTER: oPreprocessing = new HighPassFilter(poSample); break; case MARF.HIGH_PASS_BOOST_FILTER: //soPreprocessing = new HighPassBoostFilter(soSample); oPreprocessing = new HighFrequencyBoost(new HighPassFilter(poSample)); //soPreprocessing = new HighPassFilter(new HighFrequencyBoost(soSample)); break; case MARF.RAW: oPreprocessing = new Raw(poSample); break; case MARF.PREPROCESSING_PLUGIN: --- 103,162 ---- { case MARF.DUMMY: + { oPreprocessing = new Dummy(poSample); break; + } case MARF.BANDPASS_FFT_FILTER: + { oPreprocessing = new BandpassFilter(poSample); break; + } case MARF.ENDPOINT: + { oPreprocessing = new Endpoint(poSample); break; + } case MARF.HIGH_FREQUENCY_BOOST_FFT_FILTER: ! { ! //Debug.debug("here1"); oPreprocessing = new HighFrequencyBoost(poSample); ! //Debug.debug("here2"); break; + } case MARF.LOW_PASS_FFT_FILTER: + { oPreprocessing = new LowPassFilter(poSample); break; + } case MARF.HIGH_PASS_FFT_FILTER: + { oPreprocessing = new HighPassFilter(poSample); break; + } case MARF.HIGH_PASS_BOOST_FILTER: + { //soPreprocessing = new HighPassBoostFilter(soSample); oPreprocessing = new HighFrequencyBoost(new HighPassFilter(poSample)); //soPreprocessing = new HighPassFilter(new HighFrequencyBoost(soSample)); break; + } + + case MARF.BAND_STOP_FFT_FILTER: + { + oPreprocessing = new marf.Preprocessing.FFTFilter.BandStopFilter(poSample); + break; + } case MARF.RAW: + { oPreprocessing = new Raw(poSample); break; + } case MARF.PREPROCESSING_PLUGIN: Index: Makefile =================================================================== RCS file: /cvsroot/marf/marf/src/marf/Preprocessing/Makefile,v retrieving revision 1.7 retrieving revision 1.7.4.1 diff -C2 -d -r1.7 -r1.7.4.1 *** Makefile 17 Mar 2006 04:48:48 -0000 1.7 --- Makefile 9 Apr 2008 00:32:13 -0000 1.7.4.1 *************** *** 18,21 **** --- 18,22 ---- PreprocessingException.class \ IFilter.class \ + Filter.class \ PreprocessingFactory.class *************** *** 32,35 **** --- 33,37 ---- IFilter.class: IFilter.java + Filter.class: Filter.java IPreprocessing.class: IPreprocessing.java Preprocessing.class: Preprocessing.java Index: Preprocessing.java =================================================================== RCS file: /cvsroot/marf/marf/src/marf/Preprocessing/Preprocessing.java,v retrieving revision 1.47 retrieving revision 1.47.4.1 diff -C2 -d -r1.47 -r1.47.4.1 *** Preprocessing.java 8 Jan 2007 04:53:36 -0000 1.47 --- Preprocessing.java 9 Apr 2008 00:32:13 -0000 1.47.4.1 *************** *** 4,7 **** --- 4,8 ---- import marf.MARF; + import marf.Preprocessing.FFTFilter.LowPassFilter; import marf.Storage.ModuleParams; import marf.Storage.Sample; *************** *** 97,100 **** --- 98,103 ---- this.oSample = poSample; + extractParameters(); + //Debug.debug(Preprocessing.class, "constructed"); } *************** *** 143,146 **** --- 146,151 ---- this.oObjectToSerialize = this.oSample = poPreprocessing.getSample(); + + extractParameters(); } *************** *** 157,193 **** throws PreprocessingException { - // Extract any additional params if supplied - - ModuleParams oModuleParams = MARF.getModuleParams(); - - if(oModuleParams != null) - { - Vector oParams = oModuleParams.getPreprocessingParams(); - - if(oParams != null) - { - switch(oParams.size()) - { - case 0: - break; - - case 1: - this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); - break; - - case 2: - this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); - this.bRemoveSilence = ((Boolean)oParams.elementAt(1)).booleanValue(); - break; - - default: - this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); - this.bRemoveSilence = ((Boolean)oParams.elementAt(1)).booleanValue(); - this.dSilenceThreshold = ((Double)oParams.elementAt(2)).doubleValue(); - break; - } - } - } - // Normalize prior doing anything boolean bChanges = normalize(); --- 162,165 ---- *************** *** 209,223 **** /** ! * Derivatives should implement this method to remove noise from the sample. * * @return boolean that sample has changed (noise removed) - * - * @throws NotImplementedException * @throws PreprocessingException declared but never thrown */ public boolean removeNoise() throws PreprocessingException { ! throw new NotImplementedException(this, "removeNoise()"); } --- 181,210 ---- /** ! * Implements the noise in a relatively general default way by invoking the ! * low-pass FFT filter with the default settings. Derivatives may override ! * this default implementation the way they deem necessary. ! * This default implementation of the noise removal appeared in 0.3.0.6, ! * December 2007 and may be a subject for further parametrization. * * @return boolean that sample has changed (noise removed) * @throws PreprocessingException declared but never thrown + * @see LowPassFilter */ public boolean removeNoise() throws PreprocessingException { ! LowPassFilter oNoiseRemover = new LowPassFilter(this.oSample); ! ! // These are needed to prevent indirect recursion of noise ! // and silence removal ! oNoiseRemover.bRemoveNoise = false; ! oNoiseRemover.bRemoveSilence = false; ! ! boolean bChanges = oNoiseRemover.preprocess(); ! ! this.oSample.setSampleArray(oNoiseRemover.getSample().getSampleArray()); ! oNoiseRemover = null; ! ! return bChanges; } *************** *** 476,480 **** /** ! * Implementaion of back-synchronization of Sample loaded object. * @since 0.3.0.2 */ --- 463,467 ---- /** ! * Implementation of back-synchronization of Sample loaded object. * @since 0.3.0.2 */ *************** *** 487,491 **** /** ! * Implementes Cloneable interface for the Preprocessing object. * Performs "deep" copy, including the contained sample. * @see java.lang.Object#clone() --- 474,478 ---- /** ! * Implements Cloneable interface for the Preprocessing object. * Performs "deep" copy, including the contained sample. * @see java.lang.Object#clone() *************** *** 503,506 **** --- 490,537 ---- return oCopy; } + + /** + * Performs general preprocessing module parameters extraction. + * E.g. parameters include the fact whether to remove noise and + * silence and the silence threshold. Typically invoked from + * constructors and is not meant for general public. + * + * @since 0.3.0.6 + */ + protected void extractParameters() + { + // Extract any additional params if supplied + + ModuleParams oModuleParams = MARF.getModuleParams(); + + if(oModuleParams != null) + { + Vector oParams = oModuleParams.getPreprocessingParams(); + + if(oParams != null) + { + switch(oParams.size()) + { + case 0: + break; + + case 1: + this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); + break; + + case 2: + this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); + this.bRemoveSilence = ((Boolean)oParams.elementAt(1)).booleanValue(); + break; + + default: + this.bRemoveNoise = ((Boolean)oParams.elementAt(0)).booleanValue(); + this.bRemoveSilence = ((Boolean)oParams.elementAt(1)).booleanValue(); + this.dSilenceThreshold = ((Double)oParams.elementAt(2)).doubleValue(); + break; + } + } + } + } /** |