gpt4 book ai didi

c - 打开一个 wav 文件以在文本编辑器和 sndfile 中读取数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:22 25 4
gpt4 key购买 nike

我想使用 textPad 读取 8 位 wav 文件的数据,我知道数据位于第 44/46 字节,但我无法读取它。

我有那个代码:

52 49 46 46 F8 37 01 00 57 41 56 45 66 6D 74 20
12 00 00 00 06 00 01 00 40 1F 00 00 40 1F 00 00
01 00 08 00 00 00 66 61 63 74 04 00 00 00 C6 37
01 00 64 61 74 61 C6 37 01 00 D6 D4 56 54 D5 56
56 51 D4 D3 D0 D6 54 57 D4 54 57 51 57 D0 D3 D1

等等

粗体部分是它的数据。

问题是当我使用 sf_read_int 在 sndfile 中读取它时,我在缓冲区中得到以下值:

3670016  1572864  -3670016   -1572864   524288   -3670016   -3670016 

等等

我应该如何读取wav文件中的数据?我在 sndfile 中获得的数字与 textPad 中的数据之间的等式或“关系”是什么?

还有一件事,如果我将读数切换为 sf_read_float 而不是 int,我会得到介于 -0.0001 和 +0.0001 之间的值...

知道发生了什么,写入和数据处理非常好,但我不明白这些值是怎么回事。

谢谢。

最佳答案

您可以在 .wav 文件中看到一些模式:

  • “即兴演奏”:0x52 0x49 0x46 0x46
  • “波形”:0x57 0x41 0x56 0x45
  • “fmt”:0x66 0x6d 0x74 0x20
  • “数据”:0x64 0x61 0x74 0x61

我们在偏移 50 处看到 64 61 74 61。因此数据仅从偏移量 54 而不是 46 开始。

你可以找到一个wave specification了解您的文件是如何编码的。

多亏了这个规范,我可以告诉你你的文件是用 "8-bit ITU-T G.711 A-law" 编码的.

关于c - 打开一个 wav 文件以在文本编辑器和 sndfile 中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344950/

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