如何查找.wav文件中的噪声点。我的意思是,不去除噪声,只是在噪声发生时我检查了一个用于分类狗和猫声音的网站
但它没有正常工作…
你们能给我一些建议或其他查找.wav文件中噪声点的方法吗?
- 是否可以通过使用逻辑回归(机器学习)来查找声音中的噪声?不是去除噪声…
- 有没有其他方法可以找到噪声点?
回答:
尝试这个
noise_clip
信号的一小部分(噪声样本,可能是一秒的帧持续时间)
audio_clip
实际音频
signal, fs = librosa.load(path) signln = len(signal) avg_energy = np.sum(signal ** 2) / float(signln) #实际信号的平均能量f_d = 0.02 #帧持续时间perc = 0.01flag = Truej = 0f_length = fs * f_d #帧长度为`每秒帧数(fs) * 帧持续时间(f_d)` signln = len(signal)retsig = []noise = signal[0:441] # 仅考虑开头的少量部分作为噪声avg_energy = np.sum(signal ** 2) / float(signln)while j < signln: subsig = signal[int(j): int(j) + int(f_length)] average_energy = np.sum(subsig ** 2) / float(len(subsig)) # 当前帧的平均能量 if average_energy <= avg_energy: #如果当前帧的能量小于实际信号的能量,那么可以确认这个帧是静音或噪声部分 if flag: #获取信号中首次出现的噪声或静音 noise = subsig #如果你想获取所有噪声帧,只需创建一个列表并添加它(noise_list.append(subsig)),并且不要使用flag条件 flag = False else: # 如果当前帧的平均能量大于实际信号能量,那么这个帧包含数据 retsig.append(subsig) # 因此你需要将该帧添加到新变量中 j += f_length