C# 如何从音频文件中分离语音?

C# 如何从音频文件中分离语音?,c#,vb.net,audio,fft,naudio,C#,Vb.net,Audio,Fft,Naudio,我正在写一个软件来比较两位歌手的歌唱能力。第一个用户添加一个源于原始歌手的音乐文件。然后,软件自动将语音与音频隔离,然后用户将其与录制的音频进行比较 到目前为止,我还无法找到一个源或任何其他工具来为您提供这种FFT方法来分离声音。有几种方法可以分离音频中的不同声音,但它们可能非常棘手,需要大量数字信号处理知识 实际上,有一个例子是艾伦·Openheimer博士在麻省理工学院关于数字信号处理的系列讲座中演示的。(视频中大约9:50)如果你真的想这么做,那么浏览他的视频是非常有用的 我能给你的最好

我正在写一个软件来比较两位歌手的歌唱能力。第一个用户添加一个源于原始歌手的音乐文件。然后,软件自动将语音与音频隔离,然后用户将其与录制的音频进行比较


到目前为止,我还无法找到一个源或任何其他工具来为您提供这种FFT方法来分离声音。

有几种方法可以分离音频中的不同声音,但它们可能非常棘手,需要大量数字信号处理知识

实际上,有一个例子是艾伦·Openheimer博士在麻省理工学院关于数字信号处理的系列讲座中演示的。(视频中大约9:50)如果你真的想这么做,那么浏览他的视频是非常有用的

我能给你的最好的东西可能是来自约克大学的研究,他们在这方面做了相当多的工作。如果你仔细阅读他们的一些论文,你会发现一些如何做到这一点的例子


希望有帮助

用仪器将声音从录音中分离出来是更高的科学,我认为这是不可能的。没有办法决定哪个属于声音,哪个属于某些乐器。您可以过滤语音的典型频率(使用FFT),但您也可以获得仪器在此频率范围内产生的所有噪声。一切都是火箭科学。而“比较歌唱能力”与两个音频文件,似乎更为科学。所以,除非你是研究机构的天才黑客,否则我想你是迷路了。你是说我不能比较两个文件的声音吗?因为我应该尽快提交这个项目,我需要以某种方式比较这两种声音,并显示一个音高的相似程度的百分比。我不认识你,也不知道你是否能做到这一点。但是你的问题让我假设你不是音频信号处理方面的专家和研究人员。据我所知,目前市面上最接近的是playstation的singstar游戏。但据我所知,它所做的唯一一件事是计算出你在麦克风上演唱的频率的音高,并将其与歌曲的这一时间点的预期数据进行比较。我认为最简单的可能是有两个音频,只有声音。然后你可以用FFT处理它们,也许可以计算每毫秒的音高,并比较两个数据。也许这会有所帮助:或者看看这个搜索的其他结果:你是对的。我不是音频信号方面的专家。我更多的是一名业务应用程序开发人员和分析师。这就是为什么我如此苦苦挣扎的原因。有SDK、API或其他什么吗?@cegprakash很有趣:)