Exemplo n.º 1
0
def test_ubm_var_channel():
    ubm = GMM.load('model/ubm.mixture-32.person-20.immature.model')

    train_duration = 8.
    nr_test = 5
    test_duration = 3.
    audio_files = ['xinyu.vad.wav', 'wyx.wav']
    X_train, y_train, X_test, y_test = [], [], [], []
    for audio_file in audio_files:
        fs, signal = wavfile.read(audio_file)
        signal = monotize_signal(signal)

        train_len = int(fs * train_duration)
        test_len = int(fs * test_duration)

        X_train.append(mix_feature((fs, signal[:train_len])))
        y_train.append(audio_file)

        for i in range(nr_test):
            start = random.randint(train_len, len(signal) - test_len)
            X_test.append(mix_feature((fs, signal[start:start + train_len])))
            y_test.append(audio_file)

    gmmset = GMMSet(32, ubm=ubm)
    gmmset.fit(X_train, y_train)
    y_pred = gmmset.predict_with_reject(X_test)
    for i in xrange(len(y_pred)):
        print y_test[i], y_pred[i], '' if y_test[i] == y_pred[i] else 'wrong'

    for imposter_audio_file in map(lambda x: 'test-{}.wav'.format(x),
                                   range(5)):
        fs, signal = wavfile.read(imposter_audio_file)
        signal = monotize_signal(signal)
        imposter_x = mix_feature((fs, signal))
        print gmmset.predict_one_with_rejection(imposter_x)
Exemplo n.º 2
0
def test_ubm_var_channel():
    ubm = GMM.load('model/ubm.mixture-32.person-20.immature.model')

    train_duration = 8.
    nr_test = 5
    test_duration = 3.
    audio_files = ['xinyu.vad.wav', 'wyx.wav']
    X_train, y_train, X_test, y_test = [], [], [], []
    for audio_file in audio_files:
        fs, signal = wavfile.read(audio_file)
        signal = monotize_signal(signal)

        train_len = int(fs * train_duration)
        test_len = int(fs * test_duration)

        X_train.append(mix_feature((fs, signal[:train_len])))
        y_train.append(audio_file)

        for i in range(nr_test):
            start = random.randint(train_len, len(signal) - test_len)
            X_test.append(mix_feature((fs, signal[start:start+train_len])))
            y_test.append(audio_file)

    gmmset = GMMSet(32, ubm=ubm)
    gmmset.fit(X_train, y_train)
    y_pred = gmmset.predict_with_reject(X_test)
    for i in xrange(len(y_pred)):
        print y_test[i], y_pred[i], '' if y_test[i] == y_pred[i] else 'wrong'

    for imposter_audio_file in map(
            lambda x: 'test-{}.wav'.format(x), range(5)):
        fs, signal = wavfile.read(imposter_audio_file)
        signal = monotize_signal(signal)
        imposter_x = mix_feature((fs, signal))
        print gmmset.predict_one_with_rejection(imposter_x)