这不但是一件小事:
- 如果两个wav文件具有相同的采样频率,你是好去。如果没有,您必须重新采样以对应(使用工具或编程方式)
- 找出两个文件实际数据的起始位置(这可能差别很大,请阅读wav文件头大小以及如何检测它们)
- 阅读这两个文件的数据转换成字节数组
以上是相当多步0
- 你的“样本”,你要寻找的,具有长度。该长度将成为目标字节数组的滑动窗口。
- 如果您满意地搜索完全相同的样本(A的某些部分听起来像B),那么您可以对滑动窗口内容与参考样本进行哑比较(字节比较)。但是,如果您想在混音目标wav中找到您的示例(与其他声音或图层混合在一起,因此A的某些部分含有B,但它只是您在B发生时的索引时听到的x个内容之一)然后根据我的理解你正在进行快速和/或离散傅里叶变换,隐马尔可夫模型或任何数目的模式识别算法。毫无疑问,这里有无数人比我更聪明,他们在数学方面实际上可以说出理智的东西。只是...不是我。
直到数学部分,这是非常简单的,但真正的魔法开始时,当你实现的算法(S)你解决。当然,你可以根据你的需要,根据你的要求和你的数学背景/技能/耐心/ ...
一个小方面说明:“这是可能的,没有第三方软件”很少一个非常相关的问题。第三方软件并不是什么黑魔法,它只是由你和我这样的人编写的软件。不同之处在于,它有时是由非常聪明的人(通常是复数)编写的,并且经常在很长一段时间内开发和测试和完善,所以如果问题是“可以完成”,那么几乎总是“是”。如果问题是“我能在短时间内自己复制一个完整,复杂和高性能的图书馆”......呃...也许我猜。