欢迎来到存起来软件站,找素材,搜软件,就上存起来软件站!
将PCM数据转换成WAV文件其实只是加个文件头。但要做给普通用户用,界面比较费时间。增加了单声道、双声道选择,样本宽度,提供更多采样率,并允许输入采样率。
wav文件通常包含4段:RIFF、格式段、FACT段和数据段。 PCM数据就放在数据段。只要格式段设置的格式与数据段的数据一致,播放程序就可以正确解析。 下面这个数组的数据其实就是一个最小的wav文件。
static const unsigned char wav_template[] =
{
// RIFF WAVE Chunk
0x52, 0x49, 0x46, 0x46, // "RIFF"
0x30, 0x00, 0x00, 0x00, // 总长度 整个wav文件大小减去ID和Size所占用的字节数
0x57, 0x41, 0x56, 0x45, // "WAVE"
// Format Chunk
0x66, 0x6D, 0x74, 0x20, // "fmt "
0x10, 0x00, 0x00, 0x00, // 块长度
0x01, 0x00, // 编码方式
0x01, 0x00, // 声道数目
0x80, 0x3E, 0x00, 0x00, // 采样频率
0x00, 0x7D, 0x00, 0x00, // 每秒所需字节数=采样频率*块对齐字节
0x02, 0x00, // 数据对齐字节=每个样本字节数*声道数目
0x10, 0x00, // 样本宽度
// Fact Chunk
0x66, 0x61, 0x63, 0x74, // "fact"
0x04, 0x00, 0x00, 0x00, // 块长度
0x00, 0xBE, 0x00, 0x00,
// Data Chunk
0x64, 0x61, 0x74, 0x61, // "data"
0x00, 0x00, 0x00, 0x00, // 块长度
};
这个wav文件的数据长度为0。我们要增加PCM数据只要完成以下工作:
在数据段尾增加PCM数据;
修改数据段的块长度,修改RIFF段的总长度;
正确设置格式段的PCM参数。
样本长度可能不是8的整数倍,这时wav文件还是要求样本按照字节对齐。在一个样本中数据是左对齐的,右侧空位用0填充。 pcm2wav只考虑了样本长度是16位的情况。
如果有多个声道,wav文件要求先放样本1的各声道数据,再放样本2的各声道数据,依此类推。 因为我没有碰到过处理多声道数据的需求,所以pcm2wav只考虑了单声道。
未经书面许可,严禁将本网内容作为AI训练资源。
33台词PC版 0.1
文件批量改名Bulk Rename Utility v3.4.1 中文绿色版
PDF快转(SanPDF) v2.0.6.66 官方版
菲菲更名宝贝之得意非凡FFRenamePro V4.0专业版
查找大文件(WizTree) v3.35 绿色版
文件比较查重工具WinMerge v2.16.8.0 中文版
Windows文件管理器(WinNc) v9.4.0.0 官方安装版
文件压缩档案提取(Explzh) v8.18 官方版
WinMerge v2.16.7.0 官方多语中文版
UltraCompare文件比较工具汉化修正中文版 V21.10.0.20免费64位注册码绿色版
文档自动转换工具BlackIce BiBatchConverter v4.80.632 官方版
批量文本文件处理器 V1.4绿色版
MAXHUB文档客户端 v1.3.1官方PC版
文件校验工具(EF CheckSum Manager) v20.02 官方版
全速pdf转换成excel转换器 v7.8.0.0官方版