audio_filter.py
2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import os
import csv
import pickle
import numpy as np
from sklearn.externals import joblib
def start_filter(config):
cls_audio_path = config['MODEL']['CLS_AUDIO']
feature_save_dir = config['VIDEO']['IS10_FEATURE_NP_DIR']
frame_list_dir = config['VIDEO']['FRAME_LIST_DIR']
result_file_name = config['AUDIO']['RESULT_FILE']
feature_name = config['AUDIO']['DATA_NAME']
svm_clf = joblib.load(cls_audio_path)
result_file_path = os.path.join(frame_list_dir, result_file_name)
result_file = open(result_file_path, 'w')
feature_path = os.path.join(feature_save_dir, feature_name)
val_annotation_pairs = np.load(feature_path, allow_pickle=True, encoding='latin1')
for pair in val_annotation_pairs:
v = pair[0]
n = pair[2]
feature_np = np.reshape(v, (1, -1))
res = svm_clf.predict_proba(feature_np)
proba = np.squeeze(res)
# class_pre = svm_clf.predict(feature_np)
result_file.write(str(pair[2])[:-4] + ' ')
result_file.write(str(proba[0]) + ',' + str(proba[1]) + ',' + str(proba[2]) + '\n')
result_file.close()
def start_filter_xgboost(config):
cls_class_path = config['MODEL']['CLS_AUDIO']
feature_save_dir = config['VIDEO']['IS10_FEATURE_NP_DIR']
frame_list_dir = config['VIDEO']['FRAME_LIST_DIR']
result_file_name = config['AUDIO']['RESULT_FILE']
feature_name = config['AUDIO']['DATA_NAME']
xgboost_model = pickle.load(open(cls_class_path, "rb"))
result_file_path = os.path.join(frame_list_dir, result_file_name)
result_file = open(result_file_path, 'w')
feature_path = os.path.join(feature_save_dir, feature_name)
val_annotation_pairs = np.load(feature_path, allow_pickle=True, encoding='latin1')
X_val = []
Y_names = []
for pair in val_annotation_pairs:
n, v = pair.items()
X_val.append(v)
Y_names.append(n)
X_val = np.array(X_val)
y_pred = xgboost_model.predict_proba(X_val)
for i, Y_name in enumerate(Y_names):
result_file.write(Y_name + ' ')
result_file.write(str(y_pred[i][0]) + ',' + str(y_pred[i][1]) + ',' + str(y_pred[i][2]) + '\n')
result_file.close()