我们有来自我们的服务器端进程之一的实时不受控制的录音的各种波形文件,其中大多数在整个过程中都有清晰的语音。但是,有时它们会出现乱码,有静电,或者语音音量不够大。是否有一种有效的方法可以使用 C# 确定录音是否被视为“良好”质量?
我考虑将已知良好录音的频谱图与不良录音的频谱图进行比较,但每次录音都会有不同的语音,所以这可能行不通。我研究过 Bass.Net 和 NAudio 等库,但音频处理不是我的专业领域。
我可以尝试比较音频指纹,但我不完全确定它是如何工作的。我看到有人试图使用他们的音频指纹哈希和 Levenshtein 距离算法来比较两个音频文件,以找出两个音频文件之间的相似程度。除非音频指纹生成的哈希值在相似的音频文件之间相似,否则此方法将不起作用。
我的另一个想法是使用某种语音识别 API 来尝试处理语音并将音频的副本写入文本文件。问题是语音识别不是非常准确,像微软的语音 API 这样的 API 可能仍然会尝试识别语音,即使是在乱码录音或带有一堆静态的录音中。我看到 Nuance 有他们的语音识别软件的SDK版本,但我还没有机会查看 SDK,因为他们似乎没有在他们的网站上提供 SDK 的试用版。