Exemplo n.º 1
0
def super_vector(test_file_name, ubm_file):
    wav = mywave()
    waveData = wav.WaveRead(test_file_name)
    waveVadIdx = vad(waveData**2)
    waveData = waveData[waveVadIdx]

    MFCC_obj = MFCC(40, 12, 300, 3400, 0.97, 16000, 50, 0.0256, 256)
    MFCC_coef = MFCC_obj.sig2s2mfc(waveData)

    ubm = GMM(n_mix=128, n_dim=12)
    ubm.read(ubm_file)
    ubm.adapt(MFCC_coef)

    return ubm.means
Exemplo n.º 2
0
def super_vector(test_file_name, ubm_file):
    wav = mywave()
    waveData = wav.WaveRead(test_file_name)
    waveVadIdx = vad(waveData ** 2)
    waveData = waveData[waveVadIdx]

    MFCC_obj = MFCC(40,12,300,3400,0.97,16000,50,0.0256,256)
    MFCC_coef = MFCC_obj.sig2s2mfc(waveData)

    ubm = GMM(n_mix = 128, n_dim = 12)
    ubm.read(ubm_file)
    ubm.adapt(MFCC_coef)

    return ubm.means
Exemplo n.º 3
0
 ubm_data_dirs = os.listdir(ubm_dir)
 dim = 12
 sig = np.array([])
 features_M = np.ndarray(shape = (0,dim), dtype = 'float64')
 features_F = np.ndarray(shape = (0,dim), dtype = 'float64')
 features = np.ndarray(shape = (0,dim), dtype = 'float64')
 wav = mywave()
 print 'hello'
 for ubm_data_dir in ubm_data_dirs:
     print 'hello'
     print ubm_data_dir
     if ubm_data_dir == '.DS_Store':
         continue			
     sig = wav.WaveRead(ubm_dir+r'/'+ubm_data_dir)
     MFCC_obj = MFCC(40,12,300,3400,0.97,16000,50,0.0256,256)
     MFCC_coef = MFCC_obj.sig2s2mfc(sig)
     #energy = np.ndarray(shape = (MFCC_coef.shape[0],1),dtype = 'float64')
     #energy[:,0] = 10*numpy.log10((MFCC_coef**2).sum(axis=1))
     #MFCC_coef = np.hstack((MFCC_coef,energy))
     """
     dtm1 = np.ndarray(shape = MFCC_coef.shape,dtype = 'float64' ) 
     #初始化dtm1
     dtm1[0:2,:] = 0
     dtm1[MFCC_coef.shape[0]-2:MFCC_coef.shape[0],:] = 0;  
     #计算dtm1
     for loop2 in range(2,MFCC_coef.shape[0]-2):
         dtm1[loop2,:] = -2*MFCC_coef[loop2-2,:]-MFCC_coef[loop2-1,:]+MFCC_coef[loop2+1,:]+2*MFCC_coef[loop2+2,:]
     dtm1 = dtm1/3;
     dtm2 = np.ndarray(shape = MFCC_coef.shape,dtype = 'float64' )
     #初始化dtm2
     dtm2[0:4,:] = 0
Exemplo n.º 4
0
 ubm_data_dirs = os.listdir(ubm_dir)
 dim = 12
 sig = np.array([])
 features_M = np.ndarray(shape=(0, dim), dtype='float64')
 features_F = np.ndarray(shape=(0, dim), dtype='float64')
 features = np.ndarray(shape=(0, dim), dtype='float64')
 wav = mywave()
 print 'hello'
 for ubm_data_dir in ubm_data_dirs:
     print 'hello'
     print ubm_data_dir
     if ubm_data_dir == '.DS_Store':
         continue
     sig = wav.WaveRead(ubm_dir + r'/' + ubm_data_dir)
     MFCC_obj = MFCC(40, 12, 300, 3400, 0.97, 16000, 50, 0.0256, 256)
     MFCC_coef = MFCC_obj.sig2s2mfc(sig)
     #energy = np.ndarray(shape = (MFCC_coef.shape[0],1),dtype = 'float64')
     #energy[:,0] = 10*numpy.log10((MFCC_coef**2).sum(axis=1))
     #MFCC_coef = np.hstack((MFCC_coef,energy))
     """
     dtm1 = np.ndarray(shape = MFCC_coef.shape,dtype = 'float64' ) 
     #初始化dtm1
     dtm1[0:2,:] = 0
     dtm1[MFCC_coef.shape[0]-2:MFCC_coef.shape[0],:] = 0;  
     #计算dtm1
     for loop2 in range(2,MFCC_coef.shape[0]-2):
         dtm1[loop2,:] = -2*MFCC_coef[loop2-2,:]-MFCC_coef[loop2-1,:]+MFCC_coef[loop2+1,:]+2*MFCC_coef[loop2+2,:]
     dtm1 = dtm1/3;
     dtm2 = np.ndarray(shape = MFCC_coef.shape,dtype = 'float64' )
     #初始化dtm2
     dtm2[0:4,:] = 0
Exemplo n.º 5
0
import mywave
from gmm import *
from MFCC import *

if __name__ == '__main__':
    print __doc__

    ubms_dir = 'ubms'
    speaker_model_dir = 'adaption'
    if not os.path.exists(speaker_model_dir):
        os.mkdir(speaker_model_dir)

    train_data_dir = 'train_data'
    train_data = os.listdir(train_data_dir)
    wav = mywave.mywave()
    for train_wav in train_data:
        print train_wav
        wave_data = wav.WaveRead(train_data_dir + r'/' + train_wav)
        MFCC_obj = MFCC(40, 12, 300, 3400, 0.97, 16000, 50, 0.0256, 256)
        MFCC_coef = MFCC_obj.sig2s2mfc(wave_data)
        adapted_gmm = GMM()
        if train_wav[-5] == 'M':
            adapted_gmm.read(ubms_dir + r'/ubm_M')
        elif train_wav[-5] == 'F':
            adapted_gmm.read(ubms_dir + r'/ubm_F')
        else:
            print 'train_wav name unexpected'

        adapted_gmm.adapt(MFCC_coef)
        adapted_gmm.write(speaker_model_dir + r'/' + train_wav)
Exemplo n.º 6
0

if __name__ == '__main__':
	print __doc__

	ubms_dir = 'ubms'
	speaker_model_dir = 'adaption'
	if not os.path.exists(speaker_model_dir):
		os.mkdir(speaker_model_dir)

	train_data_dir = 'train_data'
	train_data = os.listdir(train_data_dir)
	wav = mywave.mywave()
	for train_wav in train_data:
		print train_wav
		wave_data = wav.WaveRead(train_data_dir+r'/'+train_wav)
		MFCC_obj = MFCC(40,12,300,3400,0.97,16000,50,0.0256,256)
		MFCC_coef = MFCC_obj.sig2s2mfc(wave_data)
		adapted_gmm = GMM()
		if train_wav[-5] == 'M':
			adapted_gmm.read(ubms_dir+r'/ubm_M')
		elif train_wav[-5] == 'F':
			adapted_gmm.read(ubms_dir+r'/ubm_F')
		else:
			print 'train_wav name unexpected'

		adapted_gmm.adapt(MFCC_coef)
		adapted_gmm.write(speaker_model_dir+r'/'+train_wav)