wav是一种音频文件的格式,音频文件为二进制文件
wav文件由头部信息和音频采样数据构成,前44个字节为头部信息,包括声道数,采样频率,PCM位宽等等,后面是音频采样数据
使用python,分析一个wav文件头部信息,处理音频数据
vlc demo.wav # 播放
open('demo.wav','rb')
info = f.read(44)
import struct
大端模式:左边为字节的高有效位,右边为低有效位
struct.unpack('h','\x01\x02') # (513,) 小端 \x0201 1+2*16^2
struct.unpack('>h','\x01\x02') # (258,) 大端 \x0102 2+16^2
数据在内存中的实际存储顺序有的是从大端(内存高地址)开始存储,有的是从小端(内存低地址)开始存储
网络传输规定,数据在传输时,必须统一采用大端法进行传输。
一般操作系统都是小端,而通讯协议是大端的,所以我们在传输数据时,需要将数据转码
struct.unpack方法介绍:
unpack(format, buffer)
format:解析类型
buffer:需要解析二进制串
例: 构造两个字节的二进制串,format默认为小端字节顺序,
h为16为,结果:1+2*16^2=513
struct.unpack('h', b'\x01\x02')
指定format为大端字节顺序,结果:16^2+2=258
struct.unpack('>h', b'\x01\x02')
4.2【文件IO操作】处理二进制文件
最新推荐文章于 2024-10-02 10:53:34 发布