有人可以为我提供一个简单的 WAV 16 位到 8 位(如果可能的话返回)转换器的源代码(最好是 C/C++)的链接?我有 C++ 的基本知识,我需要有一个资源来理解我的新项目的 wav 写作和转换值。此刻我有一个关于 RIFF 块结构的讲座。
此外,任何用于在不同位深度(也是这些非标准)之间转换值的公式都值得赞赏......
我更喜欢它是简单的命令行,所以我可以用记事本编辑它并轻松编译。
提前致谢!
对于读取和写入 WAV 文件,请查看规范:
https ://ccrma.stanford.edu/courses/422/projects/WaveFormat/
对于 8 位和 16 位之间的转换,您只需除以或乘以 256。
例如(在 C 中从 16 位转换为 8 位):
fopen()
。 int sample = 0;
// read 2 bytes (= 16 bits) from the 16 bit file into sample:
fread (&sample, 2, 1, wav_file_16bit);
sample /= 256; // divide sample by 256
// write 1 byte (= 8 bits) to the 8 bit file:
fwrite (&sample, 1, 1, wav_file_8bit);
如果您需要更具体的信息,请询问。