def lab2npy(input_path, out, frame_rate= 0.01):
"""
frame_rate : sampling rate, typically 10 ms (or 0.01s)
"""
name=os.path.basename(input_path)
df=pd.read_table(input_path, sep=" ", header=None)
df.columns=["onset", "offset", "phone", "score"]
#onset and offset are in 100* nanosecond. Need to be put in second
df["onset"]=df["onset"]*10**(-7)
df["offset"]=df["offset"]*10**(-7)
phones=['a{}'.format(i) for i in range(1, 49)]
list_feats=[]
R=np.empty(1)
R[0]=frame_rate
for i in range(len(df)):
on=df["onset"].iloc[i]
off=df["offset"].iloc[i]
nb_frame=int(np.floor_divide((off-on),R[0]))
for ff in range(nb_frame):
one_hot=np.empty(len(phones))
for j in range(len(phones)):
if df["phone"][i]==phones[j]:
one_hot[j]=1
else:
one_hot[j]=0
list_feats.append(one_hot)
arr_feats = np.array(list_feats)
directory=out + "/npy/"
try:
os.stat(directory)
except:
os.mkdir(directory)
np.save(directory + "/"+ name.split(".")[0], arr=arr_feats, allow_pickle=False)
评论列表
文章目录