我需要分析许多音频WAV文件中的特征性噪声,想法吗?

时间:2019-05-30 01:34:47

标签: audio static detection detect noise

我需要能够分析(搜索)数百个WAV文件,并检测但不能消除静态噪声。像现在所做的那样,我必须听每个对话并手动找到特征性的噪音/静电,这会花费太多时间。理想情况下,我需要一个程序,该程序可以读取每个新的WAV文件并能够检测静态噪声的特征信号,例如白噪声或整个音频频带的突发周期,高振幅噪声(例如电话通话中的AM无线电噪声等)。 (如白噪声墙)或在正常语音背景下突然出现的高频高振幅(如电话线上的crack啪声)。我不需要消除噪音,而只需检测一下并标记录音以进行进一步的故障排除。想法?

我可以听录音,找到静态或or啪声,但这需要时间。我需要一个可以自动运行并标记有问题的电话录音(电话PBX的WAV文件)的自动化或批处理过程。这些是SIP和模拟对话,具体取决于对话的内容,因此可以选择RTSP / SIP数据包分析,但原始的WAV文件是最简单的。我可以使用Audacity,但这仍然需要打开每个文件并查看音频光谱的视觉表示,并且比收听每个呼叫仅快一点,但仍然很麻烦。

我目前没有此任务的代码或方法。我只是听每个调用wav文件来查找噪音。

我需要进行批处理Wav文件搜索,该搜索可以呈现wav文件录音,其中包含录音电话通话中的特征性噪声,静态或or啪声。

1 个答案:

答案 0 :(得分:0)

除非您能告诉程序噪音如何,否则运行任何类型的批处理都将是一个挑战。我面临着类似的挑战,这促使我开发(免费和开源)软件来帮助用户进行音频探索,分析和信号分离:

从本质上讲,它会将音频可视化为2d散点图,而不是像波形或频谱图那样仅显示为“线性”。当您上传音频时,会发生以下情况:

  1. 根据您设置的阈值检测到发作(基于aubio中的高频内容算法)。如果需要的话,将其设置为None
  2. 对于每个音频片段,请根据您的选择来计算音频功能。没有通用的最佳功能集,所有功能都取决于应用程序。您可以尝试使用例如Pitch statistics。考虑为带通滤波器和样本长度(这是我们将要使用的音频片段的长度)设置适当的值。样本长度可以在将来动态建立。检查docs了解更多信息。
  3. 结果是对于每个片段,您都有许多功能,例如6或60。这意味着我们具有k维(其中k是要素数量)结构,然后使用您选择的降维算法将其投影到2d空间。 均匀流形逼近和投影是一个不错的选择。
  4. 从理论上讲,产生的 embedding 应该是这样的:相似的声音(根据我们选择的功能)应紧密结合在一起,而彼此之间的距离则应有所不同。现在,您的噪音应该与“非噪音”和表格簇分开了。
  5. 将鼠标悬停在图形上方时,将在右上角显示一组图标。一种是套索选择。用它来标记点,检查频谱图和下载表,其中包含描述该信号的功能。那时,您也可以采用与Audacity类似的方式减少噪声(出现额外的按钮)-它分析频谱并通过平滑处理降低这些频率。

它现在不能完全解决您的问题,但可能会严重减少工作量。在一天中可能会花费很多时间进行数百次wave,但是您会成功的。想要自动化吗?我正在同时开发CLI(命令行界面)。在不太遥远的将来,应该采用标记为 noise signal 的内容,然后使用监督式机器学习以批处理模式遍历所有内容。

建议/反馈?在GitHub上发布问题。