]> git.parisson.com Git - timeside-diadems.git/commitdiff
Update Limsi-SAD to match new package structure (i.e. use get_processor)
authorThomas Fillon <thomas@parisson.com>
Mon, 19 May 2014 13:17:32 +0000 (15:17 +0200)
committerThomas Fillon <thomas@parisson.com>
Mon, 19 May 2014 13:17:32 +0000 (15:17 +0200)
timeside/analyzer/limsi_sad.py

index df9603d68acbd28b1f7ee6a5ced8114b12f1ce81..0d079a3674f56c90ef0ef8b8ffc1a61249b6d483 100644 (file)
 
 # Author: David Doukhan <doukhan@limsi.fr>
 
-from timeside.core import implements, interfacedoc
+from timeside.core import implements, interfacedoc, get_processor
 from timeside.analyzer.core import Analyzer
 from timeside.api import IAnalyzer
 import timeside
 
 import yaafelib
-import numpy as N
+import numpy as np
 import pickle
 import os.path
 
@@ -39,14 +39,14 @@ class GMM:
 
     def llh(self, x):
         n_samples, n_dim = x.shape
-        llh = -0.5 * (n_dim * N.log(2 * N.pi) + N.sum(N.log(self.vars), 1)
-                      + N.sum((self.means ** 2) / self.vars, 1)
-                      - 2 * N.dot(x, (self.means / self.vars).T)
-                      + N.dot(x ** 2, (1.0 / self.vars).T))
-        + N.log(self.weights)
-        m = N.amax(llh, 1)
-        dif = llh - N.atleast_2d(m).T
-        return m + N.log(N.sum(N.exp(dif), 1))
+        llh = -0.5 * (n_dim * np.log(2 * np.pi) + np.sum(np.log(self.vars), 1)
+                      + np.sum((self.means ** 2) / self.vars, 1)
+                      - 2 * np.dot(x, (self.means / self.vars).T)
+                      + np.dot(x ** 2, (1.0 / self.vars).T))
+        + np.log(self.weights)
+        m = np.amax(llh, 1)
+        dif = llh - np.atleast_2d(m).T
+        return m + np.log(np.sum(np.exp(dif), 1))
 
 
 class LimsiSad(Analyzer):
@@ -82,7 +82,7 @@ class LimsiSad(Analyzer):
         spec.addFeature(
             'mfccd2: MFCC CepsIgnoreFirstCoeff=0 blockSize=1024 stepSize=256 > Derivate DOrder=2')
         spec.addFeature('zcr: ZCR blockSize=1024 stepSize=256')
-        parent_analyzer = Yaafe(spec)
+        parent_analyzer = get_processor('yaafe')(spec)
         self.parents.append(parent_analyzer)
 
         # informative parameters
@@ -130,7 +130,7 @@ class LimsiSad(Analyzer):
             'yaafe.mfccd2']['data_object']['value']
         zcr = self.process_pipe.results['yaafe.zcr']['data_object']['value']
 
-        features = N.concatenate((mfcc, mfccd1, mfccd2, zcr), axis=1)
+        features = np.concatenate((mfcc, mfccd1, mfccd2, zcr), axis=1)
 
         res = 0.5 + 0.5 * \
             (self.gmms[0].llh(features) - self.gmms[1].llh(features))