【问题标题】:Decoding incomplete audio file解码不完整的音频文件
【发布时间】:2019-07-10 12:23:08
【问题描述】:

我收到了一个似乎已损坏的未压缩 .wav 音频文件 (360 mb)。该文件是使用小型 USB 记录器记录的(目前我没有关于记录器的更多信息)。任何播放器都无法读取它,我尝试使用 GSpot (https://www.headbands.com/gspot/) 来检测它是否可能与 wav 格式不同,但无济于事。该文件很大,这暗示它是某种未压缩的格式。但它错过了文件开头的 RIFF-WAVE 字符,这可能表明这是某种其他格式,或者可能(在这种情况下更有可能)标题丢失。

我尝试将文件的字节直接转换为音频,这会创建一个非常嘈杂的音频文件,尽管可以发出声音并且我能够确定采样率可能是 22050hz(假设样本大小为 8 -bits) 和大约 4 小时 45 分钟的文件长度。在 Audition 中通过一些过滤器运行它会导致文件在某些​​地方可以理解,但在其他地方仍然过于嘈杂。

接下来我尝试通过一些 java 代码运行数据,该代码从字节中生成图像,它向我展示了很多噪音,而且每 1024 个字节有 3 个字节分隔。首先是接近 0 或 255(但不是 100%)的字节,然后是表示分布在 25 左右(但有一些变化)的数字的字节,然后是 00000000(总是 100%)。第一个“块头”(我想这些是)位于文件中的 513 字节处,再次接近 2 次方,如块大小。巧合似乎有点太完美了,所以我提到它,因为它可能很重要。 https://imgur.com/a/sgZ0JFS,第一张图片显示了一个 1024x1024 的图片,显示了文件的前 1mb(按行),第二张图片显示了 3 个“块头”字节的分布。

在这些标题旁边,该文件还具有清晰显示结构的区域,几乎是波浪状结构。我想这是我想要的实际音频,但它充满了噪音:https://imgur.com/a/sgZ0JFS,第三张图片,显示了带有音频结构的文件区域。

我还为整个文件创建了一个直方图(忽略 3 字节的“块标题”):https://imgur.com/a/sgZ0JFS,第四张图片。我已经翻转了范围的下半部分,因为我认为音频数据应该以某个平均值为中心,但如果我错了,请纠正我。也许直方图的非对称性质与有符号/无符号数据或二进制补码有关。也许数据表示是 8 位浮点数或类似的,我不知道。

我现在撞墙了。我不知道我还能尝试什么。有没有人看到我错过的东西。也许有人可以给我一些指示还有什么可以尝试的。我真的很想从这个文件中提取音频数据,因为它包含一些重要信息。

【问题讨论】:

    标签: audio decode wav file-format


    【解决方案1】:

    抱歉打扰了。我已经找到了录音机的主人,让他用录音机给我录了一分钟的音频,然后把那个文件发给我。我能够确定音频是 IMA 4 位 ADPCM 编码的 16 位音频,频率为 48000hz。查看文件的结构,我意识到简单地将好文件的标题放在坏文件的数据前面应该是可能的,你瞧,我又有了一个工作文件:)

    我仍然对 ADPCM 的工作原理以及我是否可以编写自己的解码器非常感兴趣,但那是我再次浏览维基百科的另一天。祝大家有美好的一天!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      相关资源
      最近更新 更多