-
Notifications
You must be signed in to change notification settings - Fork 0
/
classify_raw_data_rhythm.py
70 lines (58 loc) · 1.89 KB
/
classify_raw_data_rhythm.py
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
import shutil
import os
from create_base import *
from create_labels_files import write_txt
score = 0
path_index = np.array(['F:/项目/花城音乐项目/样式数据/3.06MP3/旋律/'])
tmp = ['A','B','C','D','E']
dis_dir = 'e:/test_image/m/'
def clear_dir(dis_dir):
for i in tmp:
d_dir = dis_dir + '/' + i
shutil.rmtree(d_dir)
os.mkdir(d_dir)
#清空文件夹
for x in tmp:
clear_dir(dis_dir)
# 保存新文件名与原始文件的对应关系
files_list = []
new_old_txt = './onsets/new_and_old.txt'
for i in range(len(path_index)):
COOKED_DIR = path_index[i]
#savepath = 'F:\\mfcc_pic\\'+ str(i) +'\\'
for root, dirs, files in os.walk(COOKED_DIR):
print("Root = ", root, "dirs = ", dirs, "files = ", files)
base_onsets = []
index = 0
for filename in files:
print(filename)
if filename.find('wav') <= 0:
continue
elif filename.find('shift') > 0:
continue
else:
index = index + 1
if filename.find('标准') > 0:
score = 100
else:
score = re.sub("\D", "", filename) # 筛选数字
if str(score).find("100") > 0:
score = 100
else:
score = int(score) % 100
if int(score) >=90:
grade = 'A'
savepath = dis_dir + 'A/'
elif int(score) >= 75:
grade = 'B'
savepath = dis_dir + 'B/'
elif int(score) >=60:
grade = 'C'
savepath = dis_dir + 'C/'
elif int(score) >=1:
grade = 'D'
savepath = dis_dir + 'D/'
else:
grade = 'E'
savepath = dis_dir + 'E/'
shutil.copyfile(root + '/' + filename, savepath + '/' + filename)