C# 如何检查两个.wav文件是否包含相同的声音数据?
这里有一个例子,我会尽量使它简单 我有2.wav/.mp3声音文件“A”和“B”。C# 如何检查两个.wav文件是否包含相同的声音数据?,c#,audio,C#,Audio,这里有一个例子,我会尽量使它简单 我有2.wav/.mp3声音文件“A”和“B”。 “A”听起来像这样:“asdfasdafasfsafDATAsdafsfdafsa”。 “B”听起来像:“数据”” 现在我的问题是,如何检查“A”是否包含“B”? 我正在使用Visual Studio 2015并用C#编写代码。如果没有第三方软件,这是否可能? 提前感谢。不过这不是一件小事: 如果两个wav文件具有相同的采样频率,则可以继续。如果没有,则必须重新采样以对应(使用工具或编程方式) 找出两个文件的实
“A”听起来像这样:“asdfasdafasfsafDATAsdafsfdafsa”。
“B”听起来像:“数据”” 现在我的问题是,如何检查“A”是否包含“B”?
我正在使用Visual Studio 2015并用C#编写代码。如果没有第三方软件,这是否可能?
提前感谢。不过这不是一件小事:
- 如果两个wav文件具有相同的采样频率,则可以继续。如果没有,则必须重新采样以对应(使用工具或编程方式)
- 找出两个文件的实际数据从何处开始(这可能会有很大差异,请阅读wav头大小以及如何检测它们)
- 将两个文件的数据读入字节数组
- 你要寻找的“样本”有一个长度。该长度将是目标字节数组上的滑动窗口
- 如果您满足于搜索完全相同的样本(A的某些部分听起来完全像B),那么您可以对滑动窗口内容与参考样本进行哑比较(字节比较)。但是,如果你想在合成目标波中寻找你的样本(与其他声音或层混合,因此a的某些部分中有B,但这只是在B出现时听到的x事物之一),那么据我所知,你正在走向快速和/或离散傅里叶变换,隐马尔可夫模型或任意数量的模式识别算法。毫无疑问,这里有无数比我聪明得多的人,当涉及到数学时,他们实际上可以说一些有道理的话。只是不是我