WAVE文件格式说明
wave文件格式由以下三部分组成的
1.RIFF模块,该模块由下面三部分组成:
ChunkID:固定值为RIFF。表示wave格式文件 大端存储
ChunkSize:整个wave文件的大小 小端存储
Format:固定值为WAVE,表示wave格式文件需要ftm子块和data子块 大端存储
2. fmt子模块(子模块1),该模块由下面几部分组成:
Subchunk1ID:固定值为fmt,表示fmt模块 大端存储
Subchunk1Size:fmt模块大小 小端存储
AudioFormat:音频格式,比如 PCM = 1 小端存储
NumChannels:音频通道数,比如 Mono = 1, Stereo = 2 小端存储
SampleRate:音频采样率,比如8000,44100等等 小端存储
ByteRate:字节率,就是单位时间里,所有通道数采样到的数据量,值为SampleRate * NumChannels * BitsPerSample/8 小端存储
BlockAlign:块对齐,值为NumChannels * BitsPerSample/8,表示The number of bytes for one sample including all channels 小端存储
BitsPerSample:位宽,即每个采样的使用多少个存储或者说表示。比如8 bits = 8, 16 bits = 16, etc 小端存储
3. data子模块(子模块2)
Subchunk2ID:固定值为data,表示data数据块 大端存储
Subchunk2Size:数据块的大小,表示the number of bytes in the data,值为NumSamples * NumChannels * BitsPerSample/8
Data:真正的音频数据
附:大端小端的理解:大端就是计算机存储顺序和我们表达的顺序一致(高位存储高位,低位存储低位,所以顺序读就可以);小端就是计算机存储顺序和我们表达的顺序相反(高位存储低位,低位存储高位,所以要逆序读才正确);
下面是WAVE文件格式说明截图:
WAVE格式说明的参考链接:http://soundfile.sapp.org/doc/WaveFormat/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库