【发布时间】:2013-04-23 15:04:08
【问题描述】:
所以我正在做一个非常重要的学校项目。我现在知道如何从 WAVE 文件中读取所有内容,包括数据。问题是我不仅需要真实的~数据值,还需要符号。该文件为 16 bps,但我不知道如何获得实际值,例如 -365 或 +19934。 这就是我目前所做的
leer = fread(&sbyte, 1, X, audio);
我应该输入什么数字而不是“X”。 4?
我将 sbyte 定义为有符号字符,但有符号字符仅从 -128 变为 127,这意味着它没有给我所需的信息。
我需要这些数字来做一些分析。如果你能在这里帮助我,因为我太迷路了。
谢谢。
【问题讨论】:
-
leer = fread(&sshort, 2, X, audio)
-
除了
char,你还知道哪些类型?另外,查找sizeof。它可能有用。 -
每个样本 16 位意味着每个样本 2 个字节,显然一个 char 是 1 个字节,所以它不适合。请记住,波形数据以 Little Endian 存储,因此短应是完美的
标签: c++ c audio voice voice-recognition