问题描述
我有3222个.wav数据,其结构如下所示:
final = {'a0001.wav':Numpy数组,'a0002.wav':Numpay数组,...,'a3222.wav':Numpy数组}
*所有Numpy数组大小均为99X160
我的问题是如何添加每个.wav的标签,例如'a0001.wav'标签为1或'a0002.wav'标签为0,依此类推。 我该如何分割最终标记的数据以训练和测试零件?
下面是完整代码:
import glob
from scipy.io import wavfile
import numpy as np
# Data augmentation
def augmentation(signal,split_size):
split_signal={}
split_list=[j*split_size for j in range(int(len(signal)/split_size))]
for item in range(len(split_list)-1):
split_signal[item]=signal[int(split_list[item]):int(split_list[item+1])]
Num_split=int(len(signal)/split_size)
return split_signal,Num_split
# Variable defenition
aug_sig={}
final={}
aug_len=160
# Import file
files = glob.glob('*.wav')
for item in files:
fs,data = wavfile.read(item)
aug_sig[item]=augmentation(data[int(len(data)/2)-8000:int(len(data)/2)+8000],aug_len)
arr=[]
for i in range(aug_sig[item][1]-1):
arr=np.concatenate((arr,aug_sig[item][0][i].transpose()),axis=0)
final[item]=arr.reshape(aug_sig[item][1]-1,aug_len)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)