gpt4 book ai didi

c# - 如何检查两个.wav文件是否包含相同的声音数据?

转载 作者:行者123 更新时间:2023-12-03 02:33:06 26 4
gpt4 key购买 nike

这是一个示例,我将尝试使其尽可能简单。

我有2个.wav / .mp3声音文件“A”和“B”。
“A”听起来像这样:“asdfasdafasfsaf DATA sdafsfdafsa”。
“B”听起来像这样:“ DATA ”。

现在我的问题是,如何检查“A”是否包含“B”?
我正在使用Visual Studio 2015并使用C#进行编码。如果没有第三方软件,是否有可能?
提前致谢。

最佳答案

但是,这不是一件小事:

  • 如果两个wav文件都具有相同的采样频率,则可以使用。如果不是,则必须重新采样以对应(使用工具或以编程方式)
  • 找出两个文件的实际数据从哪里开始(这可能有很大的不同,请阅读有关wav header 大小以及如何检测它们的信息)
  • 将两个文件的数据读入字节数组

  • 上面几乎是第0步。
  • 您要查找的“样本”有一定长度。该长度将是目标字节数组上的滑动窗口。
  • 如果您想搜索完全相同的样本(A的某些部分听起来完全像B),则可以将滑动窗口内容与引用样本进行哑比较(字节比较)。但是,如果您想在混合目标波形中查找样本(与其他声音或图层混合,因此A的一部分包含B,但这只是在B出现的时间索引中听到的x件事之一)那么据我所知,您正朝着快速和/或离散傅立叶变换,隐马尔可夫模型或许多用于模式识别的算法前进。毫无疑问,这里有无数的人比我聪明,他们在数学方面实际上可以说出明智的话。只是...不是我

  • 直到数学部分,这都是非常简单的,但是真正的魔力始于实现所依赖的算法时。当然,您可以根据自己的要求和数学背景/技能/耐心/ ...,将其扩展到所需的范围。

    一个小小的注解:“如果没有第三方软件,这是否可能”很少是一个真正相关的问题。 3rd party软件不是黑魔法,它只是由您和我这样的人编写的软件。不同之处在于,它有时是由非常聪明的人(通常为复数形式)编写的,并且经常在很长的一段时间内进行开发,测试和完善,因此,如果问题是“可以解决”,那么几乎总是"is"。如果问题是“我是否可以在短时间内自己复制一个完整,复杂且高性能的库”……那么……也许我猜到了。

    关于c# - 如何检查两个.wav文件是否包含相同的声音数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149944/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com