我目前正在研究语音分类问题。我每个班级有 1000 个音频文件,并且有 7 个这样的班级。我需要增加数据以达到更好的准确性。我正在使用 librosa 库进行数据扩充。对于每个音频文件,我都使用下面的代码。
fbank_train = []
labels_train = []
for wav in x_train_one[:len(x_train_one)]:
samples, sample_rate = librosa.load(wav, sr=16000)
if (len(samples)) == 16000:
label = wav.split('/')[6]
fbank = logfbank(samples, sample_rate, nfilt=16)
fbank_train.append(fbank)
labels_train.append(label)
y_shifted = librosa.effects.pitch_shift(samples, sample_rate, n_steps=4, bins_per_octave=24)
fbank_y_shifted = logfbank(y_shifted, sample_rate, nfilt=16)
fbank_train.append(fbank_y_shifted)
labels_train.append(label)
change_speed = librosa.effects.time_stretch(samples, rate=0.75)
if(len(change_speed)>=16000):
change_speed = change_speed[:16000]
fbank_change_speed = logfbank(change_speed, sample_rate, nfilt=16)
fbank_train.append(fbank_change_speed)
labels_train.append(label)
change_speedp = librosa.effects.time_stretch(samples, rate=1.25)
if(len(change_speedp)<=16000):
change_speedp = np.pad(change_speedp, (0, max(0, 16000 - len(change_speedp))), "constant")
fbank_change_speedp = logfbank(change_speedp, sample_rate, nfilt=16)
fbank_train.append(fbank_change_speedp)
labels_train.append(label)
那就是我正在扩充每个音频文件(音高变换和时移)。我想知道,这是增加训练数据集的正确方法吗?如果没有,需要增强的音频文件的比例是多少?