0

我们有来自我们的服务器端进程之一的实时不受控制的录音的各种波形文件,其中大多数在整个过程中都有清晰的语音。但是,有时它们会出现乱码,有静电,或者语音音量不够大。是否有一种有效的方法可以使用 C# 确定录音是否被视为“良好”质量?

我考虑将已知良好录音的频谱图与不良录音的频谱图进行比较,但每次录音都会有不同的语音,所以这可能行不通。我研究过 Bass.Net 和 NAudio 等库,但音频处理不是我的专业领域。

我可以尝试比较音频指纹,但我不完全确定它是如何工作的。我看到有人试图使用他们的音频指纹哈希和 Levenshtein 距离算法来比较两个音频文件,以找出两个音频文件之间的相似程度。除非音频指纹生成的哈希值在相似的音频文件之间相似,否则此方法将不起作用。

我的另一个想法是使用某种语音识别 API 来尝试处理语音并将音频的副本写入文本文件。问题是语音识别不是非常准确,像微软的语音 API 这样的 API 可能仍然会尝试识别语音,即使是在乱码录音或带有一堆静态的录音中。我看到 Nuance 有他们的语音识别软件的SDK版本,但我还没有机会查看 SDK,因为他们似乎没有在他们的网站上提供 SDK 的试用版。

4

2 回答 2

0

您可以使用现有的开源工具来测量嘈杂语音的 SNR。有关详细信息,请参阅http://labrosa.ee.columbia.edu/projects/snreval/

我建议您尝试 WADA SNR

http://www.cs.cmu.edu/~robust/archive/algorithms/WADA_SNR_IS_2008/

这是一个非常简单的算法,但自己设计它并非易事。

指纹识别和 ASR 并不确定,因为它们试图消除噪音而不是检测到噪音。

于 2013-08-17T17:50:53.783 回答
0

我也在寻找类似问题的解决方案,我发现了这个开源项目:https ://github.com/dpwe/audfprint 。您可以创建一个数据库,然后将您的查询(您不确定的音频质量)与数据库进行比较。

于 2022-03-05T09:36:24.343 回答