audio - 如何同步两个录音*没有*时间戳?

标签 audio synchronization

假设我有同一个音乐会的两个单独的录音(在用户的手机上创建,然后上传到我们的服务器)。然后根据它们的创建时间戳对齐这些记录。但是,当这些录音一起播放或在它们之间快速切换时,会发现它们的创建时间戳必须关闭,因为存在明显的延迟。

由于时间戳不是对齐这些记录的可靠方法,还有什么替代方法?我真的希望不必学习音频信号处理来解决这个问题,但认识到这可能是唯一的方法。所以,我想我的问题是:

  • 我可以做某种时钟同步吗?如果内部设备时钟明显关闭了未知数量,这是否可能?如果是的话,将不胜感激这将如何工作和关键词的一般概述。
  • 如果#1不是一个选项,我想我需要了解音频信号处理?再次,将赞赏如何从该角度解决问题的一般概述和一些关键词。
  • 最佳答案

    您需要处理两个不同的问题。问题 1 是记录开始时间的对齐。我怀疑您是否可以期望两个用户的按下记录在完全相同的时刻。即使他们这样做了,它们也可能与扬声器的距离不同,并且声音传播需要时间。手动调整开始时间非常简单。人脑擅长比较声音的相似性。以编程方式,这是一个不同的故事。您可以尝试使用交叉相关或查看 dsp.stackexchange.com 之类的东西。虽然没有确切的方法。

    问题 2 是驱动两个设备上的 A/D 转换器的时钟不会以相同的精确速率运行。因此,即使您同步开始时间,最终两者也会分开。明显漂移所需的时间是两个时钟频率差的函数。如果它们相对较近,您可能不会在简短的录音中注意到。为了应对这种情况,您需要延长其中一个录音的时间。这会增加或减少录音的持续时间而不影响音高。有很多录音应用程序可以让您延长时间,但它们并不能帮助您确定多少时间。开始搜索“时间拉伸(stretch)”或再次查看 dsp.stackexchange.com。

    我意识到这些都不是直接的答案——而是建议。

    关于audio - 如何同步两个录音*没有*时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27965278/

    相关文章:

    audio - 如何从音调样本创建和播放矢量?

    java - 安卓 : How to play a sound depending on the button that is pressed?

    sharepoint-2010 - Sharepoint Workspace 2010 本地商店位置

    java - 最快的同步技术

    c++ FFT节拍检测库?

    iphone - 在 MPMediaPickerController 中仅获取专辑标题、播放列表

    javascript - 跟踪 HTML5 音频元素播放了多少次?

    go - 不用互斥量的goroutines

    用于同步事件的 JavaScript 库

    c++ - Cuda:从 n 中同步一个核函数