コード例 #1
0
def section_by_section_analysis(model, audio_file, to_flatten):
    class_labels = ["Neutral", "Angry", "Happy", "Sad"]
    entireAudio = AudioSegment.from_wav(audio_file)
    chunkSize = 2000
    numChunks = len(entireAudio) / chunkSize
    temporaryFileName = 'tempFile.wav'
    print(len(entireAudio))
    print(numChunks)
    previousEndTime = 0
    for endTime in range(chunkSize, len(entireAudio) + chunkSize, chunkSize):
        if (endTime > len(entireAudio)):
            lastBit = (len(entireAudio) - previousEndTime) * -1
            newAudio = entireAudio[lastBit:]
        else:
            newAudio = entireAudio[previousEndTime:endTime]
        newAudio.export(
            temporaryFileName,
            format="wav")  #Exports to a wav file in the current path.
        predicted_value = model.predict_one(
            get_feature_vector_from_mfcc(temporaryFileName,
                                         flatten=to_flatten))
        print('section:', previousEndTime, '-', endTime,
              '(ms). predicted value:', predicted_value, '[',
              class_labels[predicted_value], ']')
        os.remove(temporaryFileName)
        previousEndTime = endTime
コード例 #2
0
ファイル: ml_example.py プロジェクト: ABHI2598/SER
def ml_example():
    to_flatten = True
    x_train, x_test, y_train, y_test, _ = extract_data(flatten=to_flatten)
    model = NN()
    print('Starting', model.name)
    model.train(x_train, y_train)
    model.evaluate(x_test, y_test)
    filename = '../dataset/Sad/09b03Ta.wav'
    print('prediction', model.predict_one(
        get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
          'Actual 3')
コード例 #3
0
def ml_example(url, sourceName):
    print("URL is: ", url)
    print("Source Name is: ", sourceName)
    filename = sourceName
    urllib.request.urlretrieve(url, filename)
    print('file downloaded')

    to_flatten = True
    x_train, x_test, y_train, y_test, _ = extract_data(flatten=to_flatten)
    model = NN()
    print('Starting', model.name)
    model.train(x_train, y_train)
    model.evaluate(x_test, y_test)

    # filename = testingFileName + '.wav'
    # 0 => Neutral
    # Neutral File 1
    # filename = './dataset/Neutral/03a02Nc.wav'
    # Neutral File 2
    # filename = './dataset/Neutral/11b03Nb.wav'

    # 1 => Angry
    # Angry File 1
    # filename = './dataset/Angry/03a04Wc.wav'
    # Angry File 2
    # filename = './dataset/Angry/10a04Wa.wav'

    # 2 => Happy
    # Happy File 1
    # filename = './dataset/Happy/03a05Fc.wav'
    # Happy File 2
    # filename = './dataset/Happy/15a07Fb.wav'

    # 3 => Sad
    # Sad File 1
    # filename = './dataset/Sad/09b03Ta.wav'
    # Sad File 2
    # filename = './dataset/Sad/16a05Tb.wav'

    # print('prediction', model.predict_one(
    #     get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
    #     'Actual 1')
    # return model.predict_one(get_feature_vector_from_mfcc(filename, flatten=to_flatten))
    emotions = model.predict_one(
        get_feature_vector_from_mfcc(filename, flatten=to_flatten))
    print("Emotions are: ", emotions)
    finalEmotion = 0
    for emotion in emotions:
        finalEmotion = emotion
    finalEmotion = finalEmotion.item()
    if finalEmotion == 0:
        finalEmotion = random.choice(numbers)
    print("Final Emotion is: ", finalEmotion)
    return finalEmotion
コード例 #4
0
def lstm_example():
    to_flatten = False
    x_train, x_test, y_train, y_test, num_labels = extract_data(
        flatten=to_flatten)
    y_train = np_utils.to_categorical(y_train)
    y_test_train = np_utils.to_categorical(y_test)
    print('Starting LSTM')
    model = LSTM(input_shape=x_train[0].shape, num_classes=num_labels)
    # model.train(x_train, y_train, x_test, y_test_train, n_epochs=50)
    # model.evaluate(x_test, y_test)
    filename = 'dataset/Sad/09b03Ta.wav'
    print(
        'prediction',
        model.predict_one(
            get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
        'Actual 3')
コード例 #5
0
def lstm_saved_model():
    to_flatten = False
    x_train, x_test, y_train, y_test, num_labels = extract_data(
        flatten=to_flatten)
    y_train = np_utils.to_categorical(y_train)
    y_test_train = np_utils.to_categorical(y_test)
    print('Starting LSTM')
    model = LSTM(input_shape=x_train[0].shape,
                 num_classes=num_labels, save_path="./lstm.h5")
    print("Loading")
    model.restore_model()
    # filename = '../dataset/03a01Wa.wav'
    filename = '../dataset/sad.wav'
    print("\nPredicted: {}\nActual: {}".format(
        get_class_name(
            model.predict_one(get_feature_vector_from_mfcc(filename, flatten=to_flatten))),
        get_class_name(3)))
コード例 #6
0
def ml_example():
    to_flatten = True
    x_train, x_test, y_train, y_test, _ = extract_data(flatten=to_flatten)
    model = NN()
    print('Starting', model.name)
    model.train(x_train, y_train)
    model.evaluate(x_test, y_test)
    filename = '../dataset/Sad/09b03Ta.wav'
    i = model.predict_one(
        get_feature_vector_from_mfcc(filename, flatten=to_flatten))
    if i == 0:
        print("Prediction: Angry")
    elif i == 1:
        print("Prediction: Happy")
    elif i == 2:
        print("Prediction: Neutral")
    else:
        print("Prediction: Sad")
コード例 #7
0
ファイル: cnn_example.py プロジェクト: ABHI2598/SER
def cnn_example():
    to_flatten = False
    x_train, x_test, y_train, y_test, num_labels = extract_data(
        flatten=to_flatten)
    y_train = np_utils.to_categorical(y_train)
    y_test_train = np_utils.to_categorical(y_test)
    in_shape = x_train[0].shape
    x_train = x_train.reshape(x_train.shape[0], in_shape[0], in_shape[1], 1)
    x_test = x_test.reshape(x_test.shape[0], in_shape[0], in_shape[1], 1)
    model = CNN(input_shape=x_train[0].shape,
                num_classes=num_labels)
    model.train(x_train, y_train, x_test, y_test_train)
    model.evaluate(x_test, y_test)
    filename = '../dataset/Sad/09b03Ta.wav'
    print('prediction', model.predict_one(
        get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
          'Actual 3')
    print('CNN Done')
コード例 #8
0
def lstm_example():
    to_flatten = False
    x_train, x_test, y_train, y_test, num_labels = extract_data(
        flatten=to_flatten)
    y_train = np_utils.to_categorical(y_train)
    y_test_train = np_utils.to_categorical(y_test)
    print('Starting LSTM')
    model = LSTM(input_shape=x_train[0].shape, num_classes=num_labels)
    print('Model Object Created, Going to train Model')
    model.train(x_train, y_train, x_test, y_test_train, n_epochs=50)
    print('Model Object trained, Going to evaluate Model')
    model.evaluate(x_test, y_test)
    print('Model Object Evaludated, Going to import testing audio')
    filename = './dataset/Sad/09b03Ta.wav'
    print(
        'prediction',
        model.predict_one(
            get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
        'Actual 3')
    print('Finishing LSTM')
コード例 #9
0
def lstm_example():
    to_flatten = False
    x_train, x_test, y_train, y_test, num_labels = extract_data(
        flatten=to_flatten)
    y_train = np_utils.to_categorical(y_train)
    y_test_train = np_utils.to_categorical(y_test)
    print('Starting LSTM')
    model = LSTM(input_shape=x_train[0].shape,
                 num_classes=num_labels, save_path="./lstm.h5")
    print("Training")
    model.train(x_train, y_train, x_test, y_test_train, n_epochs=10)
    print("Evaluating")
    model.evaluate(x_test, y_test)
    model.save_model()
    filename = '../dataset/Sad/09b03Ta.wav'
    # filename = './laugh.wav'
    print("\nPredicted: {}\nActual: {}".format(
        get_class_name(
            model.predict_one(
                get_feature_vector_from_mfcc(filename, flatten=to_flatten))),
        get_class_name(2)))
コード例 #10
0
def get_feature_vector(file_path, flatten):
    return get_feature_vector_from_mfcc(file_path, flatten, mfcc_len=39)
コード例 #11
0
ファイル: common.py プロジェクト: adityaa30/MoodX
def get_feature_vector(flatten, file_path="dataset"):
    return get_feature_vector_from_mfcc(file_path, flatten, mfcc_len=39)