【发布时间】:2022-03-05 17:36:24
【问题描述】:
我们有来自我们的一个服务器端进程的实时不受控制的录音的各种波形文件,其中大多数在整个过程中都具有良好的清晰语音。但是,有时它们会出现乱码,有静电,或者语音音量不够大。是否有一种有效的方法可以使用 C# 确定录音是否被视为“良好”质量?
我曾考虑将已知良好录音的频谱图与不良录音的频谱图进行比较,但每次录音都会有不同的语音,因此这可能行不通。我研究过 Bass.Net 和 NAudio 等库,但音频处理不是我的专业领域。
我可以尝试比较audio fingerprints,但我不完全确定这是如何工作的。我看到有人试图使用他们的音频指纹哈希和 Levenshtein 距离算法来比较两个音频文件,以找出两个音频文件之间的相似程度。除非音频指纹生成的哈希在相似的音频文件之间相似,否则此方法将不起作用。
我的另一个想法是使用某种语音识别 API 来尝试处理语音并将音频的抄本写入文本文件。问题是语音识别不是非常准确,像微软的语音 API 这样的 API 可能仍然会尝试识别语音,即使是在乱码录音或带有一堆静态的录音中。我看到 Nuance 有他们的语音识别软件的SDK 版本,但我还没有机会查看 SDK,因为他们似乎没有在他们的网站上提供 SDK 的试用版。
【问题讨论】:
-
你可以通过算法来做一些事情,比如确定本底噪声、动态范围、RMS 输出等。IMO 你最好的选择是研究 VST 插件,然后用 C# 编写一个 VST 托管应用程序来通过各种 VST 插件运行声音,其中有数千个可用。
-
感谢您的建议。我会尽快调查此事。目前,我们已经搁置了对音频处理的需求。
标签: c# speech-recognition audio-fingerprinting