700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python服务器传输wav文件 Python处理wav文件(二进制文件读写)

python服务器传输wav文件 Python处理wav文件(二进制文件读写)

时间:2021-04-03 06:03:55

相关推荐

python服务器传输wav文件 Python处理wav文件(二进制文件读写)

wav文件信息格式图

前44字节为头信息,后面的为音频数据。

import struct

import array

# 读取wav文件,二进制要记得用b

file = open('Love Story.wav', 'rb')

# 获取前44个字节,文件信息。

info = file.read(44)

# 获取文件大小, 将指针移动到文件末尾

file_size = file.seek(0, 2)

# 计算数组大小

n = (file_size - 44) // 2

# 生成buf

buf = array.array('h', (0 for _ in range(n)))

# 将文件指针定位到44

file.seek(44)

# 将数据读入到buf中

file.readinto(buf)

# 将声音变小

for i in range(n):

buf[i] //= 10

# 写入数据

f = open('demo.wav', 'wb')

f.write(info)

buf.tofile(f)

# 关闭文件

f.close()

file.close()

print('完成')

二进制数据可以用readinto,读入到提前分配好的buffer中,便于数据处理。

解析二进制数据可以使用标准库中的struct模块的unpack方法

比如:查看声道数

struct.unpack('h', file[22:24])

查看采样频率

struct.unpack('i', file[24:28])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。