【问题标题】:Measuring delay with audio fingerprinting (Java)使用音频指纹 (Java) 测量延迟
【发布时间】:2017-04-20 15:42:24
【问题描述】:

我想使用音频指纹来测量两个不同平台上的一个直播之间的延迟。目前我正在使用 Java 的 musicg 库。我可以获得诸如频谱图和指纹之类的信息,但我不知道如何使用这些数据来测量延迟。

我的问题是musicg库是否足以进行这种操作。如果是这样,我如何使用我获得的数据来找到两个流之间的延迟。

提前致谢。

【问题讨论】:

    标签: java audio fingerprinting


    【解决方案1】:

    这就是我要做的。我会创建 2 个HashMap<FingerprintData, Long>s。本质上,您将流中的指纹数据映射到来自System.nanoTime() 的回复。

    然后我会创建一个“永远”运行的“游戏循环”,或者直到你不再想要它,每次迭代我都会从每个流中获取指纹数据,并检查是否有 HashMap.keySet().contains(theFingerPrintData)从相反的溪流。如果是这样,您将从HashMap 释放它并计算延迟,如下所示:

    另外,我不确定你的类用于指纹数据,所以在我的示例中,我将称之为FingerprintData

    Map<FingerprintData, Long> stream1Timestamps = new HashMap<>();
    Map<FingerprintData, Long> stream2Timestamps = new HashMap<>();
    
    StreamClass stream1 = howEverYouFetchStream(1);
    StreamClass stream2 = howEverYouFetchStream(2);
    
    while(true /*or if you have conditional to terminate place it here*/){
         FingerprintData stream1fpd = stream1.getFingerprintData();
         FingerprintData stream2fpd = stream2.getFingerprintData();
    
         if(stream1Timestamps.keySet().contains(stream2fpd)){
             Long firstHeard = stream1Timestamps.get(stream2fpd);
             System.out.println("stream 2 is delayed:" +System.nanoTime()-firstHeard + " nanoseconds");
             stream1Timestamps.remove(stream2fpd);
         }else{
             stream2Timestamps.put(stream2fpd, System.nanoTime();
         }
    
         if(stream2Timestamps.keySet().contains(stream1fpd)){
             Long firstHeard = stream2Timestamps.get(stream1fpd);
             System.out.println("stream 1 is delayed:" +System.nanoTime()-firstHeard + " nanoseconds");
             stream2Timestamps.remove(stream1fpd);
         }else{
             stream1Timestamps.put(stream1fpd, System.nanoTime();
         }
    
      }
    

    这可能需要稍作调整,但基本上我相信这就是您要寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多