ComputeJFAStats.cpp

Go to the documentation of this file.
00001 // ComputeJFAStats.cpp
00002 // 
00003 // This file is a part of Mistral Package and LIA Software 
00004 // LIA_SpkDet, based on Mistral_Ral toolkit 
00005 // LIA_SpkDet is a free, open tool for speaker recognition
00006 // LIA_SpkDet is a development project initiated and funded by the LIA lab.
00007 //
00008 // See mistral.univ-avignon.fr 
00009 // 
00010 // ALIZE is needed for LIA_SpkDet
00011 // for more information about ALIZE, see http://alize.univ-avignon.fr
00012 //
00013 // Copyright (C) 2004 - 2005 - 2006 - 2007 -2008
00014 //  Laboratoire d'informatique d'Avignon [www.lia.univ-avignon.fr]
00015 //  Jean-Francois Bonastre [jean-francois.bonastre@univ-avignon.fr]
00016 //      
00017 // Mistral is free software; you can redistribute it and/or
00018 // modify it under the terms of the GNU General Public
00019 // License as published by the Free Software Foundation; either
00020 // version 2.1 of the License, or (at your option) any later version.
00021 // This software is distributed in the hope that it will be useful,
00022 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00024 // General Public License for more details.
00025 // You should have received a copy of the GNU General Public
00026 // License along with this library; if not, write to the Free Software
00027 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 // The LIA team as well as the ALIZE project want to highlight the limits of voice authentication
00030 // in a forensic context. 
00031 // The following paper proposes a good overview of this point:
00032 // [Bonastre J.F., Bimbot F., Boe L.J., Campbell J.P., Douglas D.A., Magrin-chagnolleau I.,
00033 //  Person  Authentification by Voice: A Need of Caution,
00034 //  Eurospeech 2003, Genova]
00035 // The conclusion of the paper of the paper is proposed bellow:
00036 // [Currently, it is not possible to completely determine whether the
00037 //  similarity between two recordings is due to the speaker or to other
00038 //  factors, especially when: (a) the speaker does not cooperate, (b) there
00039 //  is no control over recording equipment, (c) recording conditions are not 
00040 //  known, (d) one does not know whether the voice was disguised and, to a
00041 //  lesser extent, (e) the linguistic content of the message is not
00042 //  controlled. Caution and judgment must be exercised when applying speaker
00043 //  recognition techniques, whether human or automatic, to account for these
00044 //  uncontrolled factors. Under more constrained or calibrated situations,
00045 //  or as an aid for investigative purposes, judicious application of these
00046 //  techniques may be suitable, provided they are not considered as infallible.
00047 //  At the present time, there is no scientific process that enables one to
00048 //  uniquely characterize a person=92s voice or to identify with absolute
00049 //  certainty an individual from his or her voice.]
00050 //
00051 // Contact Jean-Francois Bonastre (jean-francois.bonastre@lia.univ-avignon.fr) for
00052 // more information about the licence or the use of LIA_SpkDet
00053 // First version 15/07/2004
00054 // New version 23/02/2005
00055 // 
00056 // Last review 4 nov 2008
00057 //
00058 
00059 #if !defined(ALIZE_ComputeJFAStats_cpp)
00060 #define ALIZE_ComputeJFAStats_cpp
00061 
00062 #include <iostream>
00063 #include <fstream>  
00064 #include <cstdio> 
00065 #include <cassert> 
00066 #include <cmath>
00067 #include <cstdlib>
00068 
00069 #include "liatools.h"
00070 #include "ComputeJFAStats.h"
00071 #include "AccumulateJFAStat.h"
00072 
00073 using namespace alize;
00074 using namespace std;
00075 
00076 int ComputeJFAStats(Config &config){
00077 
00078         String ndxFilename = config.getParam("ndxFilename");
00079         
00080         //Creation de l'accumulateur
00081         JFAAcc jfaAcc(ndxFilename, config);
00082         
00083         //Calcul des statistiques
00084         jfaAcc.computeAndAccumulateJFAStat(config);
00085         
00086         //sauve les accumulateurs
00087         jfaAcc.saveAccs(config);
00088         
00089 
00090 return 0;
00091 }
00092 #endif 
00093 
00094 
00095