【问题标题】:Calculating "time to start" in .WAV files计算 .WAV 文件中的“开始时间”
【发布时间】:2017-07-27 03:30:39
【问题描述】:

我现在正在编写一个测距仪程序(想想声纳)。所以我发射了一个声音脉冲并测量需要多长时间才能回来。目前,我只是打开声音文件并手动测量上升时间。为了清楚起见,我链接了一张图片。

我想知道是否有任何 .NET 库可以做这种事情。我已经看过 NAudio,但没有发现任何有用的东西。

看起来我可能必须手动执行此操作,在这种情况下,我最好如何将 WAV 转换为一系列原始值(例如图像上的每个点)?如果可以,我可以编写自己的算法。

【问题讨论】:

    标签: .net audio wav


    【解决方案1】:

    您可以通过将文件读入字节数组、提取有关它的一些信息然后搜索所需的样本来做到这一点,在您的情况下,我相信这是第一个高于某个阈值的样本。
    第一阶段很简单,就像question
    对于第二阶段,您必须对wav 文件的结构有所了解。可以在这里看到 -
    它包含有关通道数(在您的情况下看起来只有一个通道)、采样率每个样本的位数的信息>.
    知道了这些参数后,就可以开始读取音频的数据了——如果每个样本是 8 位,那么每个样本就是一个字节。如果是 16,则必须读取 2 个字节,并计算样本的值,因为它是以小端格式编写的。
    当您发现样本编号 X 是您要查找的样本时,将该数字除以采样率,您将得到样本自文件开始以来的确切时间。
    图片来自here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      相关资源
      最近更新 更多